@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
@@ -4,7 +4,7 @@ import { dirname as dirname4, join as join6, resolve as resolve4 } from "node:pa
4
4
  import { fileURLToPath } from "node:url";
5
5
 
6
6
  // node/scaffold/additions.ts
7
- var SCAFFOLD_ADDITIONS = ["three", "ui", "server", "blender", "studio"];
7
+ var SCAFFOLD_ADDITIONS = ["three", "canvas", "ui", "server", "blender", "studio"];
8
8
  var ADDITION_REQUIRES = {
9
9
  studio: ["three"]
10
10
  };
@@ -174,7 +174,7 @@ const meta = {
174
174
  // states below render its presentational body with authored props.
175
175
  component: GameUI,
176
176
  render: (args) => <ReactGamePage {...args} />,
177
- parameters: { vgai: { defaultStory: 'Ready' } },
177
+ parameters: { volter: { defaultStory: 'Ready' } },
178
178
  args: { lastInput: 'Ready', title: 'My Game' },
179
179
  } satisfies Meta<typeof ReactGamePage>;
180
180
 
@@ -189,15 +189,15 @@ export const LongTitle: Story = {
189
189
  `;
190
190
  var REACT_ONLY_MAIN_SOURCE = `/**
191
191
  * Standalone entry point: this game's own boot, in its own libraries. Every
192
- * \`dom\` root \`vgai.project.json\` declares renders its entry's default export
192
+ * \`dom\` root \`volter.project.json\` declares renders its entry's default export
193
193
  * with react-dom, in one layer of \`#game-canvas\` per root, stacked by
194
194
  * \`zOrder\`. The editor mounts the same entries itself.
195
195
  */
196
196
 
197
197
  import { type ComponentType, createElement } from 'react';
198
198
  import { createRoot } from 'react-dom/client';
199
- import { manifestEntryModules } from 'virtual:vgai-manifest-entries';
200
- import manifest from '../vgai.project.json';
199
+ import { manifestEntryModules } from 'virtual:volter-manifest-entries';
200
+ import manifest from '../volter.project.json';
201
201
 
202
202
  interface DeclaredRoot {
203
203
  readonly id: string;
@@ -235,7 +235,7 @@ var REACT_ONLY_FILES = {
235
235
  };
236
236
  function withEditorDeclaration(source, declaration2) {
237
237
  if (!source.includes("defineAdapter({"))
238
- throw new Error("Starter vgai.adapter.ts must call defineAdapter({ ... }).");
238
+ throw new Error("Starter volter.adapter.ts must call defineAdapter({ ... }).");
239
239
  const look = [
240
240
  declaration2.style ? `, style: ${declaration2.style.name}` : "",
241
241
  declaration2.keymap ? `, keymap: ${declaration2.keymap.name}` : ""
@@ -253,9 +253,9 @@ function withEditorDeclaration(source, declaration2) {
253
253
  return `${imports}${source.replace("defineAdapter({", `defineAdapter({
254
254
  ${editor}`)}`;
255
255
  }
256
- var MODELS_AGENTS_CONTRACT = `# AGENTS.md \u2014 VGAI Models Project
256
+ var MODELS_AGENTS_CONTRACT = `# AGENTS.md \u2014 VOLTER Models Project
257
257
 
258
- A standalone modeling project built with VGAI \u2014 Blender itself, compiled to
258
+ A standalone modeling project built with VOLTER \u2014 Blender itself, compiled to
259
259
  WebAssembly and running headless in the editor tab's worker, over this
260
260
  project's own \`.blend\` files. Work here, not in the engine repo. The editor
261
261
  is the authoring and verification surface; nothing here plays.
@@ -266,7 +266,7 @@ is the authoring and verification surface; nothing here plays.
266
266
  | --- | --- |
267
267
  | Model, revise or add a model | \`src/models/<name>.blend\` \u2014 read \`src/models/cube.py\`'s docstring first |
268
268
  | Open the editor, look, or verify | \`.agents/skills/editor/SKILL.md\` |
269
- | Blender-style modeling craft | \`.agents/skills/vgai-3d-models/SKILL.md\` |
269
+ | Blender-style modeling craft | \`.agents/skills/volter-3d-models/SKILL.md\` |
270
270
 
271
271
  \`.agents/\` is canonical; \`.claude/skills/\` and \`.github/skills/\` are
272
272
  generated projections (never edit); \`CLAUDE.md\` and
@@ -282,7 +282,7 @@ opens. The document does not run the script \u2014 you do, through the session's
282
282
  Blender:
283
283
 
284
284
  \`\`\`bash
285
- npm run --silent vgai -- blender-mcp # the MCP transport onto the tab's Blender
285
+ npm run --silent volter -- blender-mcp # the MCP transport onto the tab's Blender
286
286
  \`\`\`
287
287
 
288
288
  Every call is ordinary bpy against the open document, and the session saves it
@@ -293,33 +293,33 @@ finder lists every \`.blend\` as a document. Coordinates are metres and Z is up
293
293
  ## The editor
294
294
 
295
295
  Workspaces: \`model\`, \`sculpt\`, \`texture\`, \`animate\`, \`design\`, \`look\`
296
- (\`npm run --silent vgai -- eval 'editor.workspace("sculpt")'\`; a wrong id
296
+ (\`npm run --silent volter -- eval 'editor.workspace("sculpt")'\`; a wrong id
297
297
  refuses and names the list). The look and keymap are Blender's
298
298
  (\`@volter/editor-blender\` contributes them). There is no Game workspace and
299
- \`vgai play\` refuses: this project declares no roots.
299
+ \`volter-game-editor play\` refuses: this project declares no roots.
300
300
 
301
301
  ## Verification contract \u2014 after every change
302
302
 
303
303
  1. \`npm run typecheck\` \u2014 the gate.
304
304
  2. Open the model's document and read the change through a door:
305
- \`npm run --silent vgai -- eval 'editor.currentView()'\` names the open
306
- document; \`npm run --silent vgai -- screenshot editor\` shows it; and
305
+ \`npm run --silent volter -- eval 'editor.currentView()'\` names the open
306
+ document; \`npm run --silent volter -- screenshot editor\` shows it; and
307
307
  \`get_scene_info\` over \`blender-mcp\` is what the engine itself says is in
308
308
  the file.
309
- 3. \`npm run --silent vgai -- console\` silent \u2014 an unresolved entry is
309
+ 3. \`npm run --silent volter -- console\` silent \u2014 an unresolved entry is
310
310
  remaining work, never noise.
311
311
 
312
312
  ## Commands
313
313
 
314
314
  \\\`\\\`\\\`bash
315
315
  npm run dev # open/reuse this project's editor
316
- npm run --silent vgai -- status # require connected: true
317
- npm run --silent vgai -- screenshot # visible evidence
318
- npm run --silent vgai -- eval '<js>' # THE door onto the editor
316
+ npm run --silent volter -- status # require connected: true
317
+ npm run --silent volter -- screenshot # visible evidence
318
+ npm run --silent volter -- eval '<js>' # THE door onto the editor
319
319
  npm run typecheck # THE gate
320
320
  \\\`\\\`\\\`
321
321
 
322
- Always \`npm run --silent vgai -- <verb>\`, never a bare \`vgai\` (a global one may
322
+ Always \`npm run --silent volter -- <verb>\`, never a bare \`volter\` (a global one may
323
323
  belong to another checkout).
324
324
  `;
325
325
  function withAgentsContract(source, additions) {
@@ -390,7 +390,7 @@ function assertScaffoldComposition(value, source, product) {
390
390
  if (!packages.includes(product))
391
391
  fail(
392
392
  source,
393
- `compose() returned editorPackages ${JSON.stringify(packages)}, which omits ${product}. A scaffolded project declares the product it opens in \u2014 that declaration is how \`vgai edit\` finds the editor to run (ARCHITECTURE-CORE \xA7The target shape, rule 4).`
393
+ `compose() returned editorPackages ${JSON.stringify(packages)}, which omits ${product}. A scaffolded project declares the product it opens in \u2014 that declaration is how \`volter edit\` finds the editor to run (ARCHITECTURE-CORE \xA7The target shape, rule 4).`
394
394
  );
395
395
  const editor = composition?.editor;
396
396
  if (typeof editor?.inspector !== "string" || editor.inspector.length === 0)
@@ -425,7 +425,7 @@ import {
425
425
  } from "node:fs";
426
426
  import { basename, dirname as dirname2, join as join4, relative as relative3, resolve as resolve2 } from "node:path";
427
427
 
428
- // ../../../editor-game/node_modules/jsonc-parser/lib/esm/impl/scanner.js
428
+ // ../../node_modules/jsonc-parser/lib/esm/impl/scanner.js
429
429
  function createScanner(text, ignoreTrivia = false) {
430
430
  const len = text.length;
431
431
  let pos = 0, value = "", tokenOffset = 0, token = 16, lineNumber = 0, lineStartOffset = 0, tokenLineStartOffset = 0, prevTokenLineStartOffset = 0, scanError = 0;
@@ -846,7 +846,7 @@ var CharacterCodes;
846
846
  CharacterCodes2[CharacterCodes2["tab"] = 9] = "tab";
847
847
  })(CharacterCodes || (CharacterCodes = {}));
848
848
 
849
- // ../../../editor-game/node_modules/jsonc-parser/lib/esm/impl/string-intern.js
849
+ // ../../node_modules/jsonc-parser/lib/esm/impl/string-intern.js
850
850
  var cachedSpaces = new Array(20).fill(0).map((_, index) => {
851
851
  return " ".repeat(index);
852
852
  });
@@ -876,7 +876,7 @@ var cachedBreakLinesWithSpaces = {
876
876
  }
877
877
  };
878
878
 
879
- // ../../../editor-game/node_modules/jsonc-parser/lib/esm/impl/parser.js
879
+ // ../../node_modules/jsonc-parser/lib/esm/impl/parser.js
880
880
  var ParseOptions;
881
881
  (function(ParseOptions2) {
882
882
  ParseOptions2.DEFAULT = {
@@ -1232,7 +1232,7 @@ function visit(text, visitor, options = ParseOptions.DEFAULT) {
1232
1232
  return true;
1233
1233
  }
1234
1234
 
1235
- // ../../../editor-game/node_modules/jsonc-parser/lib/esm/main.js
1235
+ // ../../node_modules/jsonc-parser/lib/esm/main.js
1236
1236
  var ScanError;
1237
1237
  (function(ScanError2) {
1238
1238
  ScanError2[ScanError2["None"] = 0] = "None";
@@ -1326,8 +1326,8 @@ import { existsSync } from "node:fs";
1326
1326
  import { join } from "node:path";
1327
1327
 
1328
1328
  // ../editor-project/src/manifest/filename.ts
1329
- var MANIFEST_FILENAME = "vgai.project.json";
1330
- var REMOVED_MANIFEST_FILENAME = "vgai.game.json";
1329
+ var MANIFEST_FILENAME = "volter.project.json";
1330
+ var REMOVED_MANIFEST_FILENAME = "volter.game.json";
1331
1331
  function removedManifestFilenameMessage(where) {
1332
1332
  return `${where}: found \`${REMOVED_MANIFEST_FILENAME}\` and no \`${MANIFEST_FILENAME}\`. \`${REMOVED_MANIFEST_FILENAME}\` was REMOVED (the legacy-removal doctrine, docs/ARCHITECTURE-CORE.md \xA7Vocabulary) \u2014 nothing reads it any more, and it is deliberately NOT read as a fallback, because a second accepted name is the defect.
1333
1333
  Fix: rename it \u2014 \`git mv ${REMOVED_MANIFEST_FILENAME} ${MANIFEST_FILENAME}\`. The contents are unchanged; only the filename moved.`;
@@ -1353,7 +1353,7 @@ import { execFileSync } from "node:child_process";
1353
1353
  import { createHash } from "node:crypto";
1354
1354
  import { mkdirSync, readdirSync, readFileSync, writeFileSync } from "node:fs";
1355
1355
  import { join as join2, relative, sep } from "node:path";
1356
- var SCAFFOLD_BASELINE_RELATIVE_PATH = ".vgai/scaffold-baseline.json";
1356
+ var SCAFFOLD_BASELINE_RELATIVE_PATH = ".volter/scaffold-baseline.json";
1357
1357
  function readEngineSourceState(engineDir) {
1358
1358
  try {
1359
1359
  const sha = execFileSync("git", ["-C", engineDir, "rev-parse", "HEAD"], {
@@ -1395,7 +1395,7 @@ function buildScaffoldBaseline(targetDir, engineVersion, engineDir) {
1395
1395
  }
1396
1396
  function writeScaffoldBaseline(targetDir, engineVersion, engineDir) {
1397
1397
  const baseline = buildScaffoldBaseline(targetDir, engineVersion, engineDir);
1398
- mkdirSync(join2(targetDir, ".vgai"), { recursive: true });
1398
+ mkdirSync(join2(targetDir, ".volter"), { recursive: true });
1399
1399
  writeFileSync(
1400
1400
  join2(targetDir, SCAFFOLD_BASELINE_RELATIVE_PATH),
1401
1401
  `${JSON.stringify(baseline, null, 2)}
@@ -1497,7 +1497,7 @@ ${indent}},`;
1497
1497
  }
1498
1498
  function mergeAdapterRegionIncludes(source, additions) {
1499
1499
  if (additions.length === 0) return { kind: "unchanged" };
1500
- const parsed = typescript().createSourceFile("vgai.adapter.ts", source, typescript().ScriptTarget.Latest, true);
1500
+ const parsed = typescript().createSourceFile("volter.adapter.ts", source, typescript().ScriptTarget.Latest, true);
1501
1501
  const definition = definitionObject(parsed);
1502
1502
  if ("reason" in definition) return { kind: "unreadable", reason: definition.reason };
1503
1503
  const listed = propertyOf(definition.object, "regions");
@@ -1588,7 +1588,7 @@ function finderText(addition, quote) {
1588
1588
  }
1589
1589
  function mergeAdapterFinders(source, additions) {
1590
1590
  if (additions.length === 0) return { kind: "unchanged" };
1591
- const parsed = typescript().createSourceFile("vgai.adapter.ts", source, typescript().ScriptTarget.Latest, true);
1591
+ const parsed = typescript().createSourceFile("volter.adapter.ts", source, typescript().ScriptTarget.Latest, true);
1592
1592
  const definition = definitionObject(parsed);
1593
1593
  if ("reason" in definition) return { kind: "unreadable", reason: definition.reason };
1594
1594
  const quote = quoteLike(source, void 0);
@@ -1649,7 +1649,7 @@ ${indentAt(source, array.getStart())}${source.slice(closing)}`;
1649
1649
  }
1650
1650
 
1651
1651
  // node/scaffold/catalog.ts
1652
- var PROJECT_CATALOG_DIR = join3(".vgai", "catalog");
1652
+ var PROJECT_CATALOG_DIR = join3(".volter", "catalog");
1653
1653
  var CATALOG_SURFACES = ["three", "canvas", "dom"];
1654
1654
  var CAPABILITY_STAMP_FILENAME = "capability.json";
1655
1655
  function capabilityStampPath(entry) {
@@ -1668,7 +1668,7 @@ function stringArray(value, field, manifestPath) {
1668
1668
  var RENAMED_CAPABILITY_IDS = /* @__PURE__ */ new Map([["mesh", "blender"]]);
1669
1669
  function renamedCapabilityIdMessage(where, oldId, newId) {
1670
1670
  return `${where}: capability id \`${oldId}\` was RENAMED to \`${newId}\` (2026-09-19). Nothing reads \`${oldId}\` any more, and it is deliberately NOT mapped onto \`${newId}\`, because a second accepted name is the defect.
1671
- Fix: in this project, rename the file \u2014 \`git mv .vgai/catalog/${oldId}.json .vgai/catalog/${newId}.json\` \u2014 and change its \`"id"\` to \`"${newId}"\`. If a stamp file names the old id, rename that too (\`src/tools/${oldId}.*\` -> \`src/tools/${newId}.*\`). Then \`vgai outdated\` will report against the current entry. Nothing else about the capability changed.`;
1671
+ Fix: in this project, rename the file \u2014 \`git mv .volter/catalog/${oldId}.json .volter/catalog/${newId}.json\` \u2014 and change its \`"id"\` to \`"${newId}"\`. If a stamp file names the old id, rename that too (\`src/tools/${oldId}.*\` -> \`src/tools/${newId}.*\`). Then \`volter-game-editor outdated\` will report against the current entry. Nothing else about the capability changed.`;
1672
1672
  }
1673
1673
  function readCatalogEntry(path) {
1674
1674
  const parsed = JSON.parse(readFileSync2(path, "utf8"));
@@ -1706,15 +1706,15 @@ function readCatalogEntry(path) {
1706
1706
  path
1707
1707
  );
1708
1708
  const scripts = readStringRecord(packageJson["scripts"], "scripts", path);
1709
- const vgaiTools = packageJson["vgaiTools"];
1710
- if (vgaiTools !== void 0 && (!Array.isArray(vgaiTools) || vgaiTools.some((entry) => typeof entry !== "string" && !isRecord(entry)))) {
1711
- throw new Error(`${path}: packageJson.vgaiTools must be an array of module paths`);
1709
+ const volterTools = packageJson["volterTools"];
1710
+ if (volterTools !== void 0 && (!Array.isArray(volterTools) || volterTools.some((entry) => typeof entry !== "string" && !isRecord(entry)))) {
1711
+ throw new Error(`${path}: packageJson.volterTools must be an array of module paths`);
1712
1712
  }
1713
1713
  manifest.packageJson = {
1714
1714
  ...dependencies ? { dependencies } : {},
1715
1715
  ...devDependencies ? { devDependencies } : {},
1716
1716
  ...scripts ? { scripts } : {},
1717
- ...vgaiTools ? { vgaiTools } : {}
1717
+ ...volterTools ? { volterTools } : {}
1718
1718
  };
1719
1719
  }
1720
1720
  const assetPacks = readAssetPacks(parsed["assetPacks"], path);
@@ -2029,29 +2029,29 @@ function planCapabilityPackageJson(originalBytes, manifests, label = "package.js
2029
2029
  resolveSpec
2030
2030
  );
2031
2031
  mergeStringDependencies(parsed, "scripts", patch.scripts, manifest.id, origins);
2032
- if (patch.vgaiTools) {
2033
- const vgai = parsed["vgai"] === void 0 ? {} : parsed["vgai"];
2034
- if (!isRecord(vgai)) throw new Error(`${label}: vgai must be an object`);
2035
- const currentTools = vgai["tools"] === void 0 ? [] : vgai["tools"];
2032
+ if (patch.volterTools) {
2033
+ const volter = parsed["volter"] === void 0 ? {} : parsed["volter"];
2034
+ if (!isRecord(volter)) throw new Error(`${label}: volter must be an object`);
2035
+ const currentTools = volter["tools"] === void 0 ? [] : volter["tools"];
2036
2036
  if (!Array.isArray(currentTools) || currentTools.some((tool) => typeof tool !== "string" && !isRecord(tool))) {
2037
- throw new Error(`${label}: vgai.tools must be an array of strings or objects`);
2037
+ throw new Error(`${label}: volter.tools must be an array of strings or objects`);
2038
2038
  }
2039
2039
  const tools = currentTools.map(
2040
2040
  (tool) => typeof tool === "string" ? tool : { ...tool }
2041
2041
  );
2042
- for (const tool of patch.vgaiTools) {
2042
+ for (const tool of patch.volterTools) {
2043
2043
  const id = toolIdentity(tool);
2044
2044
  const existing = tools.find((candidate) => toolIdentity(candidate) === id);
2045
2045
  if (existing && JSON.stringify(existing) !== JSON.stringify(tool)) {
2046
2046
  throw new Error(
2047
- `Capability ${manifest.id} conflicts with existing vgai.tools entry ${id}`
2047
+ `Capability ${manifest.id} conflicts with existing volter.tools entry ${id}`
2048
2048
  );
2049
2049
  }
2050
2050
  if (!existing) tools.push(tool);
2051
2051
  }
2052
2052
  tools.sort((a, b) => toolIdentity(a).localeCompare(toolIdentity(b)));
2053
- vgai["tools"] = tools;
2054
- parsed["vgai"] = vgai;
2053
+ volter["tools"] = tools;
2054
+ parsed["volter"] = volter;
2055
2055
  }
2056
2056
  }
2057
2057
  return Buffer.from(`${JSON.stringify(parsed, null, 2)}
@@ -2107,7 +2107,7 @@ function mergedAssetManifest(projectDir, manifests) {
2107
2107
  );
2108
2108
  return { bytes, changed: !original.equals(bytes), declared: merged };
2109
2109
  }
2110
- var ADAPTER_MODULE_FILE = "vgai.adapter.ts";
2110
+ var ADAPTER_MODULE_FILE = "volter.adapter.ts";
2111
2111
  function rootSurfaces(projectDir) {
2112
2112
  const surfaces = /* @__PURE__ */ new Map();
2113
2113
  let manifest;
@@ -2647,7 +2647,7 @@ Fix: create the project without --example, which scaffolds from the starter temp
2647
2647
  );
2648
2648
  }
2649
2649
  throw new Error(
2650
- `Unknown example id "${exampleId}": no vgai.project.json found at ${examplesSrcDir}`
2650
+ `Unknown example id "${exampleId}": no volter.project.json found at ${examplesSrcDir}`
2651
2651
  );
2652
2652
  }
2653
2653
  mkdirSync3(targetDir, { recursive: true });
@@ -2695,7 +2695,7 @@ function assertDevelopmentLog(targetDir) {
2695
2695
  const path = join4(targetDir, PROJECT_DEVELOPMENT_LOG_RELATIVE_PATH);
2696
2696
  if (!existsSync3(path)) {
2697
2697
  throw new Error(
2698
- `Scaffolded project is missing ${PROJECT_DEVELOPMENT_LOG_RELATIVE_PATH}; restore it from the VGAI starter template`
2698
+ `Scaffolded project is missing ${PROJECT_DEVELOPMENT_LOG_RELATIVE_PATH}; restore it from the VOLTER starter template`
2699
2699
  );
2700
2700
  }
2701
2701
  }
@@ -2720,7 +2720,7 @@ function trackedExampleFiles(exampleDir) {
2720
2720
  });
2721
2721
  if (result.status !== 0 || !result.stdout) return null;
2722
2722
  const paths = result.stdout.toString("utf8").split("\0").filter(Boolean);
2723
- return paths.includes("vgai.project.json") ? paths : null;
2723
+ return paths.includes("volter.project.json") ? paths : null;
2724
2724
  }
2725
2725
  function copyTrackedExampleFiles(exampleDir, targetDir) {
2726
2726
  const paths = trackedExampleFiles(exampleDir);
@@ -2752,11 +2752,11 @@ function writeExampleReadme(targetDir, projectName, exampleId) {
2752
2752
  path,
2753
2753
  `# ${projectName}
2754
2754
 
2755
- An editable standalone VGAI project scaffolded from the \`${exampleId ?? "example"}\` reference. Its gameplay source and assets were copied unchanged; this folder is now your project.
2755
+ An editable standalone VOLTER project scaffolded from the \`${exampleId ?? "example"}\` reference. Its gameplay source and assets were copied unchanged; this folder is now your project.
2756
2756
 
2757
2757
  \`\`\`bash
2758
2758
  npm run dev # open/reuse the visual editor
2759
- npm run vgai -- play # verify Play mode
2759
+ npm run volter -- play # verify Play mode
2760
2760
  npm run typecheck
2761
2761
  npm run validate-manifest
2762
2762
  \`\`\`
@@ -2770,12 +2770,12 @@ function shouldCopyExamplePath(exampleDir, sourcePath) {
2770
2770
  const relativePath = relative3(exampleDir, sourcePath).replaceAll("\\", "/");
2771
2771
  const topLevel = relativePath.split("/")[0] ?? "";
2772
2772
  const segments = relativePath.split("/");
2773
- return !["node_modules", "dist", "logs", ".vgai", ".git", "package-lock.json"].includes(topLevel) && !segments.some((segment) => segment === ".env" || segment.startsWith(".env."));
2773
+ return !["node_modules", "dist", "logs", ".volter", ".git", "package-lock.json"].includes(topLevel) && !segments.some((segment) => segment === ".env" || segment.startsWith(".env."));
2774
2774
  }
2775
2775
  function shouldCopyStarterPath(templateDir, sourcePath) {
2776
2776
  const relativePath = relative3(templateDir, sourcePath).replaceAll("\\", "/");
2777
2777
  const topLevel = relativePath.split("/")[0] ?? "";
2778
- return !["node_modules", "dist", "logs", ".vgai"].includes(topLevel);
2778
+ return !["node_modules", "dist", "logs", ".volter"].includes(topLevel);
2779
2779
  }
2780
2780
  function rewritePackageJson(targetDir, slug, engineDir, monoRoot) {
2781
2781
  const pkgPath = join4(targetDir, "package.json");
@@ -2805,8 +2805,8 @@ function rewritePackageJson(targetDir, slug, engineDir, monoRoot) {
2805
2805
  }
2806
2806
  pkg.scripts ??= {};
2807
2807
  for (const [name, script] of Object.entries(pkg.scripts)) {
2808
- if (name !== "vgai" && script.startsWith("vgai ")) {
2809
- pkg.scripts[name] = `npm run vgai -- ${script.slice("vgai ".length)}`;
2808
+ if (name !== "volter" && script.startsWith("volter ")) {
2809
+ pkg.scripts[name] = `npm run volter -- ${script.slice("volter ".length)}`;
2810
2810
  }
2811
2811
  }
2812
2812
  pkg.devDependencies = pkg.devDependencies ?? {};
@@ -2842,7 +2842,7 @@ function engineDependencySpec(monoRoot, packageName, checkoutRelPath = "") {
2842
2842
  return `^${version}`;
2843
2843
  }
2844
2844
  function rewriteGameManifest(targetDir, name, slug, additions, monoRoot) {
2845
- const manifestPath = join4(targetDir, "vgai.project.json");
2845
+ const manifestPath = join4(targetDir, "volter.project.json");
2846
2846
  const engineVersion = readInstalledVersion(monoRoot, "@volter/editor-project");
2847
2847
  let manifest;
2848
2848
  if (existsSync3(manifestPath)) {
@@ -2861,12 +2861,14 @@ function rewriteGameManifest(targetDir, name, slug, additions, monoRoot) {
2861
2861
  }
2862
2862
  manifest["name"] = name;
2863
2863
  manifest["manifestVersion"] = 2;
2864
- manifest["$schema"] = "./node_modules/@volter/editor-project/schemas/vgai-project.schema.json";
2864
+ manifest["$schema"] = "./node_modules/@volter/editor-project/schemas/volter-project.schema.json";
2865
2865
  manifest["appId"] = `com.example.${slug.replace(/[^a-zA-Z0-9]/g, "")}`;
2866
2866
  if (additions) {
2867
2867
  const roots = [];
2868
2868
  if (additions.has("three"))
2869
2869
  roots.push({ id: "world", adapter: "three", entry: "src/world.tsx" });
2870
+ if (additions.has("canvas"))
2871
+ roots.push({ id: "scene2d", adapter: "canvas", entry: "src/scene2d.tsx" });
2870
2872
  if (additions.has("ui"))
2871
2873
  roots.push({ id: "ui", adapter: "dom", entry: "src/ui/game.tsx", zOrder: 0 });
2872
2874
  manifest["roots"] = roots;
@@ -2905,14 +2907,14 @@ function repinEngineAfterInstall(targetDir) {
2905
2907
  try {
2906
2908
  const baseline = JSON.parse(readFileSync3(baselinePath, "utf-8"));
2907
2909
  baseline.engineVersion = installed;
2908
- baseline.files["vgai.project.json"] = hashFile(manifestPath);
2910
+ baseline.files["volter.project.json"] = hashFile(manifestPath);
2909
2911
  writeFileSync3(baselinePath, `${JSON.stringify(baseline, null, 2)}
2910
2912
  `, "utf-8");
2911
2913
  } catch {
2912
2914
  }
2913
2915
  return { from, to: installed };
2914
2916
  }
2915
- function checkoutVgaiPackageDirs(monoRoot) {
2917
+ function checkoutVolterPackageDirs(monoRoot) {
2916
2918
  const found = /* @__PURE__ */ new Map();
2917
2919
  const packagesDir = join4(monoRoot, "packages");
2918
2920
  let entries;
@@ -2961,7 +2963,7 @@ function pointUnpublishedPackagesAtCheckout(projectDir, monoRoot) {
2961
2963
  return rewritten;
2962
2964
  }
2963
2965
  function checkoutPackageSpec(name, monoRoot) {
2964
- const dir = checkoutVgaiPackageDirs(monoRoot).get(name);
2966
+ const dir = checkoutVolterPackageDirs(monoRoot).get(name);
2965
2967
  return dir === void 0 ? null : `file:${dir}`;
2966
2968
  }
2967
2969
  function writeEditorPackages(targetDir, wanted) {
@@ -2983,6 +2985,27 @@ function writeEditorPackages(targetDir, wanted) {
2983
2985
  );
2984
2986
  writeJson(pkgPath, pkg);
2985
2987
  }
2988
+ function writeNetworkedInput(targetDir) {
2989
+ const inputPath = join4(targetDir, "src", "input.ts");
2990
+ let input = readFileSync3(inputPath, "utf-8");
2991
+ for (const [line, replacement] of NETWORKED_INPUT_LINES) {
2992
+ if (!input.includes(line)) {
2993
+ throw new Error(`The template input store no longer declares its actions as expected: ${line}`);
2994
+ }
2995
+ input = input.replace(line, replacement);
2996
+ }
2997
+ writeFileSync3(inputPath, input, "utf-8");
2998
+ }
2999
+ function applyCanvasAddition(targetDir, productDir) {
3000
+ const additionDir = join4(productDir, "additions", "canvas");
3001
+ cpSync(join4(additionDir, "src"), join4(targetDir, "src"), { recursive: true });
3002
+ const own = JSON.parse(readFileSync3(join4(additionDir, "package.json"), "utf-8"));
3003
+ const pkgPath = join4(targetDir, "package.json");
3004
+ const pkg = JSON.parse(readFileSync3(pkgPath, "utf-8"));
3005
+ pkg.dependencies = { ...pkg.dependencies };
3006
+ for (const [name, spec] of Object.entries(own.dependencies ?? {})) pkg.dependencies[name] ??= spec;
3007
+ writeJson(pkgPath, pkg);
3008
+ }
2986
3009
  function rewriteTemplateVariantFiles(targetDir, composition, additions, starterDir) {
2987
3010
  if (!additions.has("three") || !additions.has("studio")) {
2988
3011
  for (const relative4 of STUDIO_OWNED_PATHS) {
@@ -2991,15 +3014,7 @@ function rewriteTemplateVariantFiles(targetDir, composition, additions, starterD
2991
3014
  }
2992
3015
  writeEditorPackages(targetDir, composition.editorPackages);
2993
3016
  if (additions.has("server") && additions.has("three")) {
2994
- const inputPath = join4(targetDir, "src", "input.ts");
2995
- let input = readFileSync3(inputPath, "utf-8");
2996
- for (const [line, replacement] of NETWORKED_INPUT_LINES) {
2997
- if (!input.includes(line)) {
2998
- throw new Error(`The template input store no longer declares its actions as expected: ${line}`);
2999
- }
3000
- input = input.replace(line, replacement);
3001
- }
3002
- writeFileSync3(inputPath, input, "utf-8");
3017
+ writeNetworkedInput(targetDir);
3003
3018
  } else {
3004
3019
  for (const relative4 of SERVER_CLIENT_PATHS) {
3005
3020
  rmSync2(join4(targetDir, relative4), { recursive: true, force: true });
@@ -3020,9 +3035,9 @@ function rewriteTemplateVariantFiles(targetDir, composition, additions, starterD
3020
3035
  for (const relative4 of THREE_OWNED_PATHS) {
3021
3036
  rmSync2(join4(targetDir, relative4), { recursive: true, force: true });
3022
3037
  }
3023
- writeFileSync3(join4(targetDir, "vgai.adapter.ts"), adapterSourceFor(additions), "utf-8");
3038
+ writeFileSync3(join4(targetDir, "volter.adapter.ts"), adapterSourceFor(additions), "utf-8");
3024
3039
  } else {
3025
- const adapterPath = join4(targetDir, "vgai.adapter.ts");
3040
+ const adapterPath = join4(targetDir, "volter.adapter.ts");
3026
3041
  const source = joinAdditionFinders(readFileSync3(adapterPath, "utf-8"), additions);
3027
3042
  writeFileSync3(adapterPath, source, "utf-8");
3028
3043
  }
@@ -3079,7 +3094,7 @@ function rewriteTsconfig(targetDir, engineRelPath, editorRelPath) {
3079
3094
  ])
3080
3095
  ),
3081
3096
  // `@volter/editor-blender`'s two VALUE exports — the look and the layout a models
3082
- // project's `vgai.adapter.ts` imports. Spelled entry by entry rather than
3097
+ // project's `volter.adapter.ts` imports. Spelled entry by entry rather than
3083
3098
  // as a wildcard because the package's `exports` names them individually;
3084
3099
  // both entries are inert for a project that never declares the package.
3085
3100
  "@volter/editor-blender/looks": ["node_modules/@volter/editor-blender/src/looks.ts"],
@@ -3177,7 +3192,8 @@ function scaffoldProject(opts) {
3177
3192
  additions,
3178
3193
  resolveScaffoldStarterDir(productDir)
3179
3194
  );
3180
- const adapterPath = join4(targetDir, "vgai.adapter.ts");
3195
+ if (additions.has("canvas")) applyCanvasAddition(targetDir, productDir);
3196
+ const adapterPath = join4(targetDir, "volter.adapter.ts");
3181
3197
  writeFileSync3(
3182
3198
  adapterPath,
3183
3199
  withEditorDeclaration(readFileSync3(adapterPath, "utf-8"), composition.editor),
@@ -3189,6 +3205,8 @@ function scaffoldProject(opts) {
3189
3205
  withAgentsContract(readFileSync3(agentsPath, "utf-8"), additions),
3190
3206
  "utf-8"
3191
3207
  );
3208
+ } else if (exampleId === void 0 && existsSync3(join4(targetDir, "src", "net"))) {
3209
+ writeNetworkedInput(targetDir);
3192
3210
  }
3193
3211
  rewriteTsconfig(targetDir, engineRelPath, editorRelPath);
3194
3212
  rewriteViteConfig(targetDir);
@@ -3317,7 +3335,7 @@ function initGitRepo(targetDir, projectName) {
3317
3335
  notice: "Skipped git init \u2014 the project is already inside a git work tree."
3318
3336
  };
3319
3337
  }
3320
- const authorFallback = hasCommitterIdentity(targetDir) ? [] : ["-c", "user.name=vgai", "-c", "user.email=scaffold@vgai"];
3338
+ const authorFallback = hasCommitterIdentity(targetDir) ? [] : ["-c", "user.name=volter", "-c", "user.email=scaffold@volter"];
3321
3339
  const steps = [
3322
3340
  { label: "git init", args: ["init", "--quiet"] },
3323
3341
  { label: "git add", args: ["add", "-A"] },
@@ -3356,13 +3374,15 @@ var presets = {
3356
3374
  // silent console the agent contract requires; they are an author's TODO
3357
3375
  // from the moment the author ASKS for those panels (`--with studio`, or
3358
3376
  // `--template full`).
3359
- game: { additions: ["three", "server", "blender"] },
3377
+ // A game's UI is React DOM: its HUD is the `ui` root over the world. A `canvas` (Pixi) root
3378
+ // is 2D game rendering, never the UI layer.
3379
+ game: { additions: ["three", "ui", "server", "blender"] },
3360
3380
  /** A 3D world and its models: the smallest thing that plays. */
3361
3381
  prototype: { additions: ["three", "blender"] },
3362
3382
  // EVERY addition in one project — the composition acceptance made
3363
3383
  // permanent. Check it against `SCAFFOLD_ADDITIONS` (./scaffold/additions.ts)
3364
3384
  // when the scaffolder grows one.
3365
- full: { additions: ["three", "ui", "server", "blender", "studio"] },
3385
+ full: { additions: ["three", "canvas", "ui", "server", "blender", "studio"] },
3366
3386
  /** The design skew: a React root and no 3D world. */
3367
3387
  website: { additions: ["ui"] },
3368
3388
  /** Nothing but the project — the shape an author adds to. */
@@ -3373,15 +3393,16 @@ var presets = {
3373
3393
  examples: true,
3374
3394
  compose(additions) {
3375
3395
  const three = additions.has("three");
3396
+ const world = three || additions.has("canvas");
3376
3397
  const studio = additions.has("studio");
3377
3398
  const layouts = "@volter/editor-sdk/layouts";
3378
- const design = additions.has("ui") && !three;
3399
+ const design = additions.has("ui") && !world;
3379
3400
  return {
3380
- // THE PRODUCT THIS PROJECT OPENS IN, and the 3D lane beside it:
3381
- // `@volter/editor-game` is the 3D world's lane, and a project with no 3D
3382
- // root has nothing for Play, the Game workspace or the instruments over
3383
- // a running game to run.
3384
- editorPackages: [PRODUCT2, ...three ? ["@volter/editor-game"] : []],
3401
+ // THE PRODUCT THIS PROJECT OPENS IN, and the game lane beside it:
3402
+ // `@volter/editor-game` is the lane of a game world (3D, or a 2D scene), and
3403
+ // a project with no world has nothing for Play, the Game workspace or the
3404
+ // instruments over a running game to run.
3405
+ editorPackages: [PRODUCT2, ...world ? ["@volter/editor-game"] : []],
3385
3406
  editor: {
3386
3407
  layout: { name: design ? "DesignLayout" : studio ? "StudioLayout" : "GameLayout", from: layouts },
3387
3408
  inspector: studio ? "column" : "card"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@volter/game-editor",
3
3
  "author": "Volter AI, Inc.",
4
- "version": "0.5.67",
4
+ "version": "0.5.69",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -28,6 +28,7 @@
28
28
  "workbench",
29
29
  "template",
30
30
  "template-dotfiles",
31
+ "additions",
31
32
  "catalog",
32
33
  "starter",
33
34
  "BUNDLED_NOTICES"
@@ -37,34 +38,34 @@
37
38
  "build:node": "node scripts/build-node.mjs",
38
39
  "typecheck": "tsc -p tsconfig.node.json"
39
40
  },
40
- "vgai": {
41
+ "volter": {
41
42
  "product": {
42
43
  "entry": "./src/index.ts",
43
44
  "displayName": "Volter Game Editor",
44
45
  "colorTheme": "dark",
45
46
  "workbench": {
46
- "release": "game-editor-53c70370c14c-d9c0c8f0d344-darwin-arm64",
47
- "tarballSha256": "db26cbe669909e5dab61536a01f08d95b7de4b037f6607f40b52bea100194093"
47
+ "release": "game-editor-f16dc165c0df-7829035e8e51-darwin-arm64",
48
+ "tarballSha256": "5737029b2bfe64a22466ccf000e80056cf9cebfdc3650022a27fa990e037a421"
48
49
  }
49
50
  }
50
51
  },
51
52
  "dependencies": {
52
- "@volter/editor-core": "0.5.67",
53
- "@volter/editor-game": "0.5.67",
54
- "@volter/editor-react": "0.5.67",
55
- "@volter/editor-threejs": "0.5.67",
56
- "@volter/editor-xstate": "0.5.67",
57
- "@volter/editor-blender": "0.1.10",
58
- "@volter/dawproject": "0.5.67",
59
- "@volter/editor-dawproject": "0.5.67",
60
- "@volter/blender-engine": "0.1.9",
61
- "@volter/editor-project": "0.5.67",
62
- "@volter/editor-sdk": "0.5.67",
63
- "@volter/editor-live": "0.5.67",
64
- "@volter/game-live": "0.5.67",
53
+ "@volter/editor-core": "0.5.69",
54
+ "@volter/editor-game": "0.5.69",
55
+ "@volter/editor-react": "0.5.69",
56
+ "@volter/editor-threejs": "0.5.69",
57
+ "@volter/editor-xstate": "0.5.69",
58
+ "@volter/editor-blender": "0.1.12",
59
+ "@volter/dawproject": "0.5.69",
60
+ "@volter/editor-dawproject": "0.5.69",
61
+ "@volter/blender-engine": "0.1.10",
62
+ "@volter/editor-project": "0.5.69",
63
+ "@volter/editor-sdk": "0.5.69",
64
+ "@volter/editor-live": "0.5.69",
65
+ "@volter/game-live": "0.5.69",
65
66
  "@modelcontextprotocol/sdk": "1.30.0",
66
- "@volter/game-runtime": "0.5.67",
67
- "@volter/threejs-runtime": "0.5.67",
67
+ "@volter/game-runtime": "0.5.69",
68
+ "@volter/threejs-runtime": "0.5.69",
68
69
  "undici": "7.29.1",
69
70
  "typescript": "5.9.3",
70
71
  "@colyseus/schema": "^4.0.14",
@@ -88,7 +89,9 @@
88
89
  "vite": "^6.4.3",
89
90
  "ztrack": "^1.5.5",
90
91
  "three-bvh-csg": "^0.0.18",
91
- "three-mesh-bvh": "^0.9.12"
92
+ "three-mesh-bvh": "^0.9.12",
93
+ "@pixi/react": "8.0.5",
94
+ "pixi.js": "^8.6.0"
92
95
  },
93
96
  "bin": {
94
97
  "volter-game-editor": "./dist-node/cli.js"
@@ -1,4 +1,4 @@
1
- declare module 'vgai:contributions/*' {
1
+ declare module 'volter:contributions/*' {
2
2
  const contributions: readonly { readonly entryPath: string; readonly load: () => Promise<unknown> }[];
3
3
  export default contributions;
4
4
  }