@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.
- package/BUNDLED_NOTICES +10954 -5077
- package/LICENSE +1 -1
- package/LICENSE-BLENDER +2 -2
- package/NOTICE +2 -2
- package/additions/canvas/package.json +8 -0
- package/additions/canvas/src/canvas-mount.ts +46 -0
- package/additions/canvas/src/scene2d.tsx +18 -0
- package/catalog/entries/bake.json +1 -1
- package/catalog/entries/blender.json +3 -3
- package/catalog/entries/music.json +6 -6
- package/catalog/project-source/LICENSE +1 -1
- package/catalog/project-source/src/contributions/bake.kind.ts +2 -2
- package/catalog/project-source/src/contributions/builder-document.tsx +1 -1
- package/catalog/project-source/src/contributions/builder-ui.tsx +3 -3
- package/catalog/project-source/src/contributions/module-source.ts +4 -4
- package/catalog/project-source/src/lib/music/music-player.ts +18 -12
- package/catalog/project-source/src/lib/reflections/volume-reflection-material.ts +59 -59
- package/catalog/project-source/src/lib/static-batch/Frozen.tsx +1 -1
- package/catalog/project-source/src/lib/static-batch/mutation-watch.ts +1 -1
- package/catalog/project-source/src/tools/bake-preview.tool.ts +9 -9
- package/dist/.vite/manifest.json +4106 -3965
- package/dist/assets/{AssetBudgetPanel-x_FNJbfZ.js → AssetBudgetPanel-BMR3AQhc.js} +10 -10
- package/dist/assets/AudioViewer-DESxi7pU.js +1 -0
- package/dist/assets/CanvasBoardDocument-Q_nrYFlB.js +1 -0
- package/dist/assets/CanvasSceneViewport-WZMoKy_F.js +1 -0
- package/dist/assets/ColorInput-C2EK-OnD.js +1 -0
- package/dist/assets/{EntityModelDocument-CzUHsH9E.js → EntityModelDocument-B_4ENTCq.js} +1 -1
- package/dist/assets/{EnvironmentAssetDocument-ByEB7_4A.js → EnvironmentAssetDocument-BZBp6OFJ.js} +1 -1
- package/dist/assets/{GameplaySessionTimeline-dhG-oiqd.js → GameplaySessionTimeline-1ivaucpv.js} +1 -1
- package/dist/assets/ImageViewer-D16OExYu.js +1 -0
- package/dist/assets/{InspectorCanvasPreview-CEr_Kxna.js → InspectorCanvasPreview-BrFjhoiD.js} +1 -1
- package/dist/assets/InspectorObjectPreview-CY5xVsPR.js +1 -0
- package/dist/assets/JsonAssetDocument-CvjTlcdr.js +2 -0
- package/dist/assets/{LiveModuleDocument-DL8QHSlk.js → LiveModuleDocument-ne1o9giX.js} +1 -1
- package/dist/assets/{LutAssetDocument-BImiug2M.js → LutAssetDocument-Cp0v-O7q.js} +1 -1
- package/dist/assets/ModelAssetDocument-Ceu7OIN9.js +1 -0
- package/dist/assets/{NonThreeAuthoringBootstrap-B40qmGGS.js → NonThreeAuthoringBootstrap-DiElZf-e.js} +1 -1
- package/dist/assets/Object3DDocumentToolbar-BLNamqii.js +1 -0
- package/dist/assets/Object3DDocumentViewport-D6QoHfa_.js +2 -0
- package/dist/assets/{Object3DPreview-ClYDoH2L.js → Object3DPreview-ZVokr044.js} +1 -1
- package/dist/assets/OnlineAssetDetail-Dnckd7zB.js +1 -0
- package/dist/assets/PlayBar-DsMitSgy.js +1 -0
- package/dist/assets/{QuarksAssetDocument-B-VOj-n4.js → QuarksAssetDocument-B5J8uHFM.js} +1 -1
- package/dist/assets/ReactCanvasControls-CmfvxJYY.js +1 -0
- package/dist/assets/RootSelectionOverlay-BWsNiSuM.js +1 -0
- package/dist/assets/{ShaderAssetDocument-Kn8IvRGV.js → ShaderAssetDocument-CT7XzsZq.js} +5 -5
- package/dist/assets/ShadowEditor-YO5KEfnz.js +1 -0
- package/dist/assets/{SourceAssetViewer-CLQ95VSD.js → SourceAssetViewer-FSLup2km.js} +1 -1
- package/dist/assets/StageHost-DYfGYwvq.js +2 -0
- package/dist/assets/{StoryPreviewMount-D2lg37et.js → StoryPreviewMount-BhvT5QlB.js} +1 -1
- package/dist/assets/ThreeBoardDocument-B-z2nwnH.js +2 -0
- package/dist/assets/{ThreeIsolationSceneContent-DbYIylZQ.js → ThreeIsolationSceneContent-B5pU4Y6k.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-WEi6C9uU.js → ToolObject3DPreview-VtraiQ4Q.js} +1 -1
- package/dist/assets/Toolbar-M62Gob9T.js +1 -0
- package/dist/assets/{TransientHint-BpDLhRLd.js → TransientHint-Cc40mHWE.js} +1 -1
- package/dist/assets/VideoViewer-BxcUwXQm.js +1 -0
- package/dist/assets/ViewportShadingMenu-BoMPnTVh.js +1 -0
- package/dist/assets/active-ingest-0QjJWb7i.js +3 -0
- package/dist/assets/{animation-clock-Bm80XdqP.js → animation-clock-BXEwUJtz.js} +1 -1
- package/dist/assets/animation-mixers.service-C-Ko4KzM.js +1 -0
- package/dist/assets/animation-timeline.utility-Bl15-rYb.js +1 -0
- package/dist/assets/{asset-budget-asset.menu-CEgP0Kiw.js → asset-budget-asset.menu-BUa3g0Wy.js} +1 -1
- package/dist/assets/{asset-budget.action-D4R1c3wi.js → asset-budget.action-Dl5eVPIo.js} +1 -1
- package/dist/assets/{asset-budget.document-Syzjn1U1.js → asset-budget.document-DJylQ-0h.js} +1 -1
- package/dist/assets/{asset-budget.menu-BbRiqXeM.js → asset-budget.menu-BJtvNMLj.js} +1 -1
- package/dist/assets/asset-editor-persistence-BIbf5u0Q.js +1 -0
- package/dist/assets/asset-loaders-DoNflsHL.js +2 -0
- package/dist/assets/{asset-preview-B1tDziF1.js → asset-preview-DxlSdRZn.js} +1 -1
- package/dist/assets/{audio-unlock.service-ucMfCVBw.js → audio-unlock.service-CTaiyXF9.js} +1 -1
- package/dist/assets/audio.utility-CEmNc68t.js +1 -0
- package/dist/assets/autoplay.service-BZLSUyL8.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-C8mFMXSr.js → babylon-authoring-adapter-BZvV2bz_.js} +1 -1
- package/dist/assets/binding-resolver-DGbk9_XR.js +2 -0
- package/dist/assets/blender-emscripten-engine-B7lfg-RX.js +2 -0
- package/dist/assets/{blender-node-editor.document-C1YmwWls.js → blender-node-editor.document-wXJobGNH.js} +1 -1
- package/dist/assets/{blender-properties-tab-B8lyjgj3.js → blender-properties-tab-7GFf80ev.js} +1 -1
- package/dist/assets/{blender-runtime-host-CyQlImSR.js → blender-runtime-host-CILxrx5T.js} +2 -2
- package/dist/assets/{blender-runtime-skin-BK7ShZ6z.js → blender-runtime-skin-Cd5lQYsC.js} +7 -7
- package/dist/assets/{blender-runtime.document-B0nVQs0P.js → blender-runtime.document-C0r_R49S.js} +7 -7
- package/dist/assets/{blender-timeline.document-CMcdE2CK.js → blender-timeline.document-BaISZMBc.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-CjqNo4sZ.js → blender-uv-editor.document-CT_fsyyA.js} +1 -1
- package/dist/assets/blender-version.status-DzEx7u7k.js +1 -0
- package/dist/assets/blender-wali-engine-DOiQCBXH.js +2 -0
- package/dist/assets/{blender.command-C6NmRBo5.js → blender.command-DdiKd8mZ.js} +1 -1
- package/dist/assets/blender.keymap-BmOBRY7p.js +1 -0
- package/dist/assets/blender.status-BMETIbb2.js +1 -0
- package/dist/assets/board-guides-CjHQ9Ynm.js +1 -0
- package/dist/assets/body-marks-C1LxJtQb.js +1 -0
- package/dist/assets/bridge.command-DXUeavn5.js +3 -0
- package/dist/assets/{browserAll-lF_dLQVz.js → browserAll-Dg46xT22.js} +1 -1
- package/dist/assets/build-player.document-BHwVV3K0.js +1 -0
- package/dist/assets/build-profiles.document-HkpS-Kxa.js +2 -0
- package/dist/assets/build-progress.status-u1J0Rm1D.js +1 -0
- package/dist/assets/build-session-BLboUUbw.js +9 -0
- package/dist/assets/{build.action-DRX2IcYt.js → build.action-C00DL83N.js} +1 -1
- package/dist/assets/{build.command-BGvLaLG0.js → build.command-Cjk_NY75.js} +1 -1
- package/dist/assets/build.header-BWNmNWFT.js +1 -0
- package/dist/assets/{build.menu-UenrjPWS.js → build.menu-BBYtqCIq.js} +1 -1
- package/dist/assets/{build.service-BIUoTY6l.js → build.service-DOU15tKN.js} +1 -1
- package/dist/assets/{camera-DrvaM47S.js → camera-7DGyYW7Y.js} +1 -1
- package/dist/assets/{camera-runtime.inspector-CjJALNO8.js → camera-runtime.inspector-n-jiOR-3.js} +1 -1
- package/dist/assets/canvas-design-mount-CSRHU-ag.js +6 -0
- package/dist/assets/canvas-entry-runtime-BST8yRuK.js +2 -0
- package/dist/assets/{canvas-preview-frames-C0QTagA3.js → canvas-preview-frames-Cja32aW2.js} +1 -1
- package/dist/assets/{canvas-story-capture.service-Dgjr-rT1.js → canvas-story-capture.service-D5R5HJ8n.js} +2 -2
- package/dist/assets/capability-coverage-ByWftxk4.js +7 -0
- package/dist/assets/{collaboration-presence-BVIQuN1l.js → collaboration-presence-D6MC9xJN.js} +1 -1
- package/dist/assets/{collider-C7SbIYKY.js → collider-B78EcUc9.js} +1 -1
- package/dist/assets/{component-board.service-BEsFAw4_.js → component-board.service-BaQI5Oas.js} +2 -2
- package/dist/assets/component-board.service-CkjrsD8x.js +2 -0
- package/dist/assets/{component-board.service-CWFaGMCO.js → component-board.service-Dvjz_g-x.js} +2 -2
- package/dist/assets/component-contracts.service-C3-AXQp7.js +1 -0
- package/dist/assets/component-instance-root-DLI40MiB.js +1 -0
- package/dist/assets/{component-verbs.command-oNtGgzQL.js → component-verbs.command-Brr_WcaR.js} +1 -1
- package/dist/assets/component-verbs.service-DC2sC3j3.js +1 -0
- package/dist/assets/{config-_wCzzlM_.js → config-BI_7osdR.js} +3 -3
- package/dist/assets/{configurations-BXU4GGbV.js → configurations-XP9YLkrt.js} +1 -1
- package/dist/assets/connection.status-BhRwcFx0.js +1 -0
- package/dist/assets/{constraint-5KLYpGm7.js → constraint-Bp1l8hY-.js} +1 -1
- package/dist/assets/constraints.inspector-Dm1cycK3.js +1 -0
- package/dist/assets/{content-bounds-BeuIXKYu.js → content-bounds-DROIchTa.js} +1 -1
- package/dist/assets/{contract-system-adapters-Bic_7sev.js → contract-system-adapters-Cn7OW_ay.js} +1 -1
- package/dist/assets/coverage.service-l42ty7lr.js +3 -0
- package/dist/assets/create-runtime-B_uTwsmi.js +3 -0
- package/dist/assets/curve-THOUsg-j.js +1 -0
- package/dist/assets/{data-asset-DfQ2Pjse.js → data-asset-DAANayR6.js} +1 -1
- package/dist/assets/data-check-core-CHqar_E8.js +1 -0
- package/dist/assets/data-ref-CN34UeVw.js +1 -0
- package/dist/assets/debug-bridge-BD1XVAIB.js +1 -0
- package/dist/assets/debug-registry-ggQWxtu-.js +1 -0
- package/dist/assets/{deferred-ingest-play-BdR4qGk6.js → deferred-ingest-play-B2JUlwlT.js} +2 -2
- package/dist/assets/{design-time-canvas-mount-DPQeHSN2.js → design-time-canvas-mount-as9cN9I6.js} +2 -2
- package/dist/assets/design-time-layers-BRseeSmV.js +1 -0
- package/dist/assets/{design-time-mount.service-Ks-5Wkcs.js → design-time-mount.service-BTVu3yKo.js} +2 -2
- package/dist/assets/{design-time-mount.service-Ca-DZGFV.js → design-time-mount.service-DKvc7lVK.js} +2 -2
- package/dist/assets/design-time-react-mount-C7rB56QD.js +1 -0
- package/dist/assets/{document-preview-three-DThkjI1S.js → document-preview-three-CxmRhCcV.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-BrLU8IJ_.js → dom-authoring-adapter-L8OzXfmE.js} +1 -1
- package/dist/assets/{draco3d-B2cwv46o.js → draco3d-BjNuXv66.js} +1 -1
- package/dist/assets/{edit-mode-audio.service-D4ITNbsm.js → edit-mode-audio.service-BwI5u845.js} +1 -1
- package/dist/assets/edit-mode-authoring-D5f7aHHl.js +1 -0
- package/dist/assets/{edit-mode-networking.service-BNv-FTRh.js → edit-mode-networking.service-DqP_4lbI.js} +1 -1
- package/dist/assets/editor-api-BM7H_F4G.js +1 -0
- package/dist/assets/{editor-layers-BDJnAAzj.js → editor-layers-D-CTUqco.js} +1 -1
- package/dist/assets/editor-presentation-activity-CqJH4G9t.js +1 -0
- package/dist/assets/{editor-shell-store-ChLcVeNB.js → editor-shell-store-DHVWS8cE.js} +1 -1
- package/dist/assets/{entity-object-JmYMfLsx.js → entity-object-MKYemTFM.js} +1 -1
- package/dist/assets/{extend-Cc-nEa_A.js → extend-BrgqZiMY.js} +1 -1
- package/dist/assets/fork-menu-DE2MK3Nq.js +1 -0
- package/dist/assets/{frame-debugger-store-DaCbAYSW.js → frame-debugger-store-BXoLKTdZ.js} +1 -1
- package/dist/assets/game-audio-BeCyd0Ha.js +1 -0
- package/dist/assets/{game-contract-seams-BnPFGLll.js → game-contract-seams-tyKDsfaP.js} +1 -1
- package/dist/assets/{game-css-scope-transform-D_p7cVgW.js → game-css-scope-transform-DcjrwtVc.js} +2 -2
- package/dist/assets/game-document.service-CTb2itHQ.js +1 -0
- package/dist/assets/game-eval.command-CpDKXOQU.js +2 -0
- package/dist/assets/game-module-access-BTInp2NG.js +1 -0
- package/dist/assets/game-network-DW5ARz4R.js +22 -0
- package/dist/assets/{gameplay-export-BzYzLZPi.js → gameplay-export-cHk3v9y-.js} +1 -1
- package/dist/assets/gameplay-replay-HRenPTtU.js +1 -0
- package/dist/assets/gameplay.command-DcY2lKKX.js +1 -0
- package/dist/assets/generation-CdOATubd.css +1 -0
- package/dist/assets/{generation-jobs-BZhOMrp-.js → generation-jobs-CJBehuUp.js} +1 -1
- package/dist/assets/generation.service-BMOc-C9i.js +1 -0
- package/dist/assets/{generations-DVDht_31.js → generations-ssgVOe_6.js} +1 -1
- package/dist/assets/generations.status-B_SmPReI.js +1 -0
- package/dist/assets/hierarchy-marks-BuCO8Ke-.js +1 -0
- package/dist/assets/hierarchy-marks-CsTaTkc7.js +1 -0
- package/dist/assets/hosted-asset-materialization-CiXZI85V.js +2 -0
- package/dist/assets/{ibl-override-material-CiKkaOTW.js → ibl-override-material-CMo_a49U.js} +1 -1
- package/dist/assets/index-B0S4fQQV.js +1 -0
- package/dist/assets/{index-C3Pw-9So.js → index-B9bd4k-t.js} +1 -1
- package/dist/assets/index-BMxv2MNV.js +1 -0
- package/dist/assets/{index-DUZeuA7g.js → index-Bm4_DmRO.js} +1 -1
- package/dist/assets/{index-cNc-iFbq.js → index-BvBlIRwM.js} +1 -1
- package/dist/assets/{index-Ck3JFh48.js → index-BweKDdi_.js} +1 -1
- package/dist/assets/{index-BRJMIUK0.js → index-C5ZAyrKq.js} +346 -345
- package/dist/assets/index-CPiRKiDC.css +1 -0
- package/dist/assets/index-CfpGZrbC.js +1 -0
- package/dist/assets/index-Czvj6whv.js +1 -0
- package/dist/assets/{index-SS9EugVg.js → index-DgPDGGSV.js} +2 -2
- package/dist/assets/{inference-diagnostics-xecGdohW.js → inference-diagnostics-DLt9ql9I.js} +1 -1
- package/dist/assets/{ingest-boot-viewport-DAt8WFSy.js → ingest-boot-viewport-BXVXjYpG.js} +1 -1
- package/dist/assets/ingest-siblings-DWJ7OGB_.js +1 -0
- package/dist/assets/ingest-source-persistence-6ShMoSCa.js +1 -0
- package/dist/assets/ingest.service-BBbX8ibg.js +1 -0
- package/dist/assets/{inspect-Dr4qvDpJ.js → inspect-Cz3Zyx_1.js} +1 -1
- package/dist/assets/inspection-D8fZOHCM.js +1 -0
- package/dist/assets/instances.command-BrdlngrL.js +1 -0
- package/dist/assets/{json-history-resource-DwS10tqD.js → json-history-resource-Uqrihfc8.js} +1 -1
- package/dist/assets/layered-pick-CAVQMPI7.js +1 -0
- package/dist/assets/{light-DcFqVCmv.js → light-CqzsCWeJ.js} +1 -1
- package/dist/assets/{live-project-verbs-C3LzprCe.js → live-project-verbs-CdFmLYOo.js} +1 -1
- package/dist/assets/{machine.document-BzZxubYQ.js → machine.document-DRIFOVaa.js} +1 -1
- package/dist/assets/{machines.finder-BR02bfVG.js → machines.finder-DPCT6few.js} +1 -1
- package/dist/assets/material-BVApn1V_.js +1 -0
- package/dist/assets/{material-factory-COz7qZhC.js → material-factory-B_75xxFD.js} +1 -1
- package/dist/assets/{mesh-DcmO-mWI.js → mesh-DdA3mExo.js} +1 -1
- package/dist/assets/model-asset-sections-D1uxOu2v.css +1 -0
- package/dist/assets/model-asset-sections.service-CJnSIckZ.js +1 -0
- package/dist/assets/{model-inspection-CXHxrafK.js → model-inspection-DvspbmJl.js} +1 -1
- package/dist/assets/{model-thumbnail-BEKPWg4l.js → model-thumbnail-BmQs-h6t.js} +1 -1
- package/dist/assets/{models.finder-c1I0tp2M.js → models.finder-Qv_Hsccy.js} +1 -1
- package/dist/assets/module-mode-MJ4Gbsry.js +2 -0
- package/dist/assets/mount-canvas-ingest-root-BxtM8OaB.js +2 -0
- package/dist/assets/mount-dom-ingest-root-pGatqO46.js +2 -0
- package/dist/assets/mount-ingest-root-C7jb-mCl.js +2 -0
- package/dist/assets/mount-manifest-BfoHBuzn.js +1 -0
- package/dist/assets/mount-readiness-DyAd17pe.js +4 -0
- package/dist/assets/mount-three-ingest-root-Boa5mcaF.js +1 -0
- package/dist/assets/{mounted-authoring-Clftxx0x.js → mounted-authoring-DxMISwvR.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-B4-eAYGI.js → mounted-story-viewport-source-DfnLxI1f.js} +1 -1
- package/dist/assets/{native-debug-module-2_HVupdg.js → native-debug-module-BlrALjM3.js} +1 -1
- package/dist/assets/{navigation-CH3-zr1n.js → navigation-CqG5o5AR.js} +1 -1
- package/dist/assets/{navmesh.menu-Dfi-Pk-8.js → navmesh.menu-D4TdVDhe.js} +1 -1
- package/dist/assets/{navmesh.service-Cz7QFY-M.js → navmesh.service-DWKT5ruQ.js} +1 -1
- package/dist/assets/network-observer.service-ZRAquNq4.js +1 -0
- package/dist/assets/network.utility-DjeOEvAY.js +1 -0
- package/dist/assets/object-marks-BnvSuCTt.js +1 -0
- package/dist/assets/{object3d-authoring-subject-BDrxd1GA.js → object3d-authoring-subject-XccsO0xG.js} +1 -1
- package/dist/assets/{object3d-document-session-registry-DJDEDM0p.js → object3d-document-session-registry-CMRJdFp6.js} +2 -2
- package/dist/assets/{oid-transform-D5Kxt6ij.js → oid-transform-DaA6yW6o.js} +1 -1
- package/dist/assets/{particles-vRp0Lf3o.js → particles-DsQRcDBY.js} +1 -1
- package/dist/assets/{performance-profiler-OwnXQX0M.js → performance-profiler-CMbwGBuk.js} +1 -1
- package/dist/assets/pixi-authoring-adapter-BoBt8bB5.js +1 -0
- package/dist/assets/pixi-live-write-target-CYZgvC6U.js +1 -0
- package/dist/assets/play.command-D9JGJP-e.js +2 -0
- package/dist/assets/pose-guard-CLabLSzf.js +1 -0
- package/dist/assets/presentation-COhHQdmR.js +1 -0
- package/dist/assets/{product-CxmUIxmr.js → product-CaRGoiIH.js} +1 -1
- package/dist/assets/{profiler.action-Dzy9DuAc.js → profiler.action-Cz7HYWjh.js} +1 -1
- package/dist/assets/{profiler.menu-jLDO3U6N.js → profiler.menu-D5aR_FBy.js} +1 -1
- package/dist/assets/profiler.utility-KwxlIPKb.js +1 -0
- package/dist/assets/{project-authoring-session-C3eusefK.js → project-authoring-session-DKXHVwxO.js} +2 -2
- package/dist/assets/project-provenance-BGnJXJwa.js +1 -0
- package/dist/assets/{properties-bone-constraints.inspector-B_PbSMV7.js → properties-bone-constraints.inspector-Bo-sU8eR.js} +1 -1
- package/dist/assets/{properties-bone.inspector-CMDEQuBd.js → properties-bone.inspector-BQiWplQv.js} +1 -1
- package/dist/assets/{properties-collection.inspector-D7Ay8yRj.js → properties-collection.inspector-C5BnR-GE.js} +1 -1
- package/dist/assets/{properties-constraints.inspector-DS1fZgXK.js → properties-constraints.inspector-CyheU12R.js} +1 -1
- package/dist/assets/{properties-data.inspector-k2pGN2Mp.js → properties-data.inspector-CkycARja.js} +1 -1
- package/dist/assets/{properties-material.inspector-Bb3yAGUx.js → properties-material.inspector-Bl_PUmY-.js} +1 -1
- package/dist/assets/{properties-modifiers.inspector-BcJfe-Wy.js → properties-modifiers.inspector-j7SnOxQq.js} +1 -1
- package/dist/assets/{properties-object.inspector-CUSfXJuq.js → properties-object.inspector-DcR3MGLK.js} +1 -1
- package/dist/assets/{properties-output.inspector-BTVW2kn1.js → properties-output.inspector-BLjw6K4b.js} +1 -1
- package/dist/assets/{properties-particles.inspector-Cw0fxx3B.js → properties-particles.inspector-BUIm2-Jf.js} +1 -1
- package/dist/assets/{properties-physics.inspector-C-0bD2bu.js → properties-physics.inspector-DNvRcxb6.js} +1 -1
- package/dist/assets/{properties-render.inspector-C8D5UpjX.js → properties-render.inspector-8FMZ-qoZ.js} +1 -1
- package/dist/assets/{properties-scene.inspector-HjK6QHGg.js → properties-scene.inspector-Dx7_z75k.js} +1 -1
- package/dist/assets/{properties-texture.inspector-CckZgUaI.js → properties-texture.inspector-WT15951-.js} +1 -1
- package/dist/assets/{properties-view-layer.inspector-C1ajtVSk.js → properties-view-layer.inspector-P7VNTdqr.js} +1 -1
- package/dist/assets/{properties-world.inspector-BiT_EdT-.js → properties-world.inspector-B3t1q8TF.js} +1 -1
- package/dist/assets/r3f-design-session-lsbFnoWH.js +2 -0
- package/dist/assets/{r3f-physics-binding-DzrbpqjM.js → r3f-physics-binding-Cx8yhuwt.js} +1 -1
- package/dist/assets/{r3f-source-authoring-adapter-DbbeRcvt.js → r3f-source-authoring-adapter-jH3G0TeH.js} +2 -2
- package/dist/assets/react-canvas-navigation-B_gOe3CI.js +1 -0
- package/dist/assets/react-inspector.service-CZf1vfdX.js +1 -0
- package/dist/assets/react-story-board-CCm2Opwn.js +1 -0
- package/dist/assets/{react-three-rapier.esm-U8J7g6tH.js → react-three-rapier.esm-CHXGG51p.js} +1 -1
- package/dist/assets/react-world-authoring-adapter-CnzxMtYz.js +1 -0
- package/dist/assets/{realm-services-CnY105XU.js → realm-services-Do9J6nsb.js} +1 -1
- package/dist/assets/reflection-probe-capture.inspector-BAjjIybz.js +1 -0
- package/dist/assets/{reflection-probe-BHNGwVyz.js → reflection-probe-sIto9mh0.js} +1 -1
- package/dist/assets/registry-Xnduk02T.js +1 -0
- package/dist/assets/{relative-import-specifier-BFKIWEWs.js → relative-import-specifier-CPFTrxi4.js} +1 -1
- package/dist/assets/{render-env-BkKZ4uMA.js → render-env-YJlI8K0i.js} +1 -1
- package/dist/assets/{render-features-rxbawsRb.js → render-features-DMSV2qKJ.js} +1 -1
- package/dist/assets/{render-settings-DS5leCed.js → render-settings-CRyDhHyz.js} +1 -1
- package/dist/assets/{resolve-three-CVnMRHxw.js → resolve-three-D27rMc37.js} +19 -19
- package/dist/assets/root-seam-contract-gjWUd5uu.js +1 -0
- package/dist/assets/run-selection-B0jOdyYt.js +2 -0
- package/dist/assets/scene-capture-Di9cM1p4.js +1 -0
- package/dist/assets/scene-document.service-XxGs4HHE.js +2 -0
- package/dist/assets/{scene-framing-BQt72ZCw.js → scene-framing-DkZKDwH3.js} +1 -1
- package/dist/assets/{scene-index--lRWLEmW.js → scene-index-DHeKmalD.js} +1 -1
- package/dist/assets/{scene-query-s1y04OVB.js → scene-query-ByZtXA2m.js} +1 -1
- package/dist/assets/seeded-random-BJthDRMu.js +1 -0
- package/dist/assets/{session-CTXsU1lK.js → session-x8E_NJk2.js} +34 -34
- package/dist/assets/{setup-renderer-Cwkl1Ar6.js → setup-renderer-F9mG7t6r.js} +1 -1
- package/dist/assets/{source-object3d-authoring-adapter-DF679Ncb.js → source-object3d-authoring-adapter-CvmFpSUj.js} +1 -1
- package/dist/assets/{source-persistence-backend-CwLYVPXj.js → source-persistence-backend-au3WtEn6.js} +1 -1
- package/dist/assets/{spark-renderer-lifecycle-DfYpvEJa.js → spark-renderer-lifecycle-B6Axb6jm.js} +1 -1
- package/dist/assets/{stage-keyboard-B8BEW592.js → stage-keyboard-BQkndG_D.js} +1 -1
- package/dist/assets/stage-overlay-set-g6eWhuRv.js +1 -0
- package/dist/assets/stage-presence-markers-0CDfO5f4.js +1 -0
- package/dist/assets/stage-transform-tools-BzPl7OIo.js +1 -0
- package/dist/assets/standard-viewport-dressing-BW-dM_1h.js +24 -0
- package/dist/assets/{state-watch.action-DnR5Zjr-.js → state-watch.action-Z1nQ5awu.js} +1 -1
- package/dist/assets/{state-watch.menu-wYLCLsAw.js → state-watch.menu-CQHGUF3W.js} +1 -1
- package/dist/assets/state-watch.utility-DCIg2i79.js +1 -0
- package/dist/assets/{story-capture-BmnwHGDV.js → story-capture-BIrjDKeY.js} +1 -1
- package/dist/assets/story-documents-BvG2xeaR.js +3 -0
- package/dist/assets/{story-documents.service-B6v7Z-WE.js → story-documents.service-DOSEa3ja.js} +1 -1
- package/dist/assets/{story-documents.service-yagl1wGp.js → story-documents.service-y1m7XGMJ.js} +1 -1
- package/dist/assets/{story-media-presence-BqRMu572.js → story-media-presence-HLV-KaMj.js} +1 -1
- package/dist/assets/{story-pixi-preview-Da6afqLg.js → story-pixi-preview-CMhho2gG.js} +1 -1
- package/dist/assets/{story-presentation-DMSYRWaz.js → story-presentation-CYhVv8Ku.js} +1 -1
- package/dist/assets/story-three-preview-CgcLF5lE.js +2 -0
- package/dist/assets/{structural-ids-Br2zjINh.js → structural-ids-BOo2BRoY.js} +1 -1
- package/dist/assets/studio-environment-R9qXUUcC.js +2 -0
- package/dist/assets/{surface-state-1lTOi8FD.js → surface-state-D8Qnowo6.js} +1 -1
- package/dist/assets/{syntactic-prop-specs-eiQXwMIc.js → syntactic-prop-specs-8gkBuc5j.js} +1 -1
- package/dist/assets/team-playtest.service-BBMZ2iyk.js +1 -0
- package/dist/assets/{three-TCuY32m_.js → three-DiL6vMXq.js} +1 -1
- package/dist/assets/three-authoring-adapter-CkLR2zGf.js +1 -0
- package/dist/assets/three-authoring.service-CovhlCGx.js +2 -0
- package/dist/assets/{three-ingest-runtime-B7rtg3QE.js → three-ingest-runtime-CwTqAHgX.js} +1 -1
- package/dist/assets/{three-integration-BdN5Nhsg.js → three-integration-DXOFI88n.js} +2 -2
- package/dist/assets/three-integration.service-rCAqpqSp.js +1 -0
- package/dist/assets/three-projection-core-B7Lf8tOp.js +1 -0
- package/dist/assets/{three-state-DwFE3ay2.js → three-state-BCACvUtm.js} +1 -1
- package/dist/assets/{three-story-capture.service-CvpV3v5a.js → three-story-capture.service-rTFKNtHA.js} +2 -2
- package/dist/assets/{three-story-model-C2r2BuiA.js → three-story-model-BjKr7OMn.js} +1 -1
- package/dist/assets/three-viewport-presentation-CBzvc2v2.js +141 -0
- package/dist/assets/tools-DfctM216.js +1 -0
- package/dist/assets/transform-mode-request-DlEApNrA.js +1 -0
- package/dist/assets/transport-strip-xCg94CuI.js +1 -0
- package/dist/assets/transport.header-BRtdky0x.js +1 -0
- package/dist/assets/{trigger-volume-DP0G1VBe.js → trigger-volume-BLkHmfm9.js} +1 -1
- package/dist/assets/tuples-BDz3wbQL.js +1 -0
- package/dist/assets/ui-board-document-DvbK_HVN.js +2 -0
- package/dist/assets/{user-data-Bpj7diUS.js → user-data-C84W0V47.js} +1 -1
- package/dist/assets/user-data-CODoGZqA.js +1 -0
- package/dist/assets/{utility-view-state-CAfbFbKQ.js → utility-view-state-CDRxZSo-.js} +1 -1
- package/dist/assets/viewport-door-BARIpMu-.js +1 -0
- package/dist/assets/{viewport-root-presentation-vgxsTyj4.js → viewport-root-presentation-hRLF0BeO.js} +1 -1
- package/dist/assets/{viewport-surface-status-cwCiBGa7.js → viewport-surface-status-TUfhXKR9.js} +1 -1
- package/dist/assets/{webworkerAll-Cm3gTjWi.js → webworkerAll-PJtcQ1FD.js} +1 -1
- package/dist/assets/worker-BtXrsgFy.js +2 -0
- package/dist/assets/workspace-arrangement-DqG5sUns.js +1 -0
- package/dist/assets/world-documents-D69XaqUX.js +1 -0
- package/dist/assets/world-root-stage-binding-BgZWZEuD.js +1 -0
- package/dist/assets/{xstate-animation-binding-BGLxcZT_.js → xstate-animation-binding-CIyLzGHs.js} +1 -1
- package/dist/assets/{xstate-animation-meta-D_T441Ru.js → xstate-animation-meta-CbYWup3R.js} +1 -1
- package/dist/volter-shared-react.json +10 -0
- package/dist/volter-shared-three.json +3 -0
- package/dist-node/cli.js +253 -210
- package/dist-node/create.js +103 -82
- package/package.json +23 -20
- package/src/contributions.d.ts +1 -1
- package/src/index.ts +10 -10
- package/starter/cube.py +1 -1
- package/template/.agents/references/project-manual.md +17 -17
- package/template/.agents/skills/editor/SKILL.md +6 -6
- package/template/.agents/skills/editor/agents/openai.yaml +3 -3
- package/template/.agents/skills/editor/references/editor-control.md +62 -62
- package/template/{.claude/skills/vgai-3d-models → .agents/skills/volter-3d-models}/SKILL.md +3 -3
- package/template/{.github/skills/vgai-ingest-existing-game → .agents/skills/volter-ingest-existing-game}/SKILL.md +2 -2
- package/template/.agents/skills/{vgai-music → volter-music}/SKILL.md +35 -11
- package/template/{.claude/skills/vgai-threejs-authoring → .agents/skills/volter-threejs-authoring}/SKILL.md +9 -9
- package/template/.agents/skills/volter-threejs-authoring/agents/openai.yaml +4 -0
- package/template/{.github/skills/vgai-threejs-authoring → .agents/skills/volter-threejs-authoring}/references/helper-catalog.md +1 -1
- package/template/.claude/skills/editor/SKILL.md +6 -6
- package/template/.claude/skills/editor/agents/openai.yaml +3 -3
- package/template/.claude/skills/editor/references/editor-control.md +62 -62
- package/template/{.agents/skills/vgai-3d-models → .claude/skills/volter-3d-models}/SKILL.md +3 -3
- package/template/{.agents/skills/vgai-ingest-existing-game → .claude/skills/volter-ingest-existing-game}/SKILL.md +2 -2
- package/template/{.github/skills/vgai-threejs-authoring → .claude/skills/volter-threejs-authoring}/SKILL.md +9 -9
- package/template/.claude/skills/volter-threejs-authoring/agents/openai.yaml +4 -0
- package/template/.claude/skills/{vgai-threejs-authoring → volter-threejs-authoring}/references/helper-catalog.md +1 -1
- package/template/.github/copilot-instructions.md +1 -1
- package/template/.github/skills/editor/SKILL.md +6 -6
- package/template/.github/skills/editor/agents/openai.yaml +3 -3
- package/template/.github/skills/editor/references/editor-control.md +62 -62
- package/template/.github/skills/{vgai-3d-models → volter-3d-models}/SKILL.md +3 -3
- package/template/{.claude/skills/vgai-ingest-existing-game → .github/skills/volter-ingest-existing-game}/SKILL.md +2 -2
- package/template/{.agents/skills/vgai-threejs-authoring → .github/skills/volter-threejs-authoring}/SKILL.md +9 -9
- package/template/.github/skills/volter-threejs-authoring/agents/openai.yaml +4 -0
- package/template/{.agents/skills/vgai-threejs-authoring → .github/skills/volter-threejs-authoring}/references/helper-catalog.md +1 -1
- package/template/.mcp.json +3 -3
- package/template/AGENTS.md +24 -23
- package/template/DEVLOG.md +1 -1
- package/template/IDIOMS.md +3 -3
- package/template/LICENSE +3 -3
- package/template/README.md +12 -12
- package/template/check-idioms.ts +51 -51
- package/template/manifest-entry-modules-plugin.ts +17 -4
- package/template/package.json +12 -12
- package/template/server/loopback.ts +1 -1
- package/template/server/main.ts +4 -4
- package/template/server/rooms/arena-room.ts +8 -8
- package/template/server/rooms/game-room.ts +8 -8
- package/template/server/rooms.ts +2 -2
- package/template/src/bot/QaTester.tsx +1 -1
- package/template/src/bot/bot-station.ts +2 -2
- package/template/src/bot/tester-station.ts +1 -1
- package/template/src/contributions/README.md +1 -1
- package/template/src/contributions/analytics.analytics.tsx +1 -1
- package/template/src/contributions/data.document.tsx +2 -2
- package/template/src/contributions/pages.finder.ts +1 -1
- package/template/src/contributions/tester.inspector.tsx +2 -2
- package/template/src/contributions/use-game-modules.ts +1 -1
- package/template/src/input.ts +2 -2
- package/template/src/lib/reflections/volume-reflection-material.ts +59 -59
- package/template/src/lib/static-batch/Frozen.tsx +1 -1
- package/template/src/lib/static-batch/mutation-watch.ts +1 -1
- package/template/src/main.ts +58 -6
- package/template/src/manifest-entry-modules.d.ts +12 -1
- package/template/src/prefabs/HeroBox.stories.tsx +1 -1
- package/template/src/world.tsx +1 -1
- package/template/tsconfig.json +1 -1
- package/template/validate-manifest.ts +3 -3
- package/template/vite.config.ts +11 -11
- package/template/{vgai.adapter.ts → volter.adapter.ts} +1 -1
- package/template/{vgai.project.json → volter.project.json} +2 -2
- package/template-dotfiles/gitignore +27 -27
- package/workbench/src/media/game-cover.css +11 -11
- package/workbench/src/product.contribution.ts +28 -28
- package/workbench/src/{vgaiGameSkew.ts → volterGameSkew.ts} +16 -16
- package/dist/assets/AudioViewer-BDPqHDfU.js +0 -1
- package/dist/assets/CanvasBoardDocument-mxL0oJ3N.js +0 -1
- package/dist/assets/CanvasSceneViewport-C_mapCwC.js +0 -1
- package/dist/assets/ColorInput-QUPS1pEB.js +0 -1
- package/dist/assets/ImageViewer-tlVvkdM4.js +0 -1
- package/dist/assets/InspectorObjectPreview-W-y079DS.js +0 -1
- package/dist/assets/JsonAssetDocument-CPmcWFPW.js +0 -2
- package/dist/assets/ModelAssetDocument-De1HKuxG.js +0 -1
- package/dist/assets/Object3DDocumentToolbar-Cks81kCS.js +0 -1
- package/dist/assets/Object3DDocumentViewport-DCwiSY3O.js +0 -2
- package/dist/assets/OnlineAssetDetail-CNuwSQRQ.js +0 -1
- package/dist/assets/PlayBar-bT8Xdrap.js +0 -1
- package/dist/assets/ReactCanvasControls-CnJrPj-B.js +0 -1
- package/dist/assets/RootSelectionOverlay-CpaGluQu.js +0 -1
- package/dist/assets/ShadowEditor-CVtMlALn.js +0 -1
- package/dist/assets/StageHost-B89HKcvd.js +0 -2
- package/dist/assets/ThreeBoardDocument-BAgHrbtu.js +0 -2
- package/dist/assets/Toolbar-DkTHnQto.js +0 -1
- package/dist/assets/VideoViewer-DMV8lf4P.js +0 -1
- package/dist/assets/ViewportShadingMenu-CXPi6fl8.js +0 -1
- package/dist/assets/active-ingest-DA426a81.js +0 -3
- package/dist/assets/adapter-runtime-bindings-4cmsRvRh.js +0 -2
- package/dist/assets/animation-mixers.service-DK64IuYq.js +0 -1
- package/dist/assets/animation-timeline.utility-D-g0zrOl.js +0 -1
- package/dist/assets/asset-editor-persistence-BGWIqZdk.js +0 -1
- package/dist/assets/asset-loaders-C0KQI5eY.js +0 -2
- package/dist/assets/audio.utility-BmE9WMUg.js +0 -1
- package/dist/assets/autoplay.service-CjPnv3QW.js +0 -1
- package/dist/assets/binding-resolver-dE0GnZT5.js +0 -2
- package/dist/assets/blender-emscripten-engine-BeWFjMn-.js +0 -2
- package/dist/assets/blender-version.status-OsFoc9SA.js +0 -1
- package/dist/assets/blender-wali-engine-da698rDf.js +0 -2
- package/dist/assets/blender.keymap-_rF_vRX8.js +0 -1
- package/dist/assets/blender.status-ujwGU6dU.js +0 -1
- package/dist/assets/board-guides-BEKPgD9M.js +0 -1
- package/dist/assets/body-marks-RKb_LTwL.js +0 -1
- package/dist/assets/bridge.command-BF00Iefm.js +0 -3
- package/dist/assets/build-profiles.document-CqNrDdh9.js +0 -2
- package/dist/assets/build-progress.status-Bo1ZgJcb.js +0 -1
- package/dist/assets/build-session-GZcSAfPN.js +0 -9
- package/dist/assets/build.header-Bt1kwHWl.js +0 -1
- package/dist/assets/canvas-design-mount-BbLW_Nci.js +0 -6
- package/dist/assets/canvas-entry-runtime-UNYuSfG0.js +0 -2
- package/dist/assets/capability-coverage-DZ-onC5j.js +0 -7
- package/dist/assets/component-board.service-q_TM9BCw.js +0 -2
- package/dist/assets/component-contracts.service-CPbfXE1h.js +0 -1
- package/dist/assets/component-instance-root-B0C5oNEm.js +0 -1
- package/dist/assets/component-verbs.service-CnA11bJq.js +0 -1
- package/dist/assets/connection.status-Yvt0bX0r.js +0 -1
- package/dist/assets/constraints.inspector-4r8jWq5a.js +0 -1
- package/dist/assets/coverage.service-DcpEoBuf.js +0 -3
- package/dist/assets/create-runtime-DBfUy0SO.js +0 -3
- package/dist/assets/curve-DVd18iAX.js +0 -1
- package/dist/assets/data-check-core-CQEjuFyt.js +0 -1
- package/dist/assets/data-ref-CWnkj-HX.js +0 -1
- package/dist/assets/debug-bridge-D3_-EgRE.js +0 -1
- package/dist/assets/debug-registry-P0_YQGWd.js +0 -1
- package/dist/assets/design-time-layers-ChswRUJt.js +0 -1
- package/dist/assets/design-time-react-mount-C85KfXOd.js +0 -1
- package/dist/assets/edit-mode-authoring-DeCxPcHM.js +0 -1
- package/dist/assets/editor-api-BFTIRlWa.js +0 -1
- package/dist/assets/editor-presentation-activity-C7SNSmTd.js +0 -1
- package/dist/assets/entry-adjudication-Dc18TIqT.js +0 -1
- package/dist/assets/fork-menu-DpKqRhF5.js +0 -1
- package/dist/assets/game-audio-CaGKzia4.js +0 -1
- package/dist/assets/game-document.service-Chmt4065.js +0 -1
- package/dist/assets/game-eval.command-DRSvOJ_1.js +0 -2
- package/dist/assets/game-module-access-o3iXZpCA.js +0 -1
- package/dist/assets/game-network-Ct2FQYmu.js +0 -1
- package/dist/assets/gameplay-replay-BwdxV4oF.js +0 -1
- package/dist/assets/gameplay.command-Boqv1hnc.js +0 -1
- package/dist/assets/generation-DhwCUHPf.css +0 -1
- package/dist/assets/generation.service-o9aXlsx4.js +0 -1
- package/dist/assets/generations.status-BvzgHlyk.js +0 -1
- package/dist/assets/hierarchy-marks-BLPfSIym.js +0 -1
- package/dist/assets/hierarchy-marks-Cc_3lxw6.js +0 -1
- package/dist/assets/hosted-asset-materialization-BpbnhJac.js +0 -2
- package/dist/assets/index-0Lm0Nf1M.css +0 -1
- package/dist/assets/index-BHoAKyAC.js +0 -1
- package/dist/assets/index-BeK4RPgj.js +0 -1
- package/dist/assets/index-C1c3eOmm.js +0 -1
- package/dist/assets/index.module-Ycad3DJq.js +0 -1
- package/dist/assets/ingest-siblings-BtiEXLnh.js +0 -1
- package/dist/assets/ingest-source-persistence-Dmdo-UBp.js +0 -1
- package/dist/assets/ingest.service-vbCucMz7.js +0 -1
- package/dist/assets/inspection-CObLhnrs.js +0 -1
- package/dist/assets/instances.command-BwayrqNm.js +0 -1
- package/dist/assets/layered-pick-kiQf53t5.js +0 -1
- package/dist/assets/material-B_V78pTt.js +0 -1
- package/dist/assets/model-asset-sections-CFvvihfx.css +0 -1
- package/dist/assets/model-asset-sections.service-CqSclZGY.js +0 -1
- package/dist/assets/module-mode-BH2R93XP.js +0 -2
- package/dist/assets/mount-canvas-ingest-root-D1z9i5B3.js +0 -2
- package/dist/assets/mount-dom-ingest-root-BAmmNxlm.js +0 -2
- package/dist/assets/mount-ingest-root-DYR0TMIt.js +0 -2
- package/dist/assets/mount-manifest-DdkFYdVA.js +0 -1
- package/dist/assets/mount-readiness-Ds0HvvLH.js +0 -4
- package/dist/assets/mount-three-ingest-root-DVbACDUy.js +0 -1
- package/dist/assets/network-observer.service-Ce83TdsU.js +0 -1
- package/dist/assets/network.utility-DFDul2Xb.js +0 -1
- package/dist/assets/object-marks-DwvIEBOK.js +0 -1
- package/dist/assets/pixi-authoring-adapter-BChknIdC.js +0 -1
- package/dist/assets/pixi-live-write-target-BjDsBQbp.js +0 -1
- package/dist/assets/play-mode-DICV4cKP.js +0 -22
- package/dist/assets/play.command-NHyi5rzF.js +0 -2
- package/dist/assets/pose-guard-DILO6gGq.js +0 -1
- package/dist/assets/presentation-BeNFBfKg.js +0 -1
- package/dist/assets/profiler.utility-Do2Bw7MY.js +0 -1
- package/dist/assets/project-provenance-4ldz-EOG.js +0 -1
- package/dist/assets/r3f-design-session-B5GsZI5M.js +0 -2
- package/dist/assets/react-canvas-navigation-Cp3cOHJa.js +0 -1
- package/dist/assets/react-inspector.service-Bm0OnanU.js +0 -1
- package/dist/assets/react-story-board-GaXqr03H.js +0 -1
- package/dist/assets/react-world-authoring-adapter-DOjv2pYm.js +0 -1
- package/dist/assets/reflection-probe-capture.inspector-DqSW9p1v.js +0 -1
- package/dist/assets/registry-CaCdF63N.js +0 -1
- package/dist/assets/root-seam-contract-CxLZaRio.js +0 -1
- package/dist/assets/run-selection-DzEkGesJ.js +0 -2
- package/dist/assets/scene-capture-0a-bTjT8.js +0 -1
- package/dist/assets/scene-document.service-CeDwVA7t.js +0 -2
- package/dist/assets/seeded-random-BgCwIAAU.js +0 -1
- package/dist/assets/stage-overlay-set-BGE03mqb.js +0 -1
- package/dist/assets/stage-presence-markers-DIP7YMcO.js +0 -1
- package/dist/assets/stage-transform-tools-BQB7EY4l.js +0 -1
- package/dist/assets/standard-viewport-dressing-BCA51Tum.js +0 -24
- package/dist/assets/state-watch.utility-CFG1Tu1m.js +0 -1
- package/dist/assets/story-documents-BTo90DiA.js +0 -3
- package/dist/assets/story-three-preview-R1JvrggS.js +0 -2
- package/dist/assets/studio-environment-DRxxq_QX.js +0 -2
- package/dist/assets/team-playtest.service-hLfjgScx.js +0 -1
- package/dist/assets/three-authoring-adapter-htbnVej2.js +0 -1
- package/dist/assets/three-authoring.service-BIQAtVdX.js +0 -2
- package/dist/assets/three-integration.service-CS8Nvbd2.js +0 -1
- package/dist/assets/three-projection-core-CG01r5Ta.js +0 -1
- package/dist/assets/three-viewport-presentation-B0z_cECu.js +0 -141
- package/dist/assets/tools-B_NJsk05.js +0 -1
- package/dist/assets/transform-mode-request-DzD9aUNA.js +0 -1
- package/dist/assets/transport-strip-CUjNltnb.js +0 -1
- package/dist/assets/transport.header-Bb4FpQ8J.js +0 -1
- package/dist/assets/tuples-DfWSY2tr.js +0 -1
- package/dist/assets/ui-board-document-CCiiXjX9.js +0 -2
- package/dist/assets/user-data-dHvLdpwM.js +0 -1
- package/dist/assets/viewport-door-Bj_ZIP85.js +0 -1
- package/dist/assets/worker-CC9Ug5Ei.js +0 -2
- package/dist/assets/workspace-arrangement-BdAlBwvd.js +0 -1
- package/dist/assets/world-documents-DBybpBq8.js +0 -1
- package/dist/assets/world-root-stage-binding-ZVYIgr74.js +0 -1
- package/dist/vgai-shared-react.json +0 -10
- package/dist/vgai-shared-three.json +0 -3
- package/template/.agents/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
- package/template/.claude/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
- package/template/.github/skills/vgai-threejs-authoring/agents/openai.yaml +0 -4
- /package/dist/assets/{vgai-shared-fontawesome-CU65D4Ij.js → volter-shared-fontawesome-CU65D4Ij.js} +0 -0
- /package/dist/assets/{vgai-shared-jsx-dev-runtime-DFDKL7fx.js → volter-shared-jsx-dev-runtime-DFDKL7fx.js} +0 -0
- /package/dist/assets/{vgai-shared-jsx-runtime-DIqBpTut.js → volter-shared-jsx-runtime-DIqBpTut.js} +0 -0
- /package/dist/assets/{vgai-shared-react-BT7rMc2H.js → volter-shared-react-BT7rMc2H.js} +0 -0
- /package/dist/assets/{vgai-shared-react-dom-DFajMqMT.js → volter-shared-react-dom-DFajMqMT.js} +0 -0
- /package/dist/assets/{vgai-shared-react-dom-client-S0ozfl6_.js → volter-shared-react-dom-client-S0ozfl6_.js} +0 -0
- /package/dist/assets/{vgai-shared-three-DH4yxKwt.js → volter-shared-three-DH4yxKwt.js} +0 -0
- /package/template/{.vgai → .volter}/assets.json +0 -0
- /package/template/{.vgai → .volter}/provenance.json +0 -0
package/dist-node/create.js
CHANGED
|
@@ -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: {
|
|
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 \`
|
|
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:
|
|
200
|
-
import manifest from '../
|
|
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
|
|
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
|
|
256
|
+
var MODELS_AGENTS_CONTRACT = `# AGENTS.md \u2014 VOLTER Models Project
|
|
257
257
|
|
|
258
|
-
A standalone modeling project built with
|
|
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/
|
|
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
|
|
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
|
|
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
|
-
\`
|
|
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
|
|
306
|
-
document; \`npm run --silent
|
|
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
|
|
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
|
|
317
|
-
npm run --silent
|
|
318
|
-
npm run --silent
|
|
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
|
|
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 \`
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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
|
-
//
|
|
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 = "
|
|
1330
|
-
var REMOVED_MANIFEST_FILENAME = "
|
|
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 = ".
|
|
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, ".
|
|
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("
|
|
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("
|
|
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(".
|
|
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 .
|
|
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
|
|
1710
|
-
if (
|
|
1711
|
-
throw new Error(`${path}: packageJson.
|
|
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
|
-
...
|
|
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.
|
|
2033
|
-
const
|
|
2034
|
-
if (!isRecord(
|
|
2035
|
-
const currentTools =
|
|
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}:
|
|
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.
|
|
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
|
|
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
|
-
|
|
2054
|
-
parsed["
|
|
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 = "
|
|
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
|
|
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
|
|
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("
|
|
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
|
|
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
|
|
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", ".
|
|
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", ".
|
|
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 !== "
|
|
2809
|
-
pkg.scripts[name] = `npm run
|
|
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, "
|
|
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/
|
|
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["
|
|
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
|
|
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 =
|
|
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
|
-
|
|
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, "
|
|
3038
|
+
writeFileSync3(join4(targetDir, "volter.adapter.ts"), adapterSourceFor(additions), "utf-8");
|
|
3024
3039
|
} else {
|
|
3025
|
-
const adapterPath = join4(targetDir, "
|
|
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 `
|
|
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
|
-
|
|
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=
|
|
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
|
|
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") && !
|
|
3399
|
+
const design = additions.has("ui") && !world;
|
|
3379
3400
|
return {
|
|
3380
|
-
// THE PRODUCT THIS PROJECT OPENS IN, and the
|
|
3381
|
-
// `@volter/editor-game` is the
|
|
3382
|
-
//
|
|
3383
|
-
// a running game to run.
|
|
3384
|
-
editorPackages: [PRODUCT2, ...
|
|
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.
|
|
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
|
-
"
|
|
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-
|
|
47
|
-
"tarballSha256": "
|
|
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.
|
|
53
|
-
"@volter/editor-game": "0.5.
|
|
54
|
-
"@volter/editor-react": "0.5.
|
|
55
|
-
"@volter/editor-threejs": "0.5.
|
|
56
|
-
"@volter/editor-xstate": "0.5.
|
|
57
|
-
"@volter/editor-blender": "0.1.
|
|
58
|
-
"@volter/dawproject": "0.5.
|
|
59
|
-
"@volter/editor-dawproject": "0.5.
|
|
60
|
-
"@volter/blender-engine": "0.1.
|
|
61
|
-
"@volter/editor-project": "0.5.
|
|
62
|
-
"@volter/editor-sdk": "0.5.
|
|
63
|
-
"@volter/editor-live": "0.5.
|
|
64
|
-
"@volter/game-live": "0.5.
|
|
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
|
-
"@volter/threejs-runtime": "0.5.
|
|
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"
|
package/src/contributions.d.ts
CHANGED