@volter/game-editor 0.5.65 → 0.5.66
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 +1962 -363
- package/catalog/entries/bake.json +0 -1
- package/catalog/entries/blender.json +2 -2
- package/catalog/entries/reflections.json +2 -4
- package/catalog/project-source/src/lib/bake/asset-seed.ts +1 -2
- package/catalog/project-source/src/lib/bake/clip-layering.ts +3 -4
- package/catalog/project-source/src/lib/bake/gltf-bake.ts +1 -1
- package/catalog/project-source/src/lib/bake/params.ts +3 -5
- package/catalog/project-source/src/lib/bake/rest-relative-animation.ts +2 -3
- package/dist/.vite/manifest.json +2406 -2182
- package/dist/assets/{AssetBudgetPanel-J9--TZPU.js → AssetBudgetPanel-csYWK2H4.js} +8 -8
- package/dist/assets/{AudioViewer-CR7333fe.js → AudioViewer-BH_LUYs5.js} +1 -1
- package/dist/assets/{BVHLoader-6bQIXhMX.js → BVHLoader-Jkzh8hMf.js} +1 -1
- package/dist/assets/BufferGeometryUtils-CAbuTPOA.js +1 -0
- package/dist/assets/{CCDIKSolver-CD7vLpsK.js → CCDIKSolver-D4NvkJ8d.js} +1 -1
- package/dist/assets/{CSS3DRenderer-CL7ABLVK.js → CSS3DRenderer-CAS2WZZy.js} +1 -1
- package/dist/assets/CanvasSceneViewport-BlsRTk-X.js +1 -0
- package/dist/assets/ColladaLoader-DxYB89DA.js +3 -0
- package/dist/assets/{ColorInput-DQBNrW-K.js → ColorInput-CPQNsDf1.js} +1 -1
- package/dist/assets/{ConvexGeometry-CAzXlPVG.js → ConvexGeometry-Dinf-sev.js} +1 -1
- package/dist/assets/{ConvexHull-BINCESFp.js → ConvexHull-CrJ8FY-w.js} +1 -1
- package/dist/assets/{DecalGeometry-160KRdfg.js → DecalGeometry-owkbefLa.js} +1 -1
- package/dist/assets/EffectComposer-BHDH-NLz.js +1 -0
- package/dist/assets/EntityModelDocument-DuQivdvc.js +1 -0
- package/dist/assets/EnvironmentAssetDocument-CnTEMn3A.js +1 -0
- package/dist/assets/FBXLoader-BMUbIhtE.js +1 -0
- package/dist/assets/Fbo-DrK7CWlB.js +1 -0
- package/dist/assets/{FontLoader-CvGoVI5a.js → FontLoader-BR_K6Baw.js} +2 -2
- package/dist/assets/GLTFExporter-BZqAQJbw.js +1 -0
- package/dist/assets/{GameplaySessionTimeline-B52W3FVZ.js → GameplaySessionTimeline-Crqwv2fP.js} +1 -1
- package/dist/assets/Gltf-7cVbZUzT.js +2 -0
- package/dist/assets/ImageViewer-BkFie7Hm.js +1 -0
- package/dist/assets/InspectorObjectPreview-Dl3tyJBn.js +1 -0
- package/dist/assets/JsonAssetDocument-BUFzubHM.js +2 -0
- package/dist/assets/{LineSegments2-CsOpKSiM.js → LineSegments2-Cicm_Hu1.js} +2 -2
- package/dist/assets/LiveModuleDocument-C3OQxiba.js +1 -0
- package/dist/assets/LutAssetDocument-DVzd1RZ9.js +1 -0
- package/dist/assets/{MTLLoader-_Xzd4_0p.js → MTLLoader-Bg_grNiT.js} +2 -2
- package/dist/assets/{MarchingCubes-Bsp4wrzd.js → MarchingCubes-a78AL3HB.js} +1 -1
- package/dist/assets/MeshBVH-BCSLNEeP.js +1 -0
- package/dist/assets/ModelAssetDocument-pN84goRT.js +1 -0
- package/dist/assets/{NonThreeAuthoringBootstrap-C3woOMxX.js → NonThreeAuthoringBootstrap-BKNejRiW.js} +1 -1
- package/dist/assets/{OBJLoader-BhIC6Hwo.js → OBJLoader-BiwzVj5b.js} +2 -2
- package/dist/assets/Object3DDocumentToolbar-D5Bg5FEf.js +1 -0
- package/dist/assets/Object3DDocumentViewport-DFHqru3a.js +2 -0
- package/dist/assets/Object3DPreview-BTtZ-41z.js +2 -0
- package/dist/assets/OnlineAssetDetail-BAqozdAp.js +1 -0
- package/dist/assets/{OrbitControls-DLpayAaK.js → OrbitControls-CzKVCORl.js} +1 -1
- package/dist/assets/{OrbitControls-CM3bPray.js → OrbitControls-CzTRRI7x.js} +1 -1
- package/dist/assets/{OrthographicCamera-bQozawrh.js → OrthographicCamera-CSDDsvu7.js} +1 -1
- package/dist/assets/{PLYLoader-DYQqs5Ik.js → PLYLoader-QxrxxMpE.js} +2 -2
- package/dist/assets/{PerspectiveCamera-CQ2lh01o.js → PerspectiveCamera-DzD_NfVh.js} +1 -1
- package/dist/assets/PlayBar-qVJpgwJt.js +2 -0
- package/dist/assets/QuarksAssetDocument-B4vBlUsS.js +2 -0
- package/dist/assets/RGBELoader-WQ7xZofE.js +1 -0
- package/dist/assets/RectAreaLightUniformsLib-CwcuoVqt.js +1 -0
- package/dist/assets/{RenderPass-DPrn-Uky.js → RenderPass-C_CeQNdh.js} +1 -1
- package/dist/assets/{ResolutionPicker-C67vs1F3.js → ResolutionPicker-DpHVJxn5.js} +1 -1
- package/dist/assets/RootSelectionOverlay-BxvsunO4.js +1 -0
- package/dist/assets/{RoundedBox-BDGBg6QZ.js → RoundedBox-B_cZ0NFy.js} +1 -1
- package/dist/assets/{RoundedBoxGeometry-CyUuYPfW.js → RoundedBoxGeometry-Y4rcSIvX.js} +1 -1
- package/dist/assets/STLLoader-Bej_Nkpr.js +1 -0
- package/dist/assets/{SelectionBox-D_75KrNW.js → SelectionBox-Cn9vm7f9.js} +1 -1
- package/dist/assets/ShaderAssetDocument-Dx2x8CLr.js +12 -0
- package/dist/assets/{ShaderPass-QYRpPuFJ.js → ShaderPass-qtkA7CQ8.js} +1 -1
- package/dist/assets/{ShadowEditor-DkImwu1Y.js → ShadowEditor-BEIUkrHL.js} +1 -1
- package/dist/assets/SimplifyModifier-D2EesGr2.js +1 -0
- package/dist/assets/{SkeletonUtils-Cps8GOC6.js → SkeletonUtils-C8ayciDc.js} +1 -1
- package/dist/assets/{Sky-CQKCgYDs.js → Sky-BBpnAJZV.js} +1 -1
- package/dist/assets/SourceAssetViewer-BpMbbuy6.js +1 -0
- package/dist/assets/StageHost-lB8f---y.js +2 -0
- package/dist/assets/{StoryPreviewMount-DjyxRCXu.js → StoryPreviewMount-BIfxmkYh.js} +1 -1
- package/dist/assets/{TDSLoader-D_T8XJ81.js → TDSLoader-rHl5Uwc0.js} +1 -1
- package/dist/assets/{TextGeometry-DOWAEUV0.js → TextGeometry-BRHSufuM.js} +1 -1
- package/dist/assets/ThreeBoardDocument-BHV92Ia3.js +2 -0
- package/dist/assets/{ThreeIsolationSceneContent-C8C8whSF.js → ThreeIsolationSceneContent-BqtgDHBK.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-BRoDWe4Q.js → ToolObject3DPreview-CcaPJTyH.js} +1 -1
- package/dist/assets/Toolbar-keHcSvDD.js +1 -0
- package/dist/assets/{TrackballControls-DfznuQTh.js → TrackballControls-Cce-6Ff5.js} +1 -1
- package/dist/assets/{TransientHint-BB1fwrvK.js → TransientHint-Dlslh3oX.js} +1 -1
- package/dist/assets/{UnrealBloomPass-CR-cS_K5.js → UnrealBloomPass-DiseEiFK.js} +2 -2
- package/dist/assets/{VideoViewer-C6kocgIU.js → VideoViewer-naGSXHd6.js} +1 -1
- package/dist/assets/ViewportShadingMenu-C7Hdhtca.js +1 -0
- package/dist/assets/{active-ingest-CT6jSGhr.js → active-ingest-DEgq9JiA.js} +3 -3
- package/dist/assets/{animation-clock-CnjZqfJp.js → animation-clock-lTIb6nk3.js} +1 -1
- package/dist/assets/animation-mixers.service-2O2rVwQf.js +1 -0
- package/dist/assets/asset-budget-asset.menu-9NhdHAC9.js +1 -0
- package/dist/assets/asset-budget.action-yg6-luUJ.js +1 -0
- package/dist/assets/asset-budget.document-B46_VFqa.js +1 -0
- package/dist/assets/asset-budget.menu-DuH07N-e.js +1 -0
- package/dist/assets/{asset-editor-persistence-BBaONOJt.js → asset-editor-persistence-BVtzjadu.js} +1 -1
- package/dist/assets/{asset-loaders-BOy5Ss8k.js → asset-loaders-BxG1LykH.js} +2 -2
- package/dist/assets/{assets-BuSoGjBX.js → assets-Do88ZdV_.js} +1 -1
- package/dist/assets/{audio-unlock.service-CfUgUQVy.js → audio-unlock.service-BJH0mWvX.js} +1 -1
- package/dist/assets/{audio.utility-C6K6jem8.js → audio.utility-Cp4aVYFU.js} +1 -1
- package/dist/assets/autoplay.service-FxpRy7Ev.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-CL02gWDn.js → babylon-authoring-adapter-B_8iE8fK.js} +1 -1
- package/dist/assets/{binding-resolver-Dsh-6Vor.js → binding-resolver-BWwG10zJ.js} +2 -2
- package/dist/assets/blender-emscripten-engine-CEsWgnR7.js +2 -0
- package/dist/assets/{blender-node-editor.document-iIDkB9sI.js → blender-node-editor.document-DTgwy8KC.js} +1 -1
- package/dist/assets/blender-properties-tab-DWSJpkxq.js +3 -0
- package/dist/assets/blender-runtime-host-OGjPjTrG.js +4 -0
- package/dist/assets/{blender-runtime-skin-DyQ9B6CR.js → blender-runtime-skin-DymtXlpt.js} +37 -39
- package/dist/assets/blender-runtime.document-CzH2ohHR.js +8 -0
- package/dist/assets/{blender-timeline.document-77fx96N7.js → blender-timeline.document-BRy_QPHt.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-fsT7B4gV.js → blender-uv-editor.document-D-AbUCqz.js} +1 -1
- package/dist/assets/{blender-version.status-o6dBm3n6.js → blender-version.status-B7flzX_7.js} +1 -1
- package/dist/assets/{blender-wali-engine-wTOcrOMC.js → blender-wali-engine-D3iKpzn9.js} +1 -1
- package/dist/assets/blender.command-BVHtgTQy.js +1 -0
- package/dist/assets/blender.environment-CG-pC7sk.js +1 -0
- package/dist/assets/{blender.style-Dcem5f_T.js → blender.style-CxfbTFcE.js} +1 -1
- package/dist/assets/{board-guides-DziKSTss.js → board-guides-C3usUZZk.js} +1 -1
- package/dist/assets/body-marks-D8iaje6y.js +1 -0
- package/dist/assets/bridge.command-BF9u6r0A.js +3 -0
- package/dist/assets/browserAll-38aBu-cf.js +1 -0
- package/dist/assets/{build-profiles.document-kW8iw8Xj.js → build-profiles.document-DO7oNRuo.js} +2 -2
- package/dist/assets/{build-progress.status-BNRLytg2.js → build-progress.status-COeNVhYd.js} +1 -1
- package/dist/assets/{build-session-C_sg3CEn.js → build-session-IWIriS5P.js} +1 -1
- package/dist/assets/{build.action-lYjTLb7K.js → build.action-DlkFvZf6.js} +1 -1
- package/dist/assets/{build.command-DIGgUPU_.js → build.command-DPqQIYj_.js} +1 -1
- package/dist/assets/{build.header-CKajx5U3.js → build.header-CNLG-pV8.js} +1 -1
- package/dist/assets/{build.menu-BdU0QXny.js → build.menu-hUlH6loi.js} +1 -1
- package/dist/assets/{build.service-CbBAyeu3.js → build.service-C86Td3_9.js} +1 -1
- package/dist/assets/{camera-KEsKvOL7.js → camera-CKbyBXMe.js} +1 -1
- package/dist/assets/camera-authoring-Ci3KnE-W.js +1 -0
- package/dist/assets/{camera-runtime.inspector-B7unX4g1.js → camera-runtime.inspector-DdR3P2BF.js} +1 -1
- package/dist/assets/canvas-entry-runtime-E5YjSgre.js +2 -0
- package/dist/assets/canvas-preview-frames-CiAx7dpV.js +1 -0
- package/dist/assets/{capability-coverage-Czas4C18.js → capability-coverage-CfUeULDN.js} +5 -5
- package/dist/assets/city-EkhAOo5s.exr +0 -0
- package/dist/assets/{collaboration-presence-DLoZ7EA3.js → collaboration-presence-CSLFNT7m.js} +1 -1
- package/dist/assets/{collider-Bw0mXlsW.js → collider-DRSaLRM9.js} +1 -1
- package/dist/assets/{component-board.service-DCwcUssB.js → component-board.service-B7Sv8b7m.js} +2 -2
- package/dist/assets/component-board.service-B8UHw8dn.js +2 -0
- package/dist/assets/component-contracts.service-LFGekycZ.js +1 -0
- package/dist/assets/{component-verbs.command-7xzfjGMZ.js → component-verbs.command-D4SvFjfG.js} +1 -1
- package/dist/assets/component-verbs.service-TGvWxf2b.js +1 -0
- package/dist/assets/{config-CEZk921y.js → config-DB_RH-hO.js} +3 -3
- package/dist/assets/{configurations-DTBMdaTL.js → configurations-C2qgJNnW.js} +1 -1
- package/dist/assets/{connection.status-BifnQdOs.js → connection.status-CG7X2brL.js} +1 -1
- package/dist/assets/{console-bridge-CHcb-xk5.js → console-bridge-B5Ltae37.js} +1 -1
- package/dist/assets/{constraint-De8f1Uiq.js → constraint-C_Jj7dXy.js} +1 -1
- package/dist/assets/constraints.inspector-D6QZJS4b.js +1 -0
- package/dist/assets/courtyard-DqlebbpC.exr +0 -0
- package/dist/assets/coverage.service-Clo86874.js +3 -0
- package/dist/assets/{create-runtime-CVCc1BDx.js → create-runtime-lmA910XT.js} +1 -1
- package/dist/assets/{curve-7Q79VgU4.js → curve-6-TR6dNb.js} +1 -1
- package/dist/assets/{data-asset-4hjS642k.js → data-asset-BNbd309U.js} +1 -1
- package/dist/assets/{data-ref-CQI28C0D.js → data-ref-Dvmd7eb1.js} +1 -1
- package/dist/assets/{debug-bridge-CCohG-d-.js → debug-bridge-BUNhgyY6.js} +1 -1
- package/dist/assets/{debug-registry-Dgvitx8M.js → debug-registry-B3Cnne3x.js} +1 -1
- package/dist/assets/deferred-ingest-play-7V8OrW3e.js +2 -0
- package/dist/assets/design-time-layers-g9VS6amb.js +1 -0
- package/dist/assets/design-time-mount.service-HtMr_vBd.js +2 -0
- package/dist/assets/design-time-react-mount-Dx6fJ-Hg.js +1 -0
- package/dist/assets/{directional-shadow-fit-BVkOKAv2.js → directional-shadow-fit-Cjz_Eg2b.js} +1 -1
- package/dist/assets/{document-preview-three-Kbg2GCLm.js → document-preview-three-C3y0syYQ.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-CY8C7f4T.js → dom-authoring-adapter-CEeFyatF.js} +1 -1
- package/dist/assets/{draco3d-BBUTcNkz.js → draco3d-FKy0apkb.js} +1 -1
- package/dist/assets/drei-asset-caches-jJoHXbTj.js +2 -0
- package/dist/assets/{edit-mode-audio.service-Bzetwd5B.js → edit-mode-audio.service-DZTnrW6t.js} +1 -1
- package/dist/assets/edit-mode-authoring-D_BiHCQj.js +1 -0
- package/dist/assets/{edit-mode-networking.service-YCX6RRb_.js → edit-mode-networking.service-BzMI2VxO.js} +1 -1
- package/dist/assets/editor-api-Bzmo0o8_.js +1 -0
- package/dist/assets/{entry-adjudication-Cq8Yeb74.js → entry-adjudication-BYy7TXOB.js} +1 -1
- package/dist/assets/{events-156d8d12.esm-ErOhDXXB.js → events-156d8d12.esm-C734MYnx.js} +7 -7
- package/dist/assets/{extend-B-eOccUm.js → extend-CLG0ymiX.js} +1 -1
- package/dist/assets/forest-P_CQY3b_.exr +0 -0
- package/dist/assets/fork-menu-De7HU6_H.js +1 -0
- package/dist/assets/{frame-debugger-store-D1Mf_5up.js → frame-debugger-store-BZgIOlU6.js} +1 -1
- package/dist/assets/{game-DHOZVb-7.js → game-D5EJoILQ.js} +1 -1
- package/dist/assets/{game-contract-seams-a5YXejOu.js → game-contract-seams-TCpIMmHP.js} +1 -1
- package/dist/assets/{game-css-scope-transform-Eng4wS8E.js → game-css-scope-transform-NbpajQr-.js} +1 -1
- package/dist/assets/game-document.service-6eRlrI-d.js +1 -0
- package/dist/assets/game-eval.command-hKnSMlX0.js +2 -0
- package/dist/assets/{game-input-seams-CIQdetRw.js → game-input-seams-BC6xhZy3.js} +1 -1
- package/dist/assets/{game-module-access-B2mFxv-i.js → game-module-access-ry3xb1Ix.js} +1 -1
- package/dist/assets/{gameplay-export-BoKXm51x.js → gameplay-export-DiLQuPpn.js} +1 -1
- package/dist/assets/gameplay-replay-Bsre-1K8.js +1 -0
- package/dist/assets/{gameplay-rng-trap-CTNhm-UW.js → gameplay-rng-trap-BhRx_CtU.js} +1 -1
- package/dist/assets/gameplay.command-BqiyGn-I.js +1 -0
- package/dist/assets/{generation-jobs-BQrXbGp_.js → generation-jobs-BYcpgeGk.js} +1 -1
- package/dist/assets/generation.service-O81IqA-6.js +1 -0
- package/dist/assets/{generations-DzUogZsM.js → generations-CsGQ3twi.js} +1 -1
- package/dist/assets/{generations.status-CgOUBCum.js → generations.status-C3YU0_ml.js} +1 -1
- package/dist/assets/godot.style-DxJaFWOP.js +1 -0
- package/dist/assets/godot.view-BFsHk8b2.js +1 -0
- package/dist/assets/{hosted-asset-materialization-CiIvWkGU.js → hosted-asset-materialization-Bk-plQF6.js} +2 -2
- package/dist/assets/{ibl-override-material-BlmCxFKq.js → ibl-override-material-BhbGwgS1.js} +1 -1
- package/dist/assets/{index-mjWQmGhM.js → index-0n9eSzwT.js} +1 -1
- package/dist/assets/index-B4bmKkgY.css +1 -0
- package/dist/assets/index-BLo2LE8C.js +3404 -0
- package/dist/assets/index-BWW4-DBH.js +1 -0
- package/dist/assets/index-CLcsjKUs.js +1 -0
- package/dist/assets/index-CU5YUq-x.js +134 -0
- package/dist/assets/{index-DUpHH6JR.js → index-Cb6o_Td_.js} +1 -1
- package/dist/assets/index-Ckxb31Yz.js +1500 -0
- package/dist/assets/index-CnpsJMao.js +1 -0
- package/dist/assets/index-Cr23XhNm.js +1 -0
- package/dist/assets/index-DO1rWQ_r.js +487 -0
- package/dist/assets/{index-BcCBqgM_.js → index-DUh02lTr.js} +1 -1
- package/dist/assets/index-DXEHfb0b.js +1 -0
- package/dist/assets/{index-V1R-e5Bd.js → index-wRCvCebM.js} +1 -1
- package/dist/assets/{inference-diagnostics-Dhmtfbq_.js → inference-diagnostics-YW0yJkKx.js} +1 -1
- package/dist/assets/{ingest-BbYMC2vQ.js → ingest-BlQnR7s3.js} +1 -1
- package/dist/assets/ingest-boot-viewport-uG9jQ1zm.js +1 -0
- package/dist/assets/ingest-siblings-DRQXSWax.js +1 -0
- package/dist/assets/{ingest-source-persistence-C_6Hiyra.js → ingest-source-persistence-DH6ioCOu.js} +1 -1
- package/dist/assets/{ingest.service-BTDnQfM1.js → ingest.service-GeaWMaZX.js} +1 -1
- package/dist/assets/{input-manager-DH_hGW6d.js → input-manager-Cxx3RJgG.js} +1 -1
- package/dist/assets/{input-router-BNQvtIqw.js → input-router-FzxO5ld6.js} +1 -1
- package/dist/assets/{inspect-BZfi3mmo.js → inspect-BRgDdtVk.js} +1 -1
- package/dist/assets/instances.command-CFOMPSj3.js +1 -0
- package/dist/assets/{instruments-CKR02Y8I.js → instruments-IKn-vvNb.js} +1 -1
- package/dist/assets/interior-Bo_lba15.exr +0 -0
- package/dist/assets/{json-history-resource-BbxllWfV.js → json-history-resource-r-9q_hxP.js} +1 -1
- package/dist/assets/{light-D-_wsKTq.js → light-CFAor97k.js} +1 -1
- package/dist/assets/light-camera-factory-D1sgz3YB.js +1 -0
- package/dist/assets/live-mixers-BRkRHd6g.js +1 -0
- package/dist/assets/{loader-CaF_I7Yt.js → loader-BbMsvIxP.js} +1 -1
- package/dist/assets/machine.document-CgmsOh-s.js +24 -0
- package/dist/assets/machines.finder-nxiCgQc2.js +1 -0
- package/dist/assets/matcap-texture-Dh65bX5V.js +1 -0
- package/dist/assets/{material-CpAdjDxn.js → material-D5kXEZWQ.js} +1 -1
- package/dist/assets/{material-factory-Bz6h__6g.js → material-factory-0Qb0VuZ5.js} +1 -1
- package/dist/assets/material-preview.view-DqNcpd_b.js +1 -0
- package/dist/assets/{mesh-B3WPtNKO.js → mesh-BKPgNTwh.js} +1 -1
- package/dist/assets/{mesh-shadow-CZnXrw_l.js → mesh-shadow-BDQP4mHs.js} +1 -1
- package/dist/assets/model-asset-sections.service-DWPLmkqa.js +1 -0
- package/dist/assets/model-inspection-Cxfg_Fei.js +1 -0
- package/dist/assets/model.layout-BpZE1W9V.js +1 -0
- package/dist/assets/{models.finder-G2jQgIRu.js → models.finder-DHW17ZEa.js} +1 -1
- package/dist/assets/module-mode-CRfHyIMS.js +2 -0
- package/dist/assets/mount-canvas-ingest-root-BZZ8M3Lu.js +2 -0
- package/dist/assets/mount-dom-ingest-root-D1GV6Jjt.js +2 -0
- package/dist/assets/{mount-game-6t9cKNo4.js → mount-game-F9e76auh.js} +1 -1
- package/dist/assets/mount-ingest-root-B5D-Lmmk.js +2 -0
- package/dist/assets/{mount-manifest-CGVxhmAw.js → mount-manifest-cYRhgHfo.js} +1 -1
- package/dist/assets/mount-three-ingest-root-BNnouaBn.js +1 -0
- package/dist/assets/{mounted-authoring-Dmg5xmhP.js → mounted-authoring-TIN5EnCb.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-DjP6RA9U.js → mounted-story-viewport-source-CAlEmE0_.js} +1 -1
- package/dist/assets/{native-debug-module-CWicoSGD.js → native-debug-module-j-MekcLS.js} +1 -1
- package/dist/assets/{navigation-CIiCx-SM.js → navigation-DmR1BDVo.js} +1 -1
- package/dist/assets/{navmesh.menu-CAKiH8PW.js → navmesh.menu-FhL1pGx1.js} +1 -1
- package/dist/assets/{navmesh.service-jgDWlgj1.js → navmesh.service-usyDeJlm.js} +1 -1
- package/dist/assets/{network.utility-CEu5nHf7.js → network.utility-BPh4hTmh.js} +1 -1
- package/dist/assets/night-CvV4Gybt.exr +0 -0
- package/dist/assets/{object3d-authoring-subject-CH5sI2oP.js → object3d-authoring-subject-CyE4rQ2A.js} +1 -1
- package/dist/assets/oid-transform-BOqL6YH6.js +2 -0
- package/dist/assets/{particles-Y626p22p.js → particles-C47L-dda.js} +1 -1
- package/dist/assets/particles-factory-CRqPLdS7.js +1 -0
- package/dist/assets/pixi-authoring-adapter-C5Ikqj5-.js +1 -0
- package/dist/assets/{pixi-live-write-target-DuWydlWb.js → pixi-live-write-target-OWBk79dp.js} +1 -1
- package/dist/assets/pixi-primitive-D5igywJ_.js +1 -0
- package/dist/assets/pixi-react-root-factory-9lZ0Yz-n.js +1 -0
- package/dist/assets/play-mode-DomOvQie.js +22 -0
- package/dist/assets/play.command-DoqjH-Pp.js +2 -0
- package/dist/assets/{playtest-BXIL1JEF.js → playtest-BnFenMBW.js} +1 -1
- package/dist/assets/{pose-guard-6Osb2cFu.js → pose-guard-Bb3gZOzk.js} +1 -1
- package/dist/assets/{product-DFhyARJj.js → product-CTDJoVo5.js} +1 -1
- package/dist/assets/{profiler.action-CaXJDp3t.js → profiler.action-C_OFGkDw.js} +1 -1
- package/dist/assets/{profiler.menu-BIMF6Bi4.js → profiler.menu-BJbnVoo4.js} +1 -1
- package/dist/assets/{profiler.utility-BExw9wBO.js → profiler.utility-qpfhuwRw.js} +1 -1
- package/dist/assets/project-authoring-session-BV-MM8Fl.js +2 -0
- package/dist/assets/{project-provenance-BoP3nrle.js → project-provenance-4ldz-EOG.js} +1 -1
- package/dist/assets/{properties-bone-constraints.inspector-ByT6p7S-.js → properties-bone-constraints.inspector-C-ByIdg1.js} +1 -1
- package/dist/assets/{properties-bone.inspector-z4qJwKO5.js → properties-bone.inspector-CXY0xCQB.js} +1 -1
- package/dist/assets/{properties-collection.inspector-D0_3ijWU.js → properties-collection.inspector-DIfkZAel.js} +1 -1
- package/dist/assets/{properties-constraints.inspector-CESzjuls.js → properties-constraints.inspector-BaunL5nT.js} +1 -1
- package/dist/assets/{properties-data.inspector-hG8Wgyzb.js → properties-data.inspector-DQD-jfO2.js} +1 -1
- package/dist/assets/{properties-material.inspector-CzY0JCQ6.js → properties-material.inspector-A0HZ4SX6.js} +1 -1
- package/dist/assets/{properties-modifiers.inspector-3dDhwf7g.js → properties-modifiers.inspector-GUnVhVwZ.js} +1 -1
- package/dist/assets/{properties-object.inspector-CiarfxkT.js → properties-object.inspector-Chsfa4Xa.js} +1 -1
- package/dist/assets/{properties-output.inspector-DKJxmKSD.js → properties-output.inspector-U7ZmD0Me.js} +1 -1
- package/dist/assets/{properties-particles.inspector-CCEdYWGm.js → properties-particles.inspector-umkW-OlI.js} +1 -1
- package/dist/assets/{properties-physics.inspector-B2c0KUyA.js → properties-physics.inspector-CLVBlWwL.js} +1 -1
- package/dist/assets/{properties-render.inspector-Bcm0HLRW.js → properties-render.inspector-D0u9taKy.js} +1 -1
- package/dist/assets/{properties-scene.inspector-PIM_eTb_.js → properties-scene.inspector-JwGCZQAx.js} +1 -1
- package/dist/assets/{properties-texture.inspector-CgFlnyr8.js → properties-texture.inspector-B1vC28pw.js} +1 -1
- package/dist/assets/{properties-view-layer.inspector-DGjF_Aqo.js → properties-view-layer.inspector-BuUKyBFp.js} +1 -1
- package/dist/assets/{properties-world.inspector-CrMvaRvB.js → properties-world.inspector-VXUj4dT4.js} +1 -1
- package/dist/assets/r3f-design-session-qJ2v5SrB.js +2 -0
- package/dist/assets/r3f-physics-binding-C8OqNRG2.js +1 -0
- package/dist/assets/{r3f-root-factory-z9llD1OU.js → r3f-root-factory-DjGnbU4n.js} +1 -1
- package/dist/assets/r3f-source-authoring-adapter-CG9heazM.js +12 -0
- package/dist/assets/{rapier-physics-bridge-CMoeVo3Y.js → rapier-physics-bridge-B-EK7KYV.js} +1 -1
- package/dist/assets/react-inspector.service-DWeXDHJq.js +1 -0
- package/dist/assets/{react-root-CEz5NTck.js → react-root-DGLRLr-F.js} +1 -1
- package/dist/assets/react-story-board-CSqHY0Cg.js +1 -0
- package/dist/assets/{react-three-fiber.esm-CycrbDlA.js → react-three-fiber.esm-BxIoqVh1.js} +1 -1
- package/dist/assets/{react-three-rapier.esm-CEfKpvxT.js → react-three-rapier.esm-BYzLhdSV.js} +1 -1
- package/dist/assets/react-world-authoring-adapter-BMT9kLWU.js +1 -0
- package/dist/assets/{realm-services-CobQsq_X.js → realm-services-D25JHoqD.js} +1 -1
- package/dist/assets/{reflection-probe-Don-M3Fj.js → reflection-probe-CqXWlicu.js} +1 -1
- package/dist/assets/{reflection-probe-capture.inspector-CmFUoJCx.js → reflection-probe-capture.inspector-B7Qa30vB.js} +1 -1
- package/dist/assets/regions-DWeEBnE2.js +1 -0
- package/dist/assets/{register-render-vitals-BiZk29b2.js → register-render-vitals-BO7x64kR.js} +1 -1
- package/dist/assets/{registry-02YZjMNp.js → registry-DlTluc4x.js} +1 -1
- package/dist/assets/{render-audio-control-vMRlePWb.js → render-audio-control-DCa_bOBI.js} +1 -1
- package/dist/assets/{render-batch-system-0vq7p0VC.js → render-batch-system-CzCp9YKM.js} +1 -1
- package/dist/assets/{render-control-Df3yTiyr.js → render-control-BNQr1eNO.js} +1 -1
- package/dist/assets/{render-env-D2IV2x5k.js → render-env-emvlfeTG.js} +1 -1
- package/dist/assets/{render-features-CPQ_e568.js → render-features-COF7MSQ9.js} +1 -1
- package/dist/assets/{render-settings-Bw4W9SYF.js → render-settings-C_kIMq8Y.js} +1 -1
- package/dist/assets/{resolve-three-SZE_WWUM.js → resolve-three-C-nx-QdA.js} +13 -13
- package/dist/assets/{root-seam-contract-Z0VWX3Bk.js → root-seam-contract-C7GOxf5x.js} +1 -1
- package/dist/assets/{run-ticks-settled-C4ksViyA.js → run-ticks-settled-B0cTtmhQ.js} +1 -1
- package/dist/assets/{scene-capture-CGYF-Viw.js → scene-capture-CLOc7GXc.js} +1 -1
- package/dist/assets/{scene-capture-BQKzU0NT.js → scene-capture-D10Nxkvp.js} +1 -1
- package/dist/assets/scene-document.service-B7kAVTko.js +2 -0
- package/dist/assets/{scene-framing-Cat0GtyJ.js → scene-framing-50N7SKuX.js} +1 -1
- package/dist/assets/{scene-index-B6BZOHMk.js → scene-index-Bce459yu.js} +1 -1
- package/dist/assets/{scene-query-C7_N-TpI.js → scene-query-IUZhw6pA.js} +1 -1
- package/dist/assets/{schema-kl9-2B_J.js → schema-Iy-mbzll.js} +1 -1
- package/dist/assets/sculpt.layout-D-K5cLw6.js +1 -0
- package/dist/assets/{seeded-random-i3mtgBKZ.js → seeded-random-CN0scLZj.js} +1 -1
- package/dist/assets/{session-CZ5JPg-z.js → session-CsR0lApe.js} +24 -15
- package/dist/assets/{setup-audio-S8GQF91f.js → setup-audio-BJ18gvXZ.js} +1 -1
- package/dist/assets/setup-particles-B6H-GbAA.js +1 -0
- package/dist/assets/{setup-physics-BeZ7-LKD.js → setup-physics-GugbTT0J.js} +1 -1
- package/dist/assets/{setup-renderer-DVXaSGin.js → setup-renderer-wt_a-p8r.js} +20 -20
- package/dist/assets/shading.layout-CZZHKBer.js +1 -0
- package/dist/assets/{sim-clock-CLflx7kg.js → sim-clock-DEfbb_-P.js} +1 -1
- package/dist/assets/{soft-particle-depth-DGvfQDi1.js → soft-particle-depth-CKUS1j0Y.js} +1 -1
- package/dist/assets/source-object3d-authoring-adapter-CfHQLFAL.js +1 -0
- package/dist/assets/{source-persistence-backend-C-aR-B_Y.js → source-persistence-backend-_-JMEXxE.js} +1 -1
- package/dist/assets/{spark-renderer-lifecycle-ynWESJcv.js → spark-renderer-lifecycle-9mnMW3Z4.js} +1 -1
- package/dist/assets/{spark.module-4pXQoz5d.js → spark.module-CXth-y_a.js} +1 -1
- package/dist/assets/stage-keyboard-C0FdDLOQ.js +1 -0
- package/dist/assets/stage-overlay-set-CwhCzbOy.js +1 -0
- package/dist/assets/stage-presence-markers-DVMDKiB-.js +1 -0
- package/dist/assets/stage-transform-tools-B09Z7v0o.js +1 -0
- package/dist/assets/standard-viewport-dressing-GUUr6GuK.js +20 -0
- package/dist/assets/{state-watch.action-BOvQR2qt.js → state-watch.action-CgF8qoFC.js} +1 -1
- package/dist/assets/{state-watch.menu-CNLvDeeY.js → state-watch.menu-CIMncESW.js} +1 -1
- package/dist/assets/{state-watch.utility-Bg1tTTQU.js → state-watch.utility-zTHkUALC.js} +1 -1
- package/dist/assets/static-batch-advisor-DqfXWRUq.js +1 -0
- package/dist/assets/story-capture-COQgezzl.js +1 -0
- package/dist/assets/story-documents-DQ0KORmd.js +3 -0
- package/dist/assets/story-documents.service-DOSaqPqv.js +1 -0
- package/dist/assets/story-documents.service-Gb7oUkbg.js +1 -0
- package/dist/assets/{story-media-presence-BHzk2IV5.js → story-media-presence-nW3zJqKv.js} +1 -1
- package/dist/assets/story-pixi-preview-COPTEsHo.js +1 -0
- package/dist/assets/story-presentation-CxADj5oz.js +1 -0
- package/dist/assets/{story-three-preview-BHEDZzcl.js → story-three-preview-C9W__8Or.js} +2 -2
- package/dist/assets/{structural-ids-Dc-7rEwi.js → structural-ids-CblajJQK.js} +1 -1
- package/dist/assets/studio-CysTBGIb.exr +0 -0
- package/dist/assets/sunrise-Dj0psFrf.exr +0 -0
- package/dist/assets/sunset-Bw3x2Bot.exr +0 -0
- package/dist/assets/{surface-state-DaxyruCj.js → surface-state-BAUJu6GY.js} +1 -1
- package/dist/assets/{system-runner-DkOjxEBt.js → system-runner-D_DtVrer.js} +1 -1
- package/dist/assets/team-playtest.service--79O6xkx.js +1 -0
- package/dist/assets/{three-CDSueJyJ.js → three-DSsr_Lvp.js} +1 -1
- package/dist/assets/{three-authoring-adapter-CmSQ3Vui.js → three-authoring-adapter-Yqsank46.js} +1 -1
- package/dist/assets/three-authoring.service-BDos-bRt.js +2 -0
- package/dist/assets/{three-ingest-runtime-QzDYk6tU.js → three-ingest-runtime-DWijtqQ8.js} +1 -1
- package/dist/assets/{three-projection-core-BmKMZ-nf.js → three-projection-core-kubBTx0s.js} +1 -1
- package/dist/assets/three-story-model-BraQFA9h.js +1 -0
- package/dist/assets/three-viewport-presentation-BL7Uc2i6.js +1 -0
- package/dist/assets/{three.module-D396a9Mn.js → three.module-IFn-4i31.js} +1 -1
- package/dist/assets/three.quarks.esm-CRKGjKAH.js +1039 -0
- package/dist/assets/transform-mode-request-Cu7ewbtr.js +1 -0
- package/dist/assets/{transform-writer-BhBBTx33.js → transform-writer-DXxrI4t7.js} +1 -1
- package/dist/assets/transport.header-CeND8Vzh.js +1 -0
- package/dist/assets/{trigger-volume-BNK2XzPL.js → trigger-volume-BCVRS3NM.js} +1 -1
- package/dist/assets/{tuples-CIQ4Bn1U.js → tuples-DKDGrN1t.js} +1 -1
- package/dist/assets/ui-board-document-DD2CAEAo.js +2 -0
- package/dist/assets/unity.style-vCmLw4gI.js +1 -0
- package/dist/assets/unity.view-DIn2S6Do.js +1 -0
- package/dist/assets/unreal.style-BQn-HhOX.js +1 -0
- package/dist/assets/unreal.view-adNBETZK.js +1 -0
- package/dist/assets/user-data-CZqsJDk-.js +1 -0
- package/dist/assets/{utility-view-state-BHypxA33.js → utility-view-state-DYJY8V8O.js} +1 -1
- package/dist/assets/uv-editing.layout-A8RA-cbM.js +1 -0
- package/dist/assets/{vgai-shared-three-Bc5PvpLM.js → vgai-shared-three-D_RAEumG.js} +1 -1
- package/dist/assets/{viewport-root-presentation-CWsE56K6.js → viewport-root-presentation-C9M98VNM.js} +1 -1
- package/dist/assets/{viewport-shading-BuA88e_A.js → viewport-shading-BzcvgJhK.js} +1 -1
- package/dist/assets/viewport-shading-boundary-CBvvzS-p.js +84 -0
- package/dist/assets/{viewport-surface-status-B3om4Kcf.js → viewport-surface-status-BFmnWp7z.js} +1 -1
- package/dist/assets/voxel-surface-ROWYug7H.js +1 -0
- package/dist/assets/webgl-frame-capture-CRKX73E9.js +1 -0
- package/dist/assets/webworkerAll-CehoCtFb.js +1 -0
- package/dist/assets/{worker-UrMcrc5_.js → worker-B7zhIsFh.js} +2 -2
- package/dist/assets/world-documents-DErHq15h.js +1 -0
- package/dist/assets/world-root-stage-binding-BIymcQ4K.js +1 -0
- package/dist/assets/{world-state-BWG-IcOd.js → world-state-ZGDGY_Xl.js} +1 -1
- package/dist/assets/{writer-B-KovzkA.js → writer-BPbm4_my.js} +5 -5
- package/dist/assets/xstate-animation-binding-Cvd4JbEY.js +1 -0
- package/dist/assets/{xstate-animation-meta-Q3u9zh_m.js → xstate-animation-meta-B3OZR8Q2.js} +1 -1
- package/dist/vgai-shared-three.json +1 -1
- package/dist-node/cli.js +317 -73
- package/dist-node/create.js +59 -19
- package/package.json +16 -13
- package/src/index.ts +6 -0
- package/template/.agents/skills/vgai-3d-models/SKILL.md +3 -3
- package/template/.agents/skills/vgai-threejs-authoring/SKILL.md +4 -9
- package/template/.claude/skills/vgai-3d-models/SKILL.md +3 -3
- package/template/.claude/skills/vgai-threejs-authoring/SKILL.md +4 -9
- package/template/.github/skills/vgai-3d-models/SKILL.md +3 -3
- package/template/.github/skills/vgai-threejs-authoring/SKILL.md +4 -9
- package/template/AGENTS.md +1 -1
- package/template/check-idioms.ts +4 -5
- package/template/package.json +9 -9
- package/template/tsconfig.json +1 -0
- package/template/vgai.adapter.ts +1 -0
- package/template-dotfiles/gitignore +2 -0
- package/workbench/src/media/game-cover.css +1 -1
- package/catalog/project-source/src/lib/bake/mesh-slice.ts +0 -157
- package/dist/assets/BufferGeometryUtils-Nz37EVXf.js +0 -1
- package/dist/assets/CanvasSceneViewport-Bpi6gVTC.js +0 -1
- package/dist/assets/ColladaLoader-aVOPIsCh.js +0 -3
- package/dist/assets/EXRLoader-Cdans_oJ.js +0 -1
- package/dist/assets/EffectComposer-DQxfsXBZ.js +0 -1
- package/dist/assets/EntityModelDocument-Ccvw66N9.js +0 -1
- package/dist/assets/EnvironmentAssetDocument-Dg-Qq6O6.js +0 -1
- package/dist/assets/FBXLoader-B4MoUtAn.js +0 -1
- package/dist/assets/Fbo-Dz-Soul3.js +0 -1
- package/dist/assets/GLTFExporter-HgrCle4L.js +0 -1
- package/dist/assets/Gltf-UHVWKz65.js +0 -2
- package/dist/assets/HDRLoader-THU88oVD.js +0 -5
- package/dist/assets/ImageViewer-Tn7s_MnW.js +0 -1
- package/dist/assets/InspectorObjectPreview-CVejvLRg.js +0 -1
- package/dist/assets/JsonAssetDocument-C7VGcLhu.js +0 -3
- package/dist/assets/MeshBVH-BiDHDcu-.js +0 -1
- package/dist/assets/ModelAssetDocument-F5GACirk.js +0 -1
- package/dist/assets/Object3DDocumentViewport-DB7T0NTl.js +0 -2
- package/dist/assets/Object3DPreview-DL8oi7Xs.js +0 -2
- package/dist/assets/OnlineAssetDetail-C6z9RvYK.js +0 -2
- package/dist/assets/PlayBar-BR-Vg3Jb.js +0 -2
- package/dist/assets/RGBELoader-BgBcQv8j.js +0 -1
- package/dist/assets/RectAreaLightUniformsLib-CMMoWfll.js +0 -1
- package/dist/assets/RootSelectionOverlay-BZPlxmXU.js +0 -1
- package/dist/assets/STLLoader-Dyv3lsxY.js +0 -1
- package/dist/assets/SimplifyModifier-C8ayvRzd.js +0 -1
- package/dist/assets/SourceAssetViewer-2SWQoUut.js +0 -12
- package/dist/assets/StageHost-BN-IoTef.js +0 -2
- package/dist/assets/ThreeBoardDocument-CVncZyIq.js +0 -2
- package/dist/assets/asset-budget-asset.menu-Di3KiQCd.js +0 -1
- package/dist/assets/asset-budget.action-DCzzcuTh.js +0 -1
- package/dist/assets/asset-budget.document-BWU8wnVW.js +0 -1
- package/dist/assets/asset-budget.menu-BGZpT_31.js +0 -1
- package/dist/assets/autoplay.service-BZBGNSvt.js +0 -1
- package/dist/assets/blender-emscripten-engine-9ZIRYNhe.js +0 -2
- package/dist/assets/blender-properties-tab-C5CyPydi.js +0 -3
- package/dist/assets/blender-runtime-host-BpBwGv7r.js +0 -4
- package/dist/assets/blender-runtime.document-lIYhhPtv.js +0 -8
- package/dist/assets/blender.command-BtJeWk-A.js +0 -1
- package/dist/assets/body-marks-h_xDxiDE.js +0 -1
- package/dist/assets/bridge.command-o5gDNEwa.js +0 -3
- package/dist/assets/browserAll-DeWblVez.js +0 -1
- package/dist/assets/canvas-entry-runtime-SfBxaR9M.js +0 -2
- package/dist/assets/component-board.service-DidCyM4O.js +0 -2
- package/dist/assets/component-verbs.service-Bv9jId3q.js +0 -1
- package/dist/assets/constraints.inspector-B9U9Yj-u.js +0 -1
- package/dist/assets/coverage.service-VTX5Mcsx.js +0 -3
- package/dist/assets/deferred-ingest-play-DCJi_Pgu.js +0 -2
- package/dist/assets/design-time-layers-wYgOTgni.js +0 -1
- package/dist/assets/design-time-mount.service-BzY21e1F.js +0 -2
- package/dist/assets/design-time-react-mount-DM9WLrF2.js +0 -1
- package/dist/assets/edit-mode-authoring-B47TfLqu.js +0 -1
- package/dist/assets/editor-api-BoJIcyZG.js +0 -1
- package/dist/assets/fflate.module-DPuTF8aG.js +0 -6
- package/dist/assets/fork-menu-BoVyw2Wu.js +0 -1
- package/dist/assets/game-document.service-DbRfx2V0.js +0 -1
- package/dist/assets/game-eval.command-D-7Dxbj_.js +0 -2
- package/dist/assets/gameplay-replay-e5umMlXv.js +0 -1
- package/dist/assets/gameplay.command-DxcVYX6F.js +0 -1
- package/dist/assets/generation.service-CDIgObuw.js +0 -1
- package/dist/assets/index-96FBF1Oj.js +0 -1
- package/dist/assets/index-BAWkB0dv.js +0 -1
- package/dist/assets/index-BDnS2b6S.js +0 -1
- package/dist/assets/index-BjTCPEQ7.js +0 -134
- package/dist/assets/index-CVCb_ImQ.js +0 -1
- package/dist/assets/index-CZd9o7Lu.js +0 -1
- package/dist/assets/index-D2fNXpHa.css +0 -1
- package/dist/assets/index-GIL7oGEO.js +0 -4894
- package/dist/assets/index-OrYXPk3Z.js +0 -487
- package/dist/assets/ingest-boot-viewport-D5rI_Kk_.js +0 -1
- package/dist/assets/ingest-siblings-Bop2kqVl.js +0 -1
- package/dist/assets/instances.command-D6UkZNO8.js +0 -1
- package/dist/assets/light-camera-factory-CWbbe9gI.js +0 -1
- package/dist/assets/live-behaviors-Bxq49Maz.js +0 -1
- package/dist/assets/matcap-texture-CVfalpWT.js +0 -1
- package/dist/assets/model-asset-sections.service-CHhFS3ZX.js +0 -1
- package/dist/assets/model.layout-BJUEQYUI.js +0 -1
- package/dist/assets/module-mode-DVBLT9d-.js +0 -2
- package/dist/assets/mount-canvas-ingest-root-DDuAWf_C.js +0 -2
- package/dist/assets/mount-dom-ingest-root-D_EiBgpn.js +0 -2
- package/dist/assets/mount-ingest-root-glv2SSWf.js +0 -2
- package/dist/assets/mount-three-ingest-root-hrUt9VVU.js +0 -1
- package/dist/assets/particles-factory-DnLOHXT8.js +0 -1
- package/dist/assets/pasteboard-materialize-BqSS4QzV.js +0 -20
- package/dist/assets/pasteboard.action-DU3UHtJG.js +0 -2
- package/dist/assets/pixi-authoring-adapter-CjibysC3.js +0 -1
- package/dist/assets/pixi-primitive-DlWbUPN9.js +0 -1
- package/dist/assets/pixi-react-root-factory-DYsznYRQ.js +0 -1
- package/dist/assets/play-mode-BFU2PCkG.js +0 -22
- package/dist/assets/play.command-BpqqLqkq.js +0 -2
- package/dist/assets/project-authoring-session-Bnt6icLr.js +0 -2
- package/dist/assets/r3f-design-session-D-4yyDO9.js +0 -2
- package/dist/assets/r3f-physics-binding-BBo8oma9.js +0 -1
- package/dist/assets/r3f-source-authoring-adapter-w6Bc60K-.js +0 -13
- package/dist/assets/react-inspector.service-B_neRnSK.js +0 -1
- package/dist/assets/react-story-board-BDDwiE2H.js +0 -1
- package/dist/assets/react-world-authoring-adapter-DmrwM3py.js +0 -1
- package/dist/assets/runtime-inspection-l2iFQSsg.js +0 -1
- package/dist/assets/scene-document.service-qkDjUrlP.js +0 -2
- package/dist/assets/sculpt.layout-zJF55yCR.js +0 -1
- package/dist/assets/setup-particles-GCXlnkj_.js +0 -1
- package/dist/assets/shading.layout-DULYZV6M.js +0 -1
- package/dist/assets/source-object3d-authoring-adapter-B-L6Ha6f.js +0 -1
- package/dist/assets/stage-invalidation-DBg3C3Ta.js +0 -1
- package/dist/assets/stage-keyboard-n-5kKH-m.js +0 -1
- package/dist/assets/stage-overlay-set-B9zp2sLB.js +0 -1
- package/dist/assets/stage-presence-markers-DiGI6A45.js +0 -1
- package/dist/assets/standard-viewport-dressing-CzjAe_0A.js +0 -7
- package/dist/assets/static-batch-advisor-B13QEH7d.js +0 -1
- package/dist/assets/story-capture-_gC8dXV-.js +0 -1
- package/dist/assets/story-documents--TDLaPeL.js +0 -3
- package/dist/assets/story-documents.service-BiS_YbNQ.js +0 -1
- package/dist/assets/story-documents.service-CxOPYJ2j.js +0 -1
- package/dist/assets/story-pixi-preview-BUrOJZXS.js +0 -1
- package/dist/assets/story-presentation-j2AVN-mK.js +0 -1
- package/dist/assets/team-playtest.service-DqOinFVA.js +0 -1
- package/dist/assets/three-authoring.service-iuHLwtf1.js +0 -2
- package/dist/assets/three-viewport-presentation-QBQpSdMh.js +0 -1
- package/dist/assets/three.quarks.esm-B1C61jGo.js +0 -1039
- package/dist/assets/transport.header-B-6HQlU2.js +0 -1
- package/dist/assets/ui-board-document-Bwtt--xp.js +0 -2
- package/dist/assets/use-live-actor-state-DErbWQWF.js +0 -1
- package/dist/assets/user-data-BB2Of6Ht.js +0 -1
- package/dist/assets/uv-editing.layout-BEKHxmHw.js +0 -1
- package/dist/assets/viewport-shading-boundary-B_-_gABg.js +0 -82
- package/dist/assets/voxel-surface-DtcsSWRL.js +0 -1
- package/dist/assets/webgl-frame-capture-FlF9zQmW.js +0 -1
- package/dist/assets/webworkerAll-CM2o_dnz.js +0 -1
- package/dist/assets/world-documents-147tiFZe.js +0 -1
- package/dist/assets/world-root-stage-binding-vwTrtBz6.js +0 -1
- package/dist/assets/xstate-animation-binding-Brd0NST6.js +0 -1
- package/dist/assets/xstate-behavior.action-B8UluFBK.js +0 -1
- package/dist/assets/xstate-behavior.document-CKAsE45I.js +0 -1
- package/dist/assets/xstate-behavior.inspector-vJJyuifc.js +0 -1
- package/dist/assets/xstate-behavior.menu-BXbPICIh.js +0 -1
- package/dist/assets/xstate-inspection-BsZv8LS9.js +0 -1
package/dist-node/cli.js
CHANGED
|
@@ -584,10 +584,21 @@ var init_client = __esm({
|
|
|
584
584
|
}
|
|
585
585
|
/** Apply a STYLE BUNDLE — palette, material, icon set and region defaults
|
|
586
586
|
* in one gesture (`classic`/`glass`/`maya`/`substance`, or one a package
|
|
587
|
-
* the project
|
|
587
|
+
* the project or product composes carries, such as `blender`). */
|
|
588
588
|
async setStyle(style) {
|
|
589
589
|
await this.command({ type: "set-style", style });
|
|
590
590
|
}
|
|
591
|
+
/** A document stage's viewport PRESENTATION (`kit/viewport-presentation`), resolved; with a
|
|
592
|
+
* `layer`, that choice is recorded for the view first, as the toolbar records it. */
|
|
593
|
+
/** A view's presentation, answered resolved. With a LAYER the person's choice is recorded
|
|
594
|
+
* first; with a STRING, the named view (`*.view.ts`) of that id is put on the view whole. */
|
|
595
|
+
async viewportPresentation(documentId, layer) {
|
|
596
|
+
return this.command({
|
|
597
|
+
type: "viewport-presentation",
|
|
598
|
+
documentId,
|
|
599
|
+
...typeof layer === "string" ? { preset: layer } : layer ? { layer } : {}
|
|
600
|
+
});
|
|
601
|
+
}
|
|
591
602
|
/** Set the MATERIAL apart from the bundle that usually carries it.
|
|
592
603
|
* Answers with what the chrome wears afterwards. */
|
|
593
604
|
async setAppearance(appearance) {
|
|
@@ -798,7 +809,8 @@ var init_client = __esm({
|
|
|
798
809
|
async captureEditorChrome(options) {
|
|
799
810
|
return this.command({
|
|
800
811
|
type: "capture-editor-chrome",
|
|
801
|
-
...options?.scale === void 0 ? {} : { scale: options.scale }
|
|
812
|
+
...options?.scale === void 0 ? {} : { scale: options.scale },
|
|
813
|
+
...options?.region === void 0 ? {} : { region: options.region }
|
|
802
814
|
});
|
|
803
815
|
}
|
|
804
816
|
/** With a view, present and capture it in one request so document discovery
|
|
@@ -986,6 +998,50 @@ var init_client = __esm({
|
|
|
986
998
|
async documentTable() {
|
|
987
999
|
return this.command({ type: "document-table" });
|
|
988
1000
|
}
|
|
1001
|
+
/**
|
|
1002
|
+
* Reload the editor's page and wait until the new document answers — the
|
|
1003
|
+
* host's `page-reload`, for a product with no game client (`@volter/game-live`'s
|
|
1004
|
+
* `page.reload()` is the same order with the same two witnesses). A tab's
|
|
1005
|
+
* epoch count rising proves a new document loaded; a host command answering
|
|
1006
|
+
* proves it can be driven. It is sent only once that tab reports its command
|
|
1007
|
+
* listener ready, because a command sent before is filed as a stall.
|
|
1008
|
+
*/
|
|
1009
|
+
async reloadPage(timeoutMs = 6e4) {
|
|
1010
|
+
const epochs = async () => {
|
|
1011
|
+
const tabs = (await this.getState().catch(() => ({ tabs: [] }))).tabs ?? [];
|
|
1012
|
+
const byTab = tabs;
|
|
1013
|
+
return new Map(byTab.map((tab) => [tab.tabId8, tab]));
|
|
1014
|
+
};
|
|
1015
|
+
const pause = () => new Promise((settle) => setTimeout(settle, 250));
|
|
1016
|
+
const before = await epochs();
|
|
1017
|
+
const deadline = Date.now() + timeoutMs;
|
|
1018
|
+
await this.command({ type: "page-reload" });
|
|
1019
|
+
let reloaded = [];
|
|
1020
|
+
while (reloaded.length === 0) {
|
|
1021
|
+
if (Date.now() > deadline) throw new Error("The reload was ordered and no tab of this session reported a new page load.");
|
|
1022
|
+
await pause();
|
|
1023
|
+
const now = await epochs();
|
|
1024
|
+
reloaded = [...now].filter(([tabId, tab]) => tab.epochCount > (before.get(tabId)?.epochCount ?? 0)).map(([tabId]) => tabId);
|
|
1025
|
+
}
|
|
1026
|
+
for (; ; ) {
|
|
1027
|
+
if (Date.now() > deadline) throw new Error("A new page loaded, but its command listener did not become ready.");
|
|
1028
|
+
const now = await epochs();
|
|
1029
|
+
if (reloaded.some((tabId) => {
|
|
1030
|
+
const listener = now.get(tabId)?.commandListener;
|
|
1031
|
+
return typeof listener !== "string" || listener === "ready";
|
|
1032
|
+
})) break;
|
|
1033
|
+
await pause();
|
|
1034
|
+
}
|
|
1035
|
+
for (; ; ) {
|
|
1036
|
+
try {
|
|
1037
|
+
await this.command({ type: "current-view" });
|
|
1038
|
+
return;
|
|
1039
|
+
} catch (error) {
|
|
1040
|
+
if (Date.now() > deadline) throw error;
|
|
1041
|
+
await pause();
|
|
1042
|
+
}
|
|
1043
|
+
}
|
|
1044
|
+
}
|
|
989
1045
|
async getState() {
|
|
990
1046
|
const res = await this.httpFetch(`${this.baseUrl}/__editor/state`);
|
|
991
1047
|
const state = await this.readJson(res);
|
|
@@ -1969,8 +2025,7 @@ function projectRelative(project, absolute) {
|
|
|
1969
2025
|
if (rel === "" || rel.startsWith("../")) return null;
|
|
1970
2026
|
return rel;
|
|
1971
2027
|
}
|
|
1972
|
-
async function serveBlenderMcp(project, ensureEditor
|
|
1973
|
-
}, command = "volter-editor") {
|
|
2028
|
+
async function serveBlenderMcp(project, ensureEditor, command) {
|
|
1974
2029
|
const runtimeIdentity = `Blender ${BUNDLE_default.blender} (source ${BUNDLE_default.source}), compiled to WebAssembly and running headless in the editor tab; three.js takes its photographs. Factory bpy.context.scene.render.engine: '${BUNDLE_default.factoryEngine}'. Documents are .blend. save_as_mainfile records the actual saved path in bpy.data.filepath; open_mainfile reopens it.`;
|
|
1975
2030
|
const tools = blender_mcp_tools_default.map(
|
|
1976
2031
|
(tool) => tool.name === "execute_blender_code" ? { ...tool, description: `${runtimeIdentity}
|
|
@@ -2255,7 +2310,7 @@ import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
|
2255
2310
|
var package_default = {
|
|
2256
2311
|
name: "@volter/game-editor",
|
|
2257
2312
|
author: "Volter AI, Inc.",
|
|
2258
|
-
version: "0.5.
|
|
2313
|
+
version: "0.5.66",
|
|
2259
2314
|
publishConfig: {
|
|
2260
2315
|
access: "public"
|
|
2261
2316
|
},
|
|
@@ -2297,23 +2352,26 @@ var package_default = {
|
|
|
2297
2352
|
displayName: "Volter Game Editor",
|
|
2298
2353
|
colorTheme: "dark",
|
|
2299
2354
|
workbench: {
|
|
2300
|
-
release: "game-editor-
|
|
2301
|
-
tarballSha256: "
|
|
2355
|
+
release: "game-editor-9ef15b1f345b-e22708e88dca-darwin-arm64",
|
|
2356
|
+
tarballSha256: "ffa4556a84b2744c966d3461d022ccf27c5123bcb48025628f3a0129779e9b17"
|
|
2302
2357
|
}
|
|
2303
2358
|
}
|
|
2304
2359
|
},
|
|
2305
2360
|
dependencies: {
|
|
2306
|
-
"@volter/editor-core": "0.5.
|
|
2307
|
-
"@volter/editor-game": "0.5.
|
|
2308
|
-
"@volter/editor-
|
|
2309
|
-
"@volter/
|
|
2310
|
-
"@volter/editor-
|
|
2311
|
-
"@volter/editor-
|
|
2312
|
-
"@volter/
|
|
2313
|
-
"@volter/
|
|
2361
|
+
"@volter/editor-core": "0.5.66",
|
|
2362
|
+
"@volter/editor-game": "0.5.66",
|
|
2363
|
+
"@volter/editor-react": "0.5.66",
|
|
2364
|
+
"@volter/editor-threejs": "0.5.66",
|
|
2365
|
+
"@volter/editor-xstate": "0.5.66",
|
|
2366
|
+
"@volter/editor-blender": "0.1.9",
|
|
2367
|
+
"@volter/blender-engine": "0.1.8",
|
|
2368
|
+
"@volter/editor-project": "0.5.66",
|
|
2369
|
+
"@volter/editor-sdk": "0.5.66",
|
|
2370
|
+
"@volter/editor-live": "0.5.66",
|
|
2371
|
+
"@volter/game-live": "0.5.66",
|
|
2314
2372
|
"@modelcontextprotocol/sdk": "1.30.0",
|
|
2315
|
-
"@volter/game-runtime": "0.5.
|
|
2316
|
-
"@volter/threejs-runtime": "0.5.
|
|
2373
|
+
"@volter/game-runtime": "0.5.66",
|
|
2374
|
+
"@volter/threejs-runtime": "0.5.66",
|
|
2317
2375
|
undici: "7.29.1",
|
|
2318
2376
|
typescript: "5.9.3",
|
|
2319
2377
|
"@colyseus/schema": "^4.0.14",
|
|
@@ -2392,14 +2450,8 @@ var STUDIO_OWNED_PATHS = [
|
|
|
2392
2450
|
"src/contributions/analytics.analytics.tsx"
|
|
2393
2451
|
];
|
|
2394
2452
|
var REACT_ONLY_REMOVED_PATHS = [
|
|
2395
|
-
"src/runtime",
|
|
2396
|
-
"src/scripts",
|
|
2397
2453
|
"src/prefabs",
|
|
2398
|
-
"src/stage",
|
|
2399
2454
|
"src/world.tsx",
|
|
2400
|
-
"src/lib/humanoid",
|
|
2401
|
-
"src/lib/mesh",
|
|
2402
|
-
"src/lib/native-three",
|
|
2403
2455
|
"src/components",
|
|
2404
2456
|
"public"
|
|
2405
2457
|
];
|
|
@@ -2437,6 +2489,43 @@ export function ReactGamePage({ lastInput, title = 'My Game' }: ReactGamePagePro
|
|
|
2437
2489
|
);
|
|
2438
2490
|
}
|
|
2439
2491
|
`;
|
|
2492
|
+
var REACT_HUD_PAGE_SOURCE = `export interface ReactGamePageProps {
|
|
2493
|
+
readonly lastInput: string;
|
|
2494
|
+
readonly title?: string;
|
|
2495
|
+
}
|
|
2496
|
+
|
|
2497
|
+
/** The game's HUD over its 3D world. Runtime input ownership stays in game.tsx. */
|
|
2498
|
+
export function ReactGamePage({ lastInput, title = 'My Game' }: ReactGamePageProps) {
|
|
2499
|
+
return (
|
|
2500
|
+
<main
|
|
2501
|
+
data-testid="game-ui-root"
|
|
2502
|
+
style={{
|
|
2503
|
+
position: 'absolute',
|
|
2504
|
+
inset: 0,
|
|
2505
|
+
padding: 16,
|
|
2506
|
+
pointerEvents: 'none',
|
|
2507
|
+
fontFamily: 'system-ui, sans-serif',
|
|
2508
|
+
}}
|
|
2509
|
+
>
|
|
2510
|
+
<section
|
|
2511
|
+
style={{
|
|
2512
|
+
display: 'inline-block',
|
|
2513
|
+
padding: '10px 14px',
|
|
2514
|
+
borderRadius: 8,
|
|
2515
|
+
pointerEvents: 'auto',
|
|
2516
|
+
color: '#f7f4ea',
|
|
2517
|
+
background: 'rgba(17, 24, 39, 0.72)',
|
|
2518
|
+
}}
|
|
2519
|
+
>
|
|
2520
|
+
<h1 style={{ margin: 0, fontSize: 18 }}>{title}</h1>
|
|
2521
|
+
<p aria-live="polite" style={{ margin: '4px 0 0', color: '#cbd5e1', fontSize: 13 }}>
|
|
2522
|
+
Last input: {lastInput}
|
|
2523
|
+
</p>
|
|
2524
|
+
</section>
|
|
2525
|
+
</main>
|
|
2526
|
+
);
|
|
2527
|
+
}
|
|
2528
|
+
`;
|
|
2440
2529
|
var REACT_ONLY_GAME_SOURCE = `import { useEffect, useState } from 'react';
|
|
2441
2530
|
import { useDebugProvider } from '@volter/game-runtime/react/world-state';
|
|
2442
2531
|
import { ReactGamePage } from './game-page';
|
|
@@ -3704,34 +3793,36 @@ import {
|
|
|
3704
3793
|
import { dirname, isAbsolute, join as join3, relative as relative2, resolve, sep as sep2 } from "node:path";
|
|
3705
3794
|
|
|
3706
3795
|
// node/scaffold/adapter-region-merge.ts
|
|
3707
|
-
import
|
|
3796
|
+
import { createRequire } from "node:module";
|
|
3797
|
+
var loaded;
|
|
3798
|
+
var typescript = () => loaded ??= createRequire(import.meta.url)("typescript");
|
|
3708
3799
|
function quoteLike(source, sample) {
|
|
3709
3800
|
const double = sample !== void 0 && source[sample.getStart()] === '"';
|
|
3710
3801
|
return (value) => double || value.includes("'") ? JSON.stringify(value) : `'${value}'`;
|
|
3711
3802
|
}
|
|
3712
3803
|
function stringLiteralOf(node) {
|
|
3713
|
-
return node &&
|
|
3804
|
+
return node && typescript().isStringLiteralLike(node) ? node.text : void 0;
|
|
3714
3805
|
}
|
|
3715
3806
|
function propertyOf(object, name) {
|
|
3716
3807
|
for (const member of object.properties) {
|
|
3717
|
-
if (!
|
|
3718
|
-
const key =
|
|
3808
|
+
if (!typescript().isPropertyAssignment(member)) continue;
|
|
3809
|
+
const key = typescript().isIdentifier(member.name) ? member.name.text : stringLiteralOf(member.name);
|
|
3719
3810
|
if (key === name) return member;
|
|
3720
3811
|
}
|
|
3721
3812
|
return void 0;
|
|
3722
3813
|
}
|
|
3723
3814
|
function definitionObject(source) {
|
|
3724
3815
|
for (const statement of source.statements) {
|
|
3725
|
-
if (!
|
|
3816
|
+
if (!typescript().isExportAssignment(statement) || statement.isExportEquals) continue;
|
|
3726
3817
|
const call = statement.expression;
|
|
3727
|
-
if (!
|
|
3818
|
+
if (!typescript().isCallExpression(call)) {
|
|
3728
3819
|
return { reason: "its default export is not a direct `defineAdapter({\u2026})` call" };
|
|
3729
3820
|
}
|
|
3730
3821
|
const arg = call.arguments[0];
|
|
3731
3822
|
if (arg === void 0) {
|
|
3732
3823
|
return { reason: "its default export takes no argument object to declare into" };
|
|
3733
3824
|
}
|
|
3734
|
-
if (!
|
|
3825
|
+
if (!typescript().isObjectLiteralExpression(arg)) {
|
|
3735
3826
|
return { reason: "its default export is not called with an object literal" };
|
|
3736
3827
|
}
|
|
3737
3828
|
return { object: arg };
|
|
@@ -3781,11 +3872,11 @@ ${indent}},`;
|
|
|
3781
3872
|
}
|
|
3782
3873
|
function mergeAdapterRegionIncludes(source, additions) {
|
|
3783
3874
|
if (additions.length === 0) return { kind: "unchanged" };
|
|
3784
|
-
const parsed =
|
|
3875
|
+
const parsed = typescript().createSourceFile("vgai.adapter.ts", source, typescript().ScriptTarget.Latest, true);
|
|
3785
3876
|
const definition = definitionObject(parsed);
|
|
3786
3877
|
if ("reason" in definition) return { kind: "unreadable", reason: definition.reason };
|
|
3787
3878
|
const listed = propertyOf(definition.object, "regions");
|
|
3788
|
-
if (listed && !
|
|
3879
|
+
if (listed && !typescript().isStringLiteralLike(listed.initializer)) {
|
|
3789
3880
|
return {
|
|
3790
3881
|
kind: "unreadable",
|
|
3791
3882
|
reason: "it states an explicit `regions` list, whose entries carry their own `include`"
|
|
@@ -3806,7 +3897,7 @@ ${indent}},`;
|
|
|
3806
3897
|
})
|
|
3807
3898
|
);
|
|
3808
3899
|
} else {
|
|
3809
|
-
if (!
|
|
3900
|
+
if (!typescript().isObjectLiteralExpression(overlay.initializer)) {
|
|
3810
3901
|
return { kind: "unreadable", reason: "`regionIncludes` is not an object literal" };
|
|
3811
3902
|
}
|
|
3812
3903
|
const table = overlay.initializer;
|
|
@@ -3819,7 +3910,7 @@ ${indent}},`;
|
|
|
3819
3910
|
);
|
|
3820
3911
|
continue;
|
|
3821
3912
|
}
|
|
3822
|
-
if (!
|
|
3913
|
+
if (!typescript().isObjectLiteralExpression(entry.initializer)) {
|
|
3823
3914
|
return {
|
|
3824
3915
|
kind: "unreadable",
|
|
3825
3916
|
reason: `\`regionIncludes.${addition.rootId}\` is not an object literal`
|
|
@@ -3838,7 +3929,7 @@ ${indent}],`;
|
|
|
3838
3929
|
);
|
|
3839
3930
|
continue;
|
|
3840
3931
|
}
|
|
3841
|
-
if (!
|
|
3932
|
+
if (!typescript().isArrayLiteralExpression(include.initializer)) {
|
|
3842
3933
|
return {
|
|
3843
3934
|
kind: "unreadable",
|
|
3844
3935
|
reason: `\`regionIncludes.${addition.rootId}.include\` is not an array literal`
|
|
@@ -5420,7 +5511,11 @@ function rewriteTemplateVariantFiles(targetDir, composition, additions, starterD
|
|
|
5420
5511
|
for (const [relative7, source] of Object.entries(REACT_ONLY_FILES)) {
|
|
5421
5512
|
if (relative7 === "src/main.ts") continue;
|
|
5422
5513
|
mkdirSync3(dirname2(join4(targetDir, relative7)), { recursive: true });
|
|
5423
|
-
writeFileSync3(
|
|
5514
|
+
writeFileSync3(
|
|
5515
|
+
join4(targetDir, relative7),
|
|
5516
|
+
relative7 === "src/ui/game-page.tsx" ? REACT_HUD_PAGE_SOURCE : source,
|
|
5517
|
+
"utf-8"
|
|
5518
|
+
);
|
|
5424
5519
|
}
|
|
5425
5520
|
return;
|
|
5426
5521
|
}
|
|
@@ -5462,6 +5557,9 @@ function rewriteTsconfig(targetDir, engineRelPath, editorRelPath) {
|
|
|
5462
5557
|
if (editorRelPath) {
|
|
5463
5558
|
tsconfig.compilerOptions.paths["@editor/*"] = [`${editorRelPath}/src/*`];
|
|
5464
5559
|
}
|
|
5560
|
+
tsconfig.compilerOptions.paths["@editor/game-module-access"] = [
|
|
5561
|
+
"node_modules/@volter/editor-game/src/host/game-module-access.ts"
|
|
5562
|
+
];
|
|
5465
5563
|
if (Array.isArray(tsconfig.files)) {
|
|
5466
5564
|
tsconfig.files = tsconfig.files.map((f) => rewriteEngineRelativeFilePath(f, engineRelPath));
|
|
5467
5565
|
}
|
|
@@ -6339,7 +6437,7 @@ import { createRequire as createRequire2 } from "node:module";
|
|
|
6339
6437
|
import { mkdirSync as mkdirSync32, openSync, closeSync, realpathSync as realpathSync3 } from "node:fs";
|
|
6340
6438
|
import { join as join42, resolve as resolve22 } from "node:path";
|
|
6341
6439
|
import { existsSync as existsSync6, readFileSync as readFileSync7 } from "node:fs";
|
|
6342
|
-
import { createRequire } from "node:module";
|
|
6440
|
+
import { createRequire as createRequire3 } from "node:module";
|
|
6343
6441
|
import { dirname as dirname5, join as join8 } from "node:path";
|
|
6344
6442
|
import { pathToFileURL } from "node:url";
|
|
6345
6443
|
import { execFileSync as execFileSync4 } from "node:child_process";
|
|
@@ -6362,7 +6460,10 @@ import { mkdirSync as mkdirSync22, readFileSync as readFileSync32, renameSync as
|
|
|
6362
6460
|
import { homedir as homedir22 } from "node:os";
|
|
6363
6461
|
import { dirname as dirname22, join as join32 } from "node:path";
|
|
6364
6462
|
var PRODUCT_DECLARATION_KEY = "vgai.product";
|
|
6365
|
-
var PRODUCT_INSTALL_LINES = [
|
|
6463
|
+
var PRODUCT_INSTALL_LINES = [
|
|
6464
|
+
" npm install --save-dev @volter/model-editor",
|
|
6465
|
+
" npm install --save-dev @volter/game-editor"
|
|
6466
|
+
];
|
|
6366
6467
|
var PRODUCT_CREATE_LINES = [" npx @volter/editor create <name>"];
|
|
6367
6468
|
var PRODUCT_COLOR_THEMES = ["dark", "light"];
|
|
6368
6469
|
function readProductManifest(packageDir) {
|
|
@@ -6460,7 +6561,7 @@ function declaredVgaiPackages(projectRoot) {
|
|
|
6460
6561
|
return Object.keys({ ...manifest.dependencies ?? {}, ...manifest.devDependencies ?? {} }).filter((name) => name.startsWith("@volter/")).sort();
|
|
6461
6562
|
}
|
|
6462
6563
|
function locatePackage(projectRoot, name) {
|
|
6463
|
-
const require2 =
|
|
6564
|
+
const require2 = createRequire3(pathToFileURL(join8(projectRoot, "package.json")));
|
|
6464
6565
|
try {
|
|
6465
6566
|
return dirname5(require2.resolve(`${name}/package.json`));
|
|
6466
6567
|
} catch {
|
|
@@ -6676,7 +6777,8 @@ async function resolveWorkbenchForProject(options) {
|
|
|
6676
6777
|
fetched: false
|
|
6677
6778
|
};
|
|
6678
6779
|
const declared = readWorkbenchDeclaration(projectRoot);
|
|
6679
|
-
|
|
6780
|
+
const fetchRecord = declared !== null && product.workbench !== null && declared.startsWith(`${WORKBENCH_CACHE_ROOT}/`);
|
|
6781
|
+
if (declared !== null && !fetchRecord)
|
|
6680
6782
|
return {
|
|
6681
6783
|
...resolveWorkbench(declared, productId),
|
|
6682
6784
|
source: "declaration",
|
|
@@ -7127,6 +7229,22 @@ async function launch(folder, launching, options = {}) {
|
|
|
7127
7229
|
clearLaunch();
|
|
7128
7230
|
}
|
|
7129
7231
|
}
|
|
7232
|
+
async function prepareSession(folder, launching) {
|
|
7233
|
+
const project = realpathSync3(resolve22(folder));
|
|
7234
|
+
const product = resolveProductForProject(project);
|
|
7235
|
+
if (product.name !== launching.packageName) throw new Error(`${project} declares ${product.name}, not ${launching.displayName}.`);
|
|
7236
|
+
const entry = createRequire2(join42(product.dir, "package.json")).resolve("@volter/editor-core/server/packaged");
|
|
7237
|
+
const code = await new Promise((done, fail2) => {
|
|
7238
|
+
const child = spawn2(process.execPath, [entry], {
|
|
7239
|
+
cwd: project,
|
|
7240
|
+
stdio: ["ignore", "inherit", "inherit"],
|
|
7241
|
+
env: { ...process.env, VGAI_PROJECT: project, VGAI_PRODUCT_DIR: product.dir, VGAI_NO_OPEN: "1", VGAI_PREPARE: "1" }
|
|
7242
|
+
});
|
|
7243
|
+
child.once("error", fail2);
|
|
7244
|
+
child.once("exit", done);
|
|
7245
|
+
});
|
|
7246
|
+
if (code !== 0) throw new Error(`${launching.command} prepare exited with code ${code} for ${project}.`);
|
|
7247
|
+
}
|
|
7130
7248
|
async function ensureTab(serverUrl, noOpen) {
|
|
7131
7249
|
const openAttemptAt = Date.now();
|
|
7132
7250
|
const result = await requestEditorTabEnsure(serverUrl, !noOpen);
|
|
@@ -7140,7 +7258,7 @@ async function ensureTab(serverUrl, noOpen) {
|
|
|
7140
7258
|
if (outcome.status !== "connected") throw new Error(`Editor page ${outcome.status === "never-arrived" ? "did not arrive" : "arrived but did not become ready"}; open the printed workbench URL and inspect the session log.`);
|
|
7141
7259
|
}
|
|
7142
7260
|
|
|
7143
|
-
// ../editor-core/dist/server/chunk-
|
|
7261
|
+
// ../editor-core/dist/server/chunk-IVCRYPQI.js
|
|
7144
7262
|
import { Agent, fetch as nodeFetch } from "undici";
|
|
7145
7263
|
function createDispatcher(timeoutMs) {
|
|
7146
7264
|
return new Agent({ headersTimeout: timeoutMs, bodyTimeout: timeoutMs });
|
|
@@ -7698,10 +7816,21 @@ var EditorClient = class {
|
|
|
7698
7816
|
}
|
|
7699
7817
|
/** Apply a STYLE BUNDLE — palette, material, icon set and region defaults
|
|
7700
7818
|
* in one gesture (`classic`/`glass`/`maya`/`substance`, or one a package
|
|
7701
|
-
* the project
|
|
7819
|
+
* the project or product composes carries, such as `blender`). */
|
|
7702
7820
|
async setStyle(style) {
|
|
7703
7821
|
await this.command({ type: "set-style", style });
|
|
7704
7822
|
}
|
|
7823
|
+
/** A document stage's viewport PRESENTATION (`kit/viewport-presentation`), resolved; with a
|
|
7824
|
+
* `layer`, that choice is recorded for the view first, as the toolbar records it. */
|
|
7825
|
+
/** A view's presentation, answered resolved. With a LAYER the person's choice is recorded
|
|
7826
|
+
* first; with a STRING, the named view (`*.view.ts`) of that id is put on the view whole. */
|
|
7827
|
+
async viewportPresentation(documentId, layer) {
|
|
7828
|
+
return this.command({
|
|
7829
|
+
type: "viewport-presentation",
|
|
7830
|
+
documentId,
|
|
7831
|
+
...typeof layer === "string" ? { preset: layer } : layer ? { layer } : {}
|
|
7832
|
+
});
|
|
7833
|
+
}
|
|
7705
7834
|
/** Set the MATERIAL apart from the bundle that usually carries it.
|
|
7706
7835
|
* Answers with what the chrome wears afterwards. */
|
|
7707
7836
|
async setAppearance(appearance) {
|
|
@@ -7912,7 +8041,8 @@ var EditorClient = class {
|
|
|
7912
8041
|
async captureEditorChrome(options) {
|
|
7913
8042
|
return this.command({
|
|
7914
8043
|
type: "capture-editor-chrome",
|
|
7915
|
-
...options?.scale === void 0 ? {} : { scale: options.scale }
|
|
8044
|
+
...options?.scale === void 0 ? {} : { scale: options.scale },
|
|
8045
|
+
...options?.region === void 0 ? {} : { region: options.region }
|
|
7916
8046
|
});
|
|
7917
8047
|
}
|
|
7918
8048
|
/** With a view, present and capture it in one request so document discovery
|
|
@@ -8100,6 +8230,50 @@ var EditorClient = class {
|
|
|
8100
8230
|
async documentTable() {
|
|
8101
8231
|
return this.command({ type: "document-table" });
|
|
8102
8232
|
}
|
|
8233
|
+
/**
|
|
8234
|
+
* Reload the editor's page and wait until the new document answers — the
|
|
8235
|
+
* host's `page-reload`, for a product with no game client (`@volter/game-live`'s
|
|
8236
|
+
* `page.reload()` is the same order with the same two witnesses). A tab's
|
|
8237
|
+
* epoch count rising proves a new document loaded; a host command answering
|
|
8238
|
+
* proves it can be driven. It is sent only once that tab reports its command
|
|
8239
|
+
* listener ready, because a command sent before is filed as a stall.
|
|
8240
|
+
*/
|
|
8241
|
+
async reloadPage(timeoutMs = 6e4) {
|
|
8242
|
+
const epochs = async () => {
|
|
8243
|
+
const tabs = (await this.getState().catch(() => ({ tabs: [] }))).tabs ?? [];
|
|
8244
|
+
const byTab = tabs;
|
|
8245
|
+
return new Map(byTab.map((tab) => [tab.tabId8, tab]));
|
|
8246
|
+
};
|
|
8247
|
+
const pause = () => new Promise((settle) => setTimeout(settle, 250));
|
|
8248
|
+
const before = await epochs();
|
|
8249
|
+
const deadline = Date.now() + timeoutMs;
|
|
8250
|
+
await this.command({ type: "page-reload" });
|
|
8251
|
+
let reloaded = [];
|
|
8252
|
+
while (reloaded.length === 0) {
|
|
8253
|
+
if (Date.now() > deadline) throw new Error("The reload was ordered and no tab of this session reported a new page load.");
|
|
8254
|
+
await pause();
|
|
8255
|
+
const now = await epochs();
|
|
8256
|
+
reloaded = [...now].filter(([tabId, tab]) => tab.epochCount > (before.get(tabId)?.epochCount ?? 0)).map(([tabId]) => tabId);
|
|
8257
|
+
}
|
|
8258
|
+
for (; ; ) {
|
|
8259
|
+
if (Date.now() > deadline) throw new Error("A new page loaded, but its command listener did not become ready.");
|
|
8260
|
+
const now = await epochs();
|
|
8261
|
+
if (reloaded.some((tabId) => {
|
|
8262
|
+
const listener = now.get(tabId)?.commandListener;
|
|
8263
|
+
return typeof listener !== "string" || listener === "ready";
|
|
8264
|
+
})) break;
|
|
8265
|
+
await pause();
|
|
8266
|
+
}
|
|
8267
|
+
for (; ; ) {
|
|
8268
|
+
try {
|
|
8269
|
+
await this.command({ type: "current-view" });
|
|
8270
|
+
return;
|
|
8271
|
+
} catch (error) {
|
|
8272
|
+
if (Date.now() > deadline) throw error;
|
|
8273
|
+
await pause();
|
|
8274
|
+
}
|
|
8275
|
+
}
|
|
8276
|
+
}
|
|
8103
8277
|
async getState() {
|
|
8104
8278
|
const res = await this.httpFetch(`${this.baseUrl}/__editor/state`);
|
|
8105
8279
|
const state = await this.readJson(res);
|
|
@@ -8221,8 +8395,82 @@ var EditorClient = class {
|
|
|
8221
8395
|
};
|
|
8222
8396
|
|
|
8223
8397
|
// ../editor-core/dist/server/launcher/control.js
|
|
8224
|
-
import { connect } from "@volter/editor-live";
|
|
8398
|
+
import { connect, unconnectedBindings } from "@volter/editor-live";
|
|
8399
|
+
var NOISE = /* @__PURE__ */ new Set(["constructor", "then", "catch", "finally"]);
|
|
8400
|
+
var FUNCTION_NOISE = /* @__PURE__ */ new Set(["length", "name", "prototype", "arguments", "caller"]);
|
|
8401
|
+
function describe(target, key) {
|
|
8402
|
+
let current = target;
|
|
8403
|
+
while (current !== null) {
|
|
8404
|
+
const descriptor = Object.getOwnPropertyDescriptor(current, key);
|
|
8405
|
+
if (descriptor !== void 0) return descriptor;
|
|
8406
|
+
current = Object.getPrototypeOf(current);
|
|
8407
|
+
}
|
|
8408
|
+
return void 0;
|
|
8409
|
+
}
|
|
8410
|
+
function ownAndInheritedKeys(target) {
|
|
8411
|
+
const targetIsFunction = typeof target === "function";
|
|
8412
|
+
const keys = [];
|
|
8413
|
+
const seen = /* @__PURE__ */ new Set();
|
|
8414
|
+
let current = target;
|
|
8415
|
+
while (current !== null && current !== Object.prototype && current !== Function.prototype && current !== Array.prototype) {
|
|
8416
|
+
for (const name of Object.getOwnPropertyNames(current)) {
|
|
8417
|
+
if (seen.has(name)) continue;
|
|
8418
|
+
seen.add(name);
|
|
8419
|
+
if (NOISE.has(name) || name.startsWith("_")) continue;
|
|
8420
|
+
if (targetIsFunction && FUNCTION_NOISE.has(name)) continue;
|
|
8421
|
+
keys.push(name);
|
|
8422
|
+
}
|
|
8423
|
+
current = Object.getPrototypeOf(current);
|
|
8424
|
+
}
|
|
8425
|
+
return keys;
|
|
8426
|
+
}
|
|
8427
|
+
function isNamespace(value) {
|
|
8428
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
|
|
8429
|
+
const proto = Object.getPrototypeOf(value);
|
|
8430
|
+
if (proto === Object.prototype || proto === null) return false;
|
|
8431
|
+
return ownAndInheritedKeys(value).some((key) => typeof describe(value, key)?.value === "function");
|
|
8432
|
+
}
|
|
8433
|
+
function surfaceMembers(target) {
|
|
8434
|
+
if (typeof target !== "object" && typeof target !== "function" || target === null) return [];
|
|
8435
|
+
const members = [];
|
|
8436
|
+
for (const name of ownAndInheritedKeys(target)) {
|
|
8437
|
+
const descriptor = describe(target, name);
|
|
8438
|
+
if (descriptor === void 0) continue;
|
|
8439
|
+
if (descriptor.get !== void 0 || descriptor.set !== void 0) {
|
|
8440
|
+
members.push({ name, kind: "value", arity: 0 });
|
|
8441
|
+
continue;
|
|
8442
|
+
}
|
|
8443
|
+
const value = descriptor.value;
|
|
8444
|
+
if (typeof value === "function") members.push({ name, kind: "method", arity: value.length });
|
|
8445
|
+
else if (isNamespace(value)) {
|
|
8446
|
+
for (const inner of ownAndInheritedKeys(value)) {
|
|
8447
|
+
const innerValue = describe(value, inner)?.value;
|
|
8448
|
+
if (typeof innerValue === "function") members.push({ name: `${name}.${inner}`, kind: "method", arity: innerValue.length });
|
|
8449
|
+
}
|
|
8450
|
+
} else members.push({ name, kind: "value", arity: 0 });
|
|
8451
|
+
}
|
|
8452
|
+
return members.sort((a, b) => a.name.localeCompare(b.name));
|
|
8453
|
+
}
|
|
8454
|
+
function formatSurface(command, bindings) {
|
|
8455
|
+
const lines = [`In scope for \`${command} eval\` (read from the objects themselves):`, ""];
|
|
8456
|
+
for (const [binding, target] of Object.entries(bindings)) {
|
|
8457
|
+
const members = surfaceMembers(target);
|
|
8458
|
+
lines.push(binding);
|
|
8459
|
+
if (members.length === 0) lines.push(` (data; inspect it with: ${command} eval 'return ${binding}')`);
|
|
8460
|
+
const names = members.map((m) => m.kind === "method" ? `${m.name}(${m.arity || ""})` : m.name);
|
|
8461
|
+
const width = Math.max(0, ...names.map((n) => n.length)) + 2;
|
|
8462
|
+
for (let i = 0; i < names.length; i += 3) lines.push(` ${names.slice(i, i + 3).map((n) => n.padEnd(width)).join("").trimEnd()}`);
|
|
8463
|
+
lines.push("");
|
|
8464
|
+
}
|
|
8465
|
+
lines.push("Parens mark a method; the number is its declared parameter count. A bare name is a field.");
|
|
8466
|
+
return lines.join("\n");
|
|
8467
|
+
}
|
|
8225
8468
|
async function control(command, verb, argument, reason, scope) {
|
|
8469
|
+
if (verb === "eval" && argument === "--list") {
|
|
8470
|
+
const unconnected = { ...unconnectedBindings(), session: { port: 0, projectRoot: process.cwd() } };
|
|
8471
|
+
console.log(formatSurface(command, { ...unconnected, ...scope?.(unconnected) }));
|
|
8472
|
+
return;
|
|
8473
|
+
}
|
|
8226
8474
|
const live = await connect();
|
|
8227
8475
|
const client = new EditorClient({ url: `http://127.0.0.1:${live.session.port}` });
|
|
8228
8476
|
if (verb === "close") {
|
|
@@ -8240,11 +8488,18 @@ async function control(command, verb, argument, reason, scope) {
|
|
|
8240
8488
|
console.log(JSON.stringify(result, null, 2));
|
|
8241
8489
|
} else if (verb === "status") console.log(JSON.stringify(await live.editor.status(), null, 2));
|
|
8242
8490
|
else if (verb === "eval") {
|
|
8243
|
-
if (!argument) throw new Error(
|
|
8491
|
+
if (!argument) throw new Error(`eval requires JavaScript; \`${command} eval --list\` shows what is in scope.`);
|
|
8244
8492
|
const AsyncFunction = Object.getPrototypeOf(async function() {
|
|
8245
8493
|
}).constructor;
|
|
8246
8494
|
const bindings = { editor: live.editor, tools: live.tools, session: live.session, ...scope?.(live) };
|
|
8247
|
-
|
|
8495
|
+
let body;
|
|
8496
|
+
try {
|
|
8497
|
+
body = new AsyncFunction(...Object.keys(bindings), `return (${argument}
|
|
8498
|
+
);`);
|
|
8499
|
+
} catch {
|
|
8500
|
+
body = new AsyncFunction(...Object.keys(bindings), argument);
|
|
8501
|
+
}
|
|
8502
|
+
const result = await body(...Object.values(bindings));
|
|
8248
8503
|
if (result !== void 0) console.log(JSON.stringify(result, null, 2));
|
|
8249
8504
|
} else if (verb !== "console") throw new Error(`Unknown command: ${verb}`);
|
|
8250
8505
|
const consoleState = await client.getUnresolvedConsole();
|
|
@@ -8272,22 +8527,10 @@ var alwaysRefresh = (timeoutMs = DEFAULT_RELAY_COMMAND_TIMEOUT_MS) => ({
|
|
|
8272
8527
|
});
|
|
8273
8528
|
var RELAY_COMMANDS = {
|
|
8274
8529
|
"session-prepare-close": noDerivedRefresh(12e4),
|
|
8275
|
-
// ---- Selection
|
|
8530
|
+
// ---- Selection ---------------------------------------------------------
|
|
8276
8531
|
select: noDerivedRefresh(3e4),
|
|
8277
8532
|
"select-multiple": noDerivedRefresh(),
|
|
8278
8533
|
"select-all": noDerivedRefresh(),
|
|
8279
|
-
"focus-entity": noDerivedRefresh(),
|
|
8280
|
-
"frame-entity": noDerivedRefresh(),
|
|
8281
|
-
"focus-selection": noDerivedRefresh(),
|
|
8282
|
-
"view-preset": noDerivedRefresh(),
|
|
8283
|
-
"set-camera": noDerivedRefresh(),
|
|
8284
|
-
// ---- Looking at the open Object3D document ------------------------------
|
|
8285
|
-
// These ANIMATE the shared camera and ack when the move ends, so their
|
|
8286
|
-
// budget is the move's own wall clock, not an editor edit's. Both refuse a
|
|
8287
|
-
// duration past 60 s themselves; the ceiling here is the relay's backstop.
|
|
8288
|
-
"document-orbit": noDerivedRefresh(12e4),
|
|
8289
|
-
"document-turntable": noDerivedRefresh(12e4),
|
|
8290
|
-
"document-frame": noDerivedRefresh(),
|
|
8291
8534
|
// ---- Editor chrome ------------------------------------------------------
|
|
8292
8535
|
"viewport-tab": noDerivedRefresh(),
|
|
8293
8536
|
// Focusing a panel is dock work, but its ack WAITS for the dock to report
|
|
@@ -8320,6 +8563,8 @@ var RELAY_COMMANDS = {
|
|
|
8320
8563
|
// A style bundle is chrome appearance; the document is untouched.
|
|
8321
8564
|
"set-style": noDerivedRefresh(),
|
|
8322
8565
|
"set-appearance": noDerivedRefresh(),
|
|
8566
|
+
// A view's viewport presentation (lighting, backdrop, overlays); the document is untouched.
|
|
8567
|
+
"viewport-presentation": noDerivedRefresh(),
|
|
8323
8568
|
"present-view": alwaysRefresh(3e4),
|
|
8324
8569
|
"current-view": refreshIfContentChanged(),
|
|
8325
8570
|
// A read of the resolved document table; changes nothing.
|
|
@@ -8370,21 +8615,14 @@ var RELAY_COMMANDS = {
|
|
|
8370
8615
|
"capture-active-document": refreshIfContentChanged(3e4),
|
|
8371
8616
|
// The whole editor page through the same compositor; the foreignObject leg
|
|
8372
8617
|
// over a full dock takes seconds, not milliseconds.
|
|
8373
|
-
"capture-editor-chrome": refreshIfContentChanged(3e4)
|
|
8374
|
-
"capture-viewport": refreshIfContentChanged(),
|
|
8375
|
-
"capture-asset-preview": refreshIfContentChanged(3e4),
|
|
8618
|
+
"capture-editor-chrome": refreshIfContentChanged(3e4)
|
|
8376
8619
|
// The ONE door onto a view's verbs (`@volter/editor-sdk/views`, U8 ruling 1).
|
|
8377
8620
|
// A verb either READS the view or moves its own transform; neither touches
|
|
8378
8621
|
// a document, so nothing derived refreshes.
|
|
8379
|
-
//
|
|
8380
|
-
|
|
8381
|
-
|
|
8382
|
-
|
|
8383
|
-
"set-shading-mode": noDerivedRefresh(),
|
|
8384
|
-
"set-helper-type": noDerivedRefresh(),
|
|
8385
|
-
"set-transform-mode": noDerivedRefresh(),
|
|
8386
|
-
"set-transform-space": noDerivedRefresh(),
|
|
8387
|
-
"set-snap": noDerivedRefresh()
|
|
8622
|
+
// The THREE VIEWPORT'S verbs — framing, the camera, view presets, the open
|
|
8623
|
+
// Object3D document's orbit/turntable/frame, the viewport photograph and the
|
|
8624
|
+
// display and transform toggles — are its own command contribution
|
|
8625
|
+
// (`viewport-commands.ts`), each budget on its contributed row.
|
|
8388
8626
|
// The BLENDER lane's ten verbs are `@vgai/blender`'s
|
|
8389
8627
|
// `contributions/blender.command.ts` (WORK.md §The workbench, item D) —
|
|
8390
8628
|
// each row's budget travelled with it, onto the contributed spec the page
|
|
@@ -9211,10 +9449,12 @@ try {
|
|
|
9211
9449
|
port: { type: "string" },
|
|
9212
9450
|
version: { type: "boolean", short: "v" },
|
|
9213
9451
|
help: { type: "boolean", short: "h" },
|
|
9452
|
+
list: { type: "boolean" },
|
|
9214
9453
|
...SCREENSHOT_OPTIONS,
|
|
9215
9454
|
...CAPABILITY_OPTIONS
|
|
9216
9455
|
} });
|
|
9217
9456
|
const [verb = "edit", folder = "."] = positionals;
|
|
9457
|
+
if (values.list && verb !== "eval") throw new Error("--list belongs to eval.");
|
|
9218
9458
|
for (const key of Object.keys(SCREENSHOT_OPTIONS))
|
|
9219
9459
|
if (values[key] !== void 0 && verb !== "screenshot") throw new Error(`--${key} belongs to screenshot.`);
|
|
9220
9460
|
for (const key of Object.keys(CAPABILITY_OPTIONS))
|
|
@@ -9224,10 +9464,11 @@ try {
|
|
|
9224
9464
|
} else if (values.help) {
|
|
9225
9465
|
console.log(`Volter Game Editor
|
|
9226
9466
|
volter-game-editor create <folder> [--template ${Object.keys(presets.templates).join("|")}] [--with ${SCAFFOLD_ADDITIONS.join(",")}] [--workbench <dir>]
|
|
9467
|
+
volter-game-editor prepare [folder] # run the session's dependency optimizer ahead of time (an image build's step)
|
|
9227
9468
|
volter-game-editor edit [folder] [--workbench <dir>] [--no-open] [--port <n>]
|
|
9228
9469
|
volter-game-editor status | console | close
|
|
9229
9470
|
volter-game-editor console ack <id> --reason <text>
|
|
9230
|
-
volter-game-editor eval <JavaScript
|
|
9471
|
+
volter-game-editor eval <JavaScript> | --list # { editor, game, page, tools, session } in scope
|
|
9231
9472
|
volter-game-editor play | stop | restart
|
|
9232
9473
|
volter-game-editor ${SCREENSHOT_USAGE}
|
|
9233
9474
|
volter-game-editor sessions | project | projects
|
|
@@ -9272,6 +9513,9 @@ try {
|
|
|
9272
9513
|
} else if (verb === "sessions" || verb === "project" || verb === "projects") {
|
|
9273
9514
|
if (positionals.length > 1) throw new Error(`Usage: volter-game-editor ${verb}`);
|
|
9274
9515
|
await (verb === "sessions" ? listSessions() : verb === "project" ? showProject() : listRecentProjects());
|
|
9516
|
+
} else if (verb === "prepare") {
|
|
9517
|
+
if (positionals.length > 2) throw new Error("Usage: volter-game-editor prepare [folder]");
|
|
9518
|
+
await prepareSession(folder, PRODUCT3);
|
|
9275
9519
|
} else if (verb === "open") {
|
|
9276
9520
|
if (positionals.length !== 2) throw new Error("Usage: volter-game-editor open <path>");
|
|
9277
9521
|
await openProject(positionals[1]);
|
|
@@ -9281,7 +9525,7 @@ try {
|
|
|
9281
9525
|
} else if (["status", "console", "eval", "close"].includes(verb)) {
|
|
9282
9526
|
if (positionals.length > (verb === "eval" ? 2 : 1)) throw new Error("Unexpected arguments.");
|
|
9283
9527
|
const { gameBindings } = await import("@volter/game-live");
|
|
9284
|
-
await control(PRODUCT3.command, verb, positionals[1], void 0, (live) => {
|
|
9528
|
+
await control(PRODUCT3.command, verb, values.list ? "--list" : positionals[1], void 0, (live) => {
|
|
9285
9529
|
const { game, page, recording } = gameBindings(live.session);
|
|
9286
9530
|
return { editor: Object.assign(live.editor, { recording }), game, page };
|
|
9287
9531
|
});
|