@volter/game-editor 0.5.69 → 0.5.70
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 +28 -44
- package/LICENSE +9 -10
- package/catalog/entries/blender.json +2 -2
- package/catalog/entries/music.json +2 -2
- package/catalog/project-source/LICENSE +5 -5
- package/dist/.vite/manifest.json +2125 -2125
- package/dist/assets/{AssetBudgetPanel-BMR3AQhc.js → AssetBudgetPanel-DpXsaQ6w.js} +3 -3
- package/dist/assets/{AudioViewer-DESxi7pU.js → AudioViewer-BdTHfNhD.js} +1 -1
- package/dist/assets/{CanvasBoardDocument-Q_nrYFlB.js → CanvasBoardDocument-DY-7zohc.js} +1 -1
- package/dist/assets/{CanvasSceneViewport-WZMoKy_F.js → CanvasSceneViewport-57CEFqSM.js} +1 -1
- package/dist/assets/{ColorInput-C2EK-OnD.js → ColorInput-Co6tCY9p.js} +1 -1
- package/dist/assets/{EntityModelDocument-B_4ENTCq.js → EntityModelDocument-C-lhKrxv.js} +1 -1
- package/dist/assets/{EnvironmentAssetDocument-BZBp6OFJ.js → EnvironmentAssetDocument-BNe6ANTN.js} +1 -1
- package/dist/assets/{GameplaySessionTimeline-1ivaucpv.js → GameplaySessionTimeline-CryFYfYN.js} +1 -1
- package/dist/assets/{ImageViewer-D16OExYu.js → ImageViewer-DiD2yIG4.js} +1 -1
- package/dist/assets/InspectorObjectPreview-BBVO8bDT.js +1 -0
- package/dist/assets/{JsonAssetDocument-CvjTlcdr.js → JsonAssetDocument-xyXetSbl.js} +1 -1
- package/dist/assets/{LiveModuleDocument-ne1o9giX.js → LiveModuleDocument-BiAunjHS.js} +1 -1
- package/dist/assets/{LutAssetDocument-Cp0v-O7q.js → LutAssetDocument-5sW-5rb0.js} +1 -1
- package/dist/assets/{ModelAssetDocument-Ceu7OIN9.js → ModelAssetDocument-Bdy7x47a.js} +1 -1
- package/dist/assets/{NonThreeAuthoringBootstrap-DiElZf-e.js → NonThreeAuthoringBootstrap-BP-1bVEr.js} +1 -1
- package/dist/assets/{Object3DDocumentToolbar-BLNamqii.js → Object3DDocumentToolbar-CvnSLDPI.js} +1 -1
- package/dist/assets/Object3DDocumentViewport-BE_OPc8T.js +2 -0
- package/dist/assets/{Object3DPreview-ZVokr044.js → Object3DPreview-D3w_dKrX.js} +1 -1
- package/dist/assets/{OnlineAssetDetail-Dnckd7zB.js → OnlineAssetDetail-BnT8_p1W.js} +1 -1
- package/dist/assets/{PlayBar-DsMitSgy.js → PlayBar-C8Mn-EI0.js} +1 -1
- package/dist/assets/{QuarksAssetDocument-B5J8uHFM.js → QuarksAssetDocument-DLMH5Csk.js} +1 -1
- package/dist/assets/{ReactCanvasControls-CmfvxJYY.js → ReactCanvasControls-rNz8syVB.js} +1 -1
- package/dist/assets/{RootSelectionOverlay-BWsNiSuM.js → RootSelectionOverlay-Cn2Rbr1N.js} +1 -1
- package/dist/assets/{ShaderAssetDocument-CT7XzsZq.js → ShaderAssetDocument-CsJCsNfA.js} +1 -1
- package/dist/assets/{ShadowEditor-YO5KEfnz.js → ShadowEditor-jB05hr1W.js} +1 -1
- package/dist/assets/{SourceAssetViewer-FSLup2km.js → SourceAssetViewer-D0NgGrER.js} +1 -1
- package/dist/assets/{StageHost-DYfGYwvq.js → StageHost-B3Yt4I7r.js} +2 -2
- package/dist/assets/{StoryPreviewMount-BhvT5QlB.js → StoryPreviewMount-CzzRn24c.js} +1 -1
- package/dist/assets/{ThreeBoardDocument-B-z2nwnH.js → ThreeBoardDocument-BoHTN4Vl.js} +2 -2
- package/dist/assets/{ThreeIsolationSceneContent-B5pU4Y6k.js → ThreeIsolationSceneContent-BM-0S6J5.js} +1 -1
- package/dist/assets/{ToolObject3DPreview-VtraiQ4Q.js → ToolObject3DPreview-BeM_kx_u.js} +1 -1
- package/dist/assets/{Toolbar-M62Gob9T.js → Toolbar-BZyog9MR.js} +1 -1
- package/dist/assets/{TransientHint-Cc40mHWE.js → TransientHint-RJEkOJoy.js} +1 -1
- package/dist/assets/{VideoViewer-BxcUwXQm.js → VideoViewer-CxajgKrf.js} +1 -1
- package/dist/assets/{ViewportShadingMenu-BoMPnTVh.js → ViewportShadingMenu-S2lADFJg.js} +1 -1
- package/dist/assets/active-ingest-CjZtqL7Q.js +3 -0
- package/dist/assets/{animation-clock-BXEwUJtz.js → animation-clock-CWVW-mqY.js} +1 -1
- package/dist/assets/{animation-mixers.service-C-Ko4KzM.js → animation-mixers.service-CpoYw8cs.js} +1 -1
- package/dist/assets/{animation-timeline.utility-Bl15-rYb.js → animation-timeline.utility-CEerojaB.js} +1 -1
- package/dist/assets/{asset-budget-asset.menu-BUa3g0Wy.js → asset-budget-asset.menu-Bk6scVWQ.js} +1 -1
- package/dist/assets/{asset-budget.action-Dl5eVPIo.js → asset-budget.action-DtBDSfDj.js} +1 -1
- package/dist/assets/{asset-budget.document-DJylQ-0h.js → asset-budget.document-R2zyoJ8E.js} +1 -1
- package/dist/assets/{asset-budget.menu-BJtvNMLj.js → asset-budget.menu-D6jza5Bc.js} +1 -1
- package/dist/assets/{asset-editor-persistence-BIbf5u0Q.js → asset-editor-persistence-DrgwOZIW.js} +1 -1
- package/dist/assets/{asset-loaders-DoNflsHL.js → asset-loaders-CUeYIjeH.js} +1 -1
- package/dist/assets/{asset-preview-DxlSdRZn.js → asset-preview-CQfnI2cX.js} +1 -1
- package/dist/assets/{audio-unlock.service-CTaiyXF9.js → audio-unlock.service-W3UBKsw9.js} +1 -1
- package/dist/assets/{audio.utility-CEmNc68t.js → audio.utility-qrXBdGXg.js} +1 -1
- package/dist/assets/autoplay.service-DQD3Swo9.js +1 -0
- package/dist/assets/{babylon-authoring-adapter-BZvV2bz_.js → babylon-authoring-adapter-CS9LZNmz.js} +1 -1
- package/dist/assets/{binding-resolver-DGbk9_XR.js → binding-resolver-B9VI52zt.js} +2 -2
- package/dist/assets/{blender-emscripten-engine-B7lfg-RX.js → blender-emscripten-engine-Cd6az4pU.js} +1 -1
- package/dist/assets/{blender-node-editor.document-wXJobGNH.js → blender-node-editor.document-BWLFvA2g.js} +1 -1
- package/dist/assets/{blender-properties-tab-7GFf80ev.js → blender-properties-tab-BSmWG9d0.js} +1 -1
- package/dist/assets/{blender-runtime-host-CILxrx5T.js → blender-runtime-host-Cbkie7m4.js} +2 -2
- package/dist/assets/{blender-runtime-skin-Cd5lQYsC.js → blender-runtime-skin-C_ATCb-z.js} +1 -1
- package/dist/assets/{blender-runtime.document-C0r_R49S.js → blender-runtime.document-P9zdgwMt.js} +1 -1
- package/dist/assets/{blender-timeline.document-BaISZMBc.js → blender-timeline.document-DRwySEJO.js} +1 -1
- package/dist/assets/{blender-uv-editor.document-CT_fsyyA.js → blender-uv-editor.document-CmLoL2Vo.js} +1 -1
- package/dist/assets/{blender-version.status-DzEx7u7k.js → blender-version.status-CP4Jqkry.js} +1 -1
- package/dist/assets/{blender-wali-engine-DOiQCBXH.js → blender-wali-engine-CZcS3eAd.js} +1 -1
- package/dist/assets/{blender.command-DdiKd8mZ.js → blender.command-BYGm0Q_s.js} +1 -1
- package/dist/assets/{board-guides-CjHQ9Ynm.js → board-guides-BG-MHK2G.js} +1 -1
- package/dist/assets/{bridge.command-DXUeavn5.js → bridge.command-DpUNErKN.js} +3 -3
- package/dist/assets/{browserAll-Dg46xT22.js → browserAll-DES3i79H.js} +1 -1
- package/dist/assets/{build-player.document-BHwVV3K0.js → build-player.document-B42HrdSU.js} +1 -1
- package/dist/assets/{build-profiles.document-HkpS-Kxa.js → build-profiles.document-Di5CQoH9.js} +1 -1
- package/dist/assets/{build-progress.status-u1J0Rm1D.js → build-progress.status-B4te7-3j.js} +1 -1
- package/dist/assets/{build-session-BLboUUbw.js → build-session-Yw4JoE8T.js} +1 -1
- package/dist/assets/{build.action-C00DL83N.js → build.action-B-DBpUj6.js} +1 -1
- package/dist/assets/{build.command-Cjk_NY75.js → build.command-CfWoHNp0.js} +1 -1
- package/dist/assets/{build.header-BWNmNWFT.js → build.header-BaURztYD.js} +1 -1
- package/dist/assets/{build.menu-BBYtqCIq.js → build.menu-BFBn-dPJ.js} +1 -1
- package/dist/assets/{build.service-DOU15tKN.js → build.service-D8gYWB3n.js} +1 -1
- package/dist/assets/{camera-7DGyYW7Y.js → camera-C-uR_xQp.js} +1 -1
- package/dist/assets/{camera-runtime.inspector-n-jiOR-3.js → camera-runtime.inspector-BOGGEqVq.js} +1 -1
- package/dist/assets/{canvas-design-mount-CSRHU-ag.js → canvas-design-mount-DamLAaWn.js} +3 -3
- package/dist/assets/{canvas-entry-runtime-BST8yRuK.js → canvas-entry-runtime-a6N7Rsrj.js} +2 -2
- package/dist/assets/{canvas-preview-frames-Cja32aW2.js → canvas-preview-frames-XbrKuyJu.js} +1 -1
- package/dist/assets/{canvas-story-capture.service-D5R5HJ8n.js → canvas-story-capture.service-DYRdEzkG.js} +2 -2
- package/dist/assets/{capability-coverage-ByWftxk4.js → capability-coverage-7wKVA3PF.js} +1 -1
- package/dist/assets/{collaboration-presence-D6MC9xJN.js → collaboration-presence-DaVKEfxs.js} +1 -1
- package/dist/assets/{collider-B78EcUc9.js → collider-BEwlgkG5.js} +1 -1
- package/dist/assets/{component-board.service-CkjrsD8x.js → component-board.service-BWSBM2Bb.js} +2 -2
- package/dist/assets/{component-board.service-BaQI5Oas.js → component-board.service-C9ZouakC.js} +2 -2
- package/dist/assets/{component-board.service-Dvjz_g-x.js → component-board.service-D2eGKqHf.js} +2 -2
- package/dist/assets/{component-contracts.service-C3-AXQp7.js → component-contracts.service-D0uElctD.js} +1 -1
- package/dist/assets/{component-instance-root-DLI40MiB.js → component-instance-root-C1Xf4SwR.js} +1 -1
- package/dist/assets/{component-verbs.command-Brr_WcaR.js → component-verbs.command-N-Tj8KOS.js} +1 -1
- package/dist/assets/{component-verbs.service-DC2sC3j3.js → component-verbs.service-CWh4mQ7X.js} +1 -1
- package/dist/assets/{config-BI_7osdR.js → config-hmmj-QHZ.js} +2 -2
- package/dist/assets/{configurations-XP9YLkrt.js → configurations-B9Pi_eRN.js} +1 -1
- package/dist/assets/{connection.status-BhRwcFx0.js → connection.status-C2HPxoww.js} +1 -1
- package/dist/assets/{constraints.inspector-Dm1cycK3.js → constraints.inspector-D-h1f3K2.js} +1 -1
- package/dist/assets/{content-bounds-DROIchTa.js → content-bounds-7UyI42Vj.js} +1 -1
- package/dist/assets/{contract-system-adapters-Cn7OW_ay.js → contract-system-adapters-Bq1LGdjs.js} +1 -1
- package/dist/assets/{coverage.service-l42ty7lr.js → coverage.service-BiBikIsV.js} +1 -1
- package/dist/assets/{create-runtime-B_uTwsmi.js → create-runtime-Cx-q5z2y.js} +1 -1
- package/dist/assets/{curve-THOUsg-j.js → curve-Co_mro-I.js} +1 -1
- package/dist/assets/{data-asset-DAANayR6.js → data-asset-Ckx4D_U_.js} +1 -1
- package/dist/assets/{data-ref-CN34UeVw.js → data-ref-70PUrMuT.js} +1 -1
- package/dist/assets/{debug-bridge-BD1XVAIB.js → debug-bridge-CarsgKpm.js} +1 -1
- package/dist/assets/{debug-registry-ggQWxtu-.js → debug-registry-DgYNlhH_.js} +1 -1
- package/dist/assets/{deferred-ingest-play-B2JUlwlT.js → deferred-ingest-play-Bpdhu2i-.js} +2 -2
- package/dist/assets/{design-time-canvas-mount-as9cN9I6.js → design-time-canvas-mount-Ca9Q75Ui.js} +2 -2
- package/dist/assets/{design-time-layers-BRseeSmV.js → design-time-layers-BIb71snu.js} +1 -1
- package/dist/assets/{design-time-mount.service-BTVu3yKo.js → design-time-mount.service-DL6ZK2TQ.js} +2 -2
- package/dist/assets/{design-time-mount.service-DKvc7lVK.js → design-time-mount.service-zKUVjKAu.js} +2 -2
- package/dist/assets/{design-time-react-mount-C7rB56QD.js → design-time-react-mount-NrWimSxY.js} +1 -1
- package/dist/assets/{document-preview-three-CxmRhCcV.js → document-preview-three-DoDs6q1q.js} +1 -1
- package/dist/assets/{dom-authoring-adapter-L8OzXfmE.js → dom-authoring-adapter-adLQog9l.js} +1 -1
- package/dist/assets/{draco3d-BjNuXv66.js → draco3d-aUvQF1Zx.js} +1 -1
- package/dist/assets/{edit-mode-audio.service-BwI5u845.js → edit-mode-audio.service-CHZ1ultu.js} +1 -1
- package/dist/assets/{edit-mode-authoring-D5f7aHHl.js → edit-mode-authoring-ZQuUwc6e.js} +1 -1
- package/dist/assets/{edit-mode-networking.service-DqP_4lbI.js → edit-mode-networking.service-C7fk2fL1.js} +1 -1
- package/dist/assets/{editor-api-BM7H_F4G.js → editor-api-C8MUOrwt.js} +1 -1
- package/dist/assets/{editor-layers-D-CTUqco.js → editor-layers-CGX7iCSP.js} +1 -1
- package/dist/assets/{editor-shell-store-DHVWS8cE.js → editor-shell-store-BRqB1JZO.js} +1 -1
- package/dist/assets/{entity-object-MKYemTFM.js → entity-object--ZpqIat7.js} +1 -1
- package/dist/assets/{extend-BrgqZiMY.js → extend-BZQIQ18F.js} +1 -1
- package/dist/assets/{fork-menu-DE2MK3Nq.js → fork-menu-CziehkPx.js} +1 -1
- package/dist/assets/{frame-debugger-store-BXoLKTdZ.js → frame-debugger-store-BOQjrPsh.js} +1 -1
- package/dist/assets/{game-contract-seams-tyKDsfaP.js → game-contract-seams-Dgqv6S8X.js} +1 -1
- package/dist/assets/{game-css-scope-transform-DcjrwtVc.js → game-css-scope-transform-anfk8vP_.js} +1 -1
- package/dist/assets/{game-document.service-CTb2itHQ.js → game-document.service-CqmgrRUA.js} +1 -1
- package/dist/assets/game-eval.command-CoetFm6_.js +2 -0
- package/dist/assets/{game-module-access-BTInp2NG.js → game-module-access-Cg1EB8Mx.js} +1 -1
- package/dist/assets/{game-network-DW5ARz4R.js → game-network-BqI-Ehz0.js} +3 -3
- package/dist/assets/{gameplay-export-cHk3v9y-.js → gameplay-export-D0hZoeSg.js} +1 -1
- package/dist/assets/{gameplay-replay-HRenPTtU.js → gameplay-replay-BHz6VAVa.js} +1 -1
- package/dist/assets/{gameplay.command-DcY2lKKX.js → gameplay.command-CPc9GKuW.js} +1 -1
- package/dist/assets/{generation-jobs-CJBehuUp.js → generation-jobs-D-zXQNZI.js} +1 -1
- package/dist/assets/{generation.service-BMOc-C9i.js → generation.service-Bwt9lQEG.js} +1 -1
- package/dist/assets/{generations-ssgVOe_6.js → generations-d-U9lCVo.js} +1 -1
- package/dist/assets/{generations.status-B_SmPReI.js → generations.status-BQ8xhaLN.js} +1 -1
- package/dist/assets/{hierarchy-marks-BuCO8Ke-.js → hierarchy-marks-CndAXtie.js} +1 -1
- package/dist/assets/{hosted-asset-materialization-CiXZI85V.js → hosted-asset-materialization-r2vKfJGY.js} +1 -1
- package/dist/assets/{index-CfpGZrbC.js → index-BPVnvJfX.js} +1 -1
- package/dist/assets/{index-BweKDdi_.js → index-BqzpzjSB.js} +1 -1
- package/dist/assets/{index-Bm4_DmRO.js → index-CMU7lnXk.js} +1 -1
- package/dist/assets/{index-C5ZAyrKq.js → index-Cr9NTnJp.js} +8 -8
- package/dist/assets/{index-Czvj6whv.js → index-DSMLYme2.js} +1 -1
- package/dist/assets/{index-B0S4fQQV.js → index-DoGlzvsX.js} +1 -1
- package/dist/assets/{index-BvBlIRwM.js → index-dlvCCB72.js} +1 -1
- package/dist/assets/{index-B9bd4k-t.js → index-xjc_62Ha.js} +1 -1
- package/dist/assets/{index-DgPDGGSV.js → index-z0_InXxO.js} +2 -2
- package/dist/assets/{inference-diagnostics-DLt9ql9I.js → inference-diagnostics-D5jfxI5p.js} +1 -1
- package/dist/assets/{ingest-boot-viewport-BXVXjYpG.js → ingest-boot-viewport-Be0v44yf.js} +1 -1
- package/dist/assets/{ingest-siblings-DWJ7OGB_.js → ingest-siblings-BowXSozE.js} +1 -1
- package/dist/assets/{ingest-source-persistence-6ShMoSCa.js → ingest-source-persistence-BGIvThcv.js} +1 -1
- package/dist/assets/{ingest.service-BBbX8ibg.js → ingest.service-wVm-ZcTI.js} +1 -1
- package/dist/assets/{inspect-Cz3Zyx_1.js → inspect-CN92MgRT.js} +1 -1
- package/dist/assets/instances.command-B6gJuL1Z.js +1 -0
- package/dist/assets/{json-history-resource-Uqrihfc8.js → json-history-resource-C9G_vCX9.js} +1 -1
- package/dist/assets/{layered-pick-CAVQMPI7.js → layered-pick-D9tIz_m7.js} +1 -1
- package/dist/assets/{light-CqzsCWeJ.js → light-BGbl1a8K.js} +1 -1
- package/dist/assets/{live-project-verbs-CdFmLYOo.js → live-project-verbs-p1sdTwhF.js} +1 -1
- package/dist/assets/{machine.document-DRIFOVaa.js → machine.document-C1acXU7l.js} +1 -1
- package/dist/assets/{machines.finder-DPCT6few.js → machines.finder-sOxNTYPx.js} +1 -1
- package/dist/assets/{material-BVApn1V_.js → material-D7289cYI.js} +1 -1
- package/dist/assets/{material-factory-B_75xxFD.js → material-factory-D0T-DH8c.js} +1 -1
- package/dist/assets/{mesh-DdA3mExo.js → mesh-1A-HHxD6.js} +1 -1
- package/dist/assets/{model-asset-sections.service-CJnSIckZ.js → model-asset-sections.service-DF-mllTL.js} +1 -1
- package/dist/assets/{model-inspection-DvspbmJl.js → model-inspection-CuVwNVvv.js} +1 -1
- package/dist/assets/{model-thumbnail-BmQs-h6t.js → model-thumbnail-xm1Fabi2.js} +1 -1
- package/dist/assets/{models.finder-Qv_Hsccy.js → models.finder-DrvU1qGk.js} +1 -1
- package/dist/assets/{module-mode-MJ4Gbsry.js → module-mode-BHOAAbgO.js} +2 -2
- package/dist/assets/{mount-canvas-ingest-root-BxtM8OaB.js → mount-canvas-ingest-root-aVZkVNh4.js} +2 -2
- package/dist/assets/{mount-dom-ingest-root-pGatqO46.js → mount-dom-ingest-root-eOOGPaxi.js} +2 -2
- package/dist/assets/{mount-ingest-root-C7jb-mCl.js → mount-ingest-root-BsWbEvr_.js} +2 -2
- package/dist/assets/{mount-manifest-BfoHBuzn.js → mount-manifest-t6ipNsoF.js} +1 -1
- package/dist/assets/{mount-three-ingest-root-Boa5mcaF.js → mount-three-ingest-root-DIR0wKrN.js} +1 -1
- package/dist/assets/{mounted-authoring-DxMISwvR.js → mounted-authoring-DX3DC9PJ.js} +1 -1
- package/dist/assets/{mounted-story-viewport-source-DfnLxI1f.js → mounted-story-viewport-source-D8FqGpci.js} +1 -1
- package/dist/assets/{native-debug-module-BlrALjM3.js → native-debug-module-CB738yQu.js} +1 -1
- package/dist/assets/{navigation-CqG5o5AR.js → navigation-B9ihB0qU.js} +1 -1
- package/dist/assets/{navmesh.menu-D4TdVDhe.js → navmesh.menu-CPxr9LPT.js} +1 -1
- package/dist/assets/{navmesh.service-DWKT5ruQ.js → navmesh.service-BAtili_Y.js} +1 -1
- package/dist/assets/network-observer.service-CqTuZNtI.js +1 -0
- package/dist/assets/{network.utility-DjeOEvAY.js → network.utility-CclYEmfV.js} +1 -1
- package/dist/assets/{object3d-document-session-registry-CMRJdFp6.js → object3d-document-session-registry-BWeuL0nf.js} +2 -2
- package/dist/assets/{oid-transform-DaA6yW6o.js → oid-transform-BYeAsBKI.js} +1 -1
- package/dist/assets/{particles-DsQRcDBY.js → particles-BXiQDiB-.js} +1 -1
- package/dist/assets/{pixi-authoring-adapter-BoBt8bB5.js → pixi-authoring-adapter-CPsN0Yk7.js} +1 -1
- package/dist/assets/{pixi-live-write-target-CYZgvC6U.js → pixi-live-write-target-BUbt5ixX.js} +1 -1
- package/dist/assets/{play.command-D9JGJP-e.js → play.command-Bz5Ra6Uj.js} +2 -2
- package/dist/assets/{presentation-COhHQdmR.js → presentation-C7ZHYsKF.js} +1 -1
- package/dist/assets/{product-CaRGoiIH.js → product-MSpbAqgo.js} +1 -1
- package/dist/assets/{profiler.action-Cz7HYWjh.js → profiler.action-1Jbc-7Q4.js} +1 -1
- package/dist/assets/{profiler.menu-D5aR_FBy.js → profiler.menu-C544DxWZ.js} +1 -1
- package/dist/assets/{profiler.utility-KwxlIPKb.js → profiler.utility-QnzedS3X.js} +1 -1
- package/dist/assets/{project-authoring-session-DKXHVwxO.js → project-authoring-session-BhNfg7TY.js} +2 -2
- package/dist/assets/{properties-bone-constraints.inspector-Bo-sU8eR.js → properties-bone-constraints.inspector-DRCPfugt.js} +1 -1
- package/dist/assets/{properties-bone.inspector-BQiWplQv.js → properties-bone.inspector-CYHeZX0p.js} +1 -1
- package/dist/assets/{properties-collection.inspector-C5BnR-GE.js → properties-collection.inspector-DtGhPkiU.js} +1 -1
- package/dist/assets/{properties-constraints.inspector-CyheU12R.js → properties-constraints.inspector-TIyIV777.js} +1 -1
- package/dist/assets/{properties-data.inspector-CkycARja.js → properties-data.inspector-vA0MTaup.js} +1 -1
- package/dist/assets/{properties-material.inspector-Bl_PUmY-.js → properties-material.inspector-C73spBQh.js} +1 -1
- package/dist/assets/{properties-modifiers.inspector-j7SnOxQq.js → properties-modifiers.inspector-9oyLBBE0.js} +1 -1
- package/dist/assets/{properties-object.inspector-DcR3MGLK.js → properties-object.inspector-7BuiUgbd.js} +1 -1
- package/dist/assets/{properties-output.inspector-BLjw6K4b.js → properties-output.inspector-CjYAggz2.js} +1 -1
- package/dist/assets/{properties-particles.inspector-BUIm2-Jf.js → properties-particles.inspector-DpSfjykX.js} +1 -1
- package/dist/assets/{properties-physics.inspector-DNvRcxb6.js → properties-physics.inspector-BUTvmfU9.js} +1 -1
- package/dist/assets/{properties-render.inspector-8FMZ-qoZ.js → properties-render.inspector-CEdsDqbI.js} +1 -1
- package/dist/assets/{properties-scene.inspector-Dx7_z75k.js → properties-scene.inspector-4kp0sLNw.js} +1 -1
- package/dist/assets/{properties-texture.inspector-WT15951-.js → properties-texture.inspector-Ckpqy9eo.js} +1 -1
- package/dist/assets/{properties-view-layer.inspector-P7VNTdqr.js → properties-view-layer.inspector-CQIFbY8-.js} +1 -1
- package/dist/assets/{properties-world.inspector-B3t1q8TF.js → properties-world.inspector-xZgNV6rI.js} +1 -1
- package/dist/assets/{r3f-design-session-lsbFnoWH.js → r3f-design-session-D8VF-hty.js} +2 -2
- package/dist/assets/{r3f-physics-binding-Cx8yhuwt.js → r3f-physics-binding-oippu1v_.js} +1 -1
- package/dist/assets/{r3f-source-authoring-adapter-jH3G0TeH.js → r3f-source-authoring-adapter-CZJX6VLM.js} +1 -1
- package/dist/assets/{react-canvas-navigation-B_gOe3CI.js → react-canvas-navigation-DuzvnFoN.js} +1 -1
- package/dist/assets/{react-inspector.service-CZf1vfdX.js → react-inspector.service-CV4p6nrb.js} +1 -1
- package/dist/assets/{react-story-board-CCm2Opwn.js → react-story-board-mhldts6w.js} +1 -1
- package/dist/assets/{react-three-rapier.esm-CHXGG51p.js → react-three-rapier.esm-Bo9LjrZe.js} +1 -1
- package/dist/assets/{react-world-authoring-adapter-CnzxMtYz.js → react-world-authoring-adapter-CuyruDfq.js} +1 -1
- package/dist/assets/{realm-services-Do9J6nsb.js → realm-services-BtiLE3a-.js} +1 -1
- package/dist/assets/{reflection-probe-capture.inspector-BAjjIybz.js → reflection-probe-capture.inspector-mrrOHs-9.js} +1 -1
- package/dist/assets/{registry-Xnduk02T.js → registry-DpUr2YIM.js} +1 -1
- package/dist/assets/{relative-import-specifier-CPFTrxi4.js → relative-import-specifier-CyT6yU4l.js} +1 -1
- package/dist/assets/{render-env-YJlI8K0i.js → render-env-C63BGT5v.js} +1 -1
- package/dist/assets/{render-features-DMSV2qKJ.js → render-features-CBl6rom9.js} +1 -1
- package/dist/assets/{render-settings-CRyDhHyz.js → render-settings-DjarlnjI.js} +1 -1
- package/dist/assets/{resolve-three-D27rMc37.js → resolve-three-OiswFiIS.js} +4 -4
- package/dist/assets/{root-seam-contract-gjWUd5uu.js → root-seam-contract-BYLQx4CQ.js} +1 -1
- package/dist/assets/{run-selection-B0jOdyYt.js → run-selection-BMu0v3qC.js} +1 -1
- package/dist/assets/{scene-capture-Di9cM1p4.js → scene-capture-BLf3lJ44.js} +1 -1
- package/dist/assets/{scene-document.service-XxGs4HHE.js → scene-document.service-CjPDph5k.js} +2 -2
- package/dist/assets/{scene-framing-DkZKDwH3.js → scene-framing-BhNk0WhI.js} +1 -1
- package/dist/assets/{seeded-random-BJthDRMu.js → seeded-random-DmdE0u-C.js} +1 -1
- package/dist/assets/{session-x8E_NJk2.js → session-CeyQA0Dv.js} +1 -1
- package/dist/assets/{setup-renderer-F9mG7t6r.js → setup-renderer-Bf8g2S0f.js} +1 -1
- package/dist/assets/{source-object3d-authoring-adapter-CvmFpSUj.js → source-object3d-authoring-adapter-IDRws2Nk.js} +1 -1
- package/dist/assets/{source-persistence-backend-au3WtEn6.js → source-persistence-backend-Dzc6MsmN.js} +1 -1
- package/dist/assets/{stage-keyboard-BQkndG_D.js → stage-keyboard-CpnIYiph.js} +1 -1
- package/dist/assets/{stage-overlay-set-g6eWhuRv.js → stage-overlay-set-BrJzOTCe.js} +1 -1
- package/dist/assets/{stage-presence-markers-0CDfO5f4.js → stage-presence-markers-BFTl9Djp.js} +1 -1
- package/dist/assets/{stage-transform-tools-BzPl7OIo.js → stage-transform-tools-QaenmSrC.js} +1 -1
- package/dist/assets/{standard-viewport-dressing-BW-dM_1h.js → standard-viewport-dressing-DuKH01r4.js} +1 -1
- package/dist/assets/{state-watch.action-Z1nQ5awu.js → state-watch.action-BaRZ6YII.js} +1 -1
- package/dist/assets/{state-watch.menu-CQHGUF3W.js → state-watch.menu-DR2AtQ6r.js} +1 -1
- package/dist/assets/{state-watch.utility-DCIg2i79.js → state-watch.utility-VW8H9Fgi.js} +1 -1
- package/dist/assets/{story-capture-BIrjDKeY.js → story-capture-BEVV48wm.js} +1 -1
- package/dist/assets/{story-documents-BvG2xeaR.js → story-documents-DndjqJ7Y.js} +1 -1
- package/dist/assets/{story-documents.service-y1m7XGMJ.js → story-documents.service-CPrZ7gRM.js} +1 -1
- package/dist/assets/{story-documents.service-DOSEa3ja.js → story-documents.service-wCVmBPhh.js} +1 -1
- package/dist/assets/{story-media-presence-HLV-KaMj.js → story-media-presence-BSX78yVJ.js} +1 -1
- package/dist/assets/{story-pixi-preview-CMhho2gG.js → story-pixi-preview-D4FuH7lJ.js} +1 -1
- package/dist/assets/{story-presentation-CYhVv8Ku.js → story-presentation-2AxtnKGb.js} +1 -1
- package/dist/assets/{story-three-preview-CgcLF5lE.js → story-three-preview-DjObHSAF.js} +2 -2
- package/dist/assets/{studio-environment-R9qXUUcC.js → studio-environment-B--4k2mN.js} +1 -1
- package/dist/assets/{surface-state-D8Qnowo6.js → surface-state-CQHVfsma.js} +1 -1
- package/dist/assets/{syntactic-prop-specs-8gkBuc5j.js → syntactic-prop-specs-CewRyC4c.js} +1 -1
- package/dist/assets/{team-playtest.service-BBMZ2iyk.js → team-playtest.service-B9m6CNk7.js} +1 -1
- package/dist/assets/{three-DiL6vMXq.js → three-B86IzdNg.js} +1 -1
- package/dist/assets/{three-authoring-adapter-CkLR2zGf.js → three-authoring-adapter-BD8_MtYK.js} +1 -1
- package/dist/assets/three-authoring.service-BjJ9wetk.js +2 -0
- package/dist/assets/{three-ingest-runtime-CwTqAHgX.js → three-ingest-runtime-CXySzulx.js} +1 -1
- package/dist/assets/{three-integration-DXOFI88n.js → three-integration-nl5TC6EF.js} +2 -2
- package/dist/assets/three-integration.service-BEk5QkKM.js +1 -0
- package/dist/assets/{three-projection-core-B7Lf8tOp.js → three-projection-core-D4m8lsPU.js} +1 -1
- package/dist/assets/{three-state-BCACvUtm.js → three-state-C36FeFK4.js} +1 -1
- package/dist/assets/{three-story-capture.service-rTFKNtHA.js → three-story-capture.service-C0icETyL.js} +2 -2
- package/dist/assets/{three-story-model-BjKr7OMn.js → three-story-model-CqWu9S2a.js} +1 -1
- package/dist/assets/{three-viewport-presentation-CBzvc2v2.js → three-viewport-presentation-CCMgGLI2.js} +1 -1
- package/dist/assets/tools-BnE3UWVA.js +1 -0
- package/dist/assets/{transform-mode-request-DlEApNrA.js → transform-mode-request-CIgYj1Qb.js} +1 -1
- package/dist/assets/{transport-strip-xCg94CuI.js → transport-strip-B1AJKpn-.js} +1 -1
- package/dist/assets/transport.header-D-n6dQ5n.js +1 -0
- package/dist/assets/{tuples-BDz3wbQL.js → tuples-uyiMYXrv.js} +1 -1
- package/dist/assets/{ui-board-document-DvbK_HVN.js → ui-board-document-6e4w4a8B.js} +2 -2
- package/dist/assets/{user-data-C84W0V47.js → user-data-BXFD1jg-.js} +1 -1
- package/dist/assets/{utility-view-state-CDRxZSo-.js → utility-view-state-I_o0WThv.js} +1 -1
- package/dist/assets/{viewport-door-BARIpMu-.js → viewport-door-AsLxGhLN.js} +1 -1
- package/dist/assets/{viewport-root-presentation-hRLF0BeO.js → viewport-root-presentation-B1qtThOB.js} +1 -1
- package/dist/assets/{viewport-surface-status-TUfhXKR9.js → viewport-surface-status-CWmQeKTO.js} +1 -1
- package/dist/assets/{webworkerAll-PJtcQ1FD.js → webworkerAll-DC445ANd.js} +1 -1
- package/dist/assets/{worker-BtXrsgFy.js → worker-jepHAPPr.js} +1 -1
- package/dist/assets/{workspace-arrangement-DqG5sUns.js → workspace-arrangement-dkubzCff.js} +1 -1
- package/dist/assets/{world-documents-D69XaqUX.js → world-documents-psBK5u_2.js} +1 -1
- package/dist/assets/{world-root-stage-binding-BgZWZEuD.js → world-root-stage-binding-BrvO8VMz.js} +1 -1
- package/dist/assets/{xstate-animation-binding-CIyLzGHs.js → xstate-animation-binding-ChVFHSlM.js} +1 -1
- package/dist/assets/{xstate-animation-meta-CbYWup3R.js → xstate-animation-meta-D7xnhyCE.js} +1 -1
- package/dist-node/cli.js +42 -42
- package/dist-node/create.js +5 -5
- package/package.json +16 -16
- package/template/.agents/references/project-manual.md +1 -2
- package/template/.agents/skills/editor/SKILL.md +2 -2
- package/template/.agents/skills/editor/agents/openai.yaml +3 -3
- package/template/.agents/skills/editor/references/editor-control.md +1 -1
- package/template/.agents/skills/volter-ingest-existing-game/SKILL.md +1 -1
- package/template/.agents/skills/volter-threejs-authoring/SKILL.md +4 -4
- package/template/.agents/skills/volter-threejs-authoring/agents/openai.yaml +1 -1
- package/template/.claude/skills/editor/SKILL.md +2 -2
- package/template/.claude/skills/editor/agents/openai.yaml +3 -3
- package/template/.claude/skills/editor/references/editor-control.md +1 -1
- package/template/.claude/skills/volter-ingest-existing-game/SKILL.md +1 -1
- package/template/.claude/skills/volter-threejs-authoring/SKILL.md +4 -4
- package/template/.claude/skills/volter-threejs-authoring/agents/openai.yaml +1 -1
- package/template/.github/copilot-instructions.md +1 -1
- package/template/.github/skills/editor/SKILL.md +2 -2
- package/template/.github/skills/editor/agents/openai.yaml +3 -3
- package/template/.github/skills/editor/references/editor-control.md +1 -1
- package/template/.github/skills/volter-ingest-existing-game/SKILL.md +1 -1
- package/template/.github/skills/volter-threejs-authoring/SKILL.md +4 -4
- package/template/.github/skills/volter-threejs-authoring/agents/openai.yaml +1 -1
- package/template/AGENTS.md +3 -4
- package/template/README.md +2 -3
- package/template/check-idioms.ts +26 -50
- package/template/package.json +10 -10
- package/template/server/colyseus-setup.ts +1 -9
- package/template/server/main.ts +0 -5
- package/template/server/rooms/arena-room.ts +2 -2
- package/template/server/rooms/game-room.ts +2 -2
- package/template/server/rooms.ts +1 -3
- package/template/src/net/NetworkedPlayers.tsx +3 -3
- package/template/vite.config.ts +1 -1
- package/template-dotfiles/gitignore +1 -1
- package/dist/assets/InspectorObjectPreview-CY5xVsPR.js +0 -1
- package/dist/assets/Object3DDocumentViewport-D6QoHfa_.js +0 -2
- package/dist/assets/active-ingest-0QjJWb7i.js +0 -3
- package/dist/assets/autoplay.service-BZLSUyL8.js +0 -1
- package/dist/assets/game-eval.command-CpDKXOQU.js +0 -2
- package/dist/assets/instances.command-BrdlngrL.js +0 -1
- package/dist/assets/network-observer.service-ZRAquNq4.js +0 -1
- package/dist/assets/three-authoring.service-CovhlCGx.js +0 -2
- package/dist/assets/three-integration.service-rCAqpqSp.js +0 -1
- package/dist/assets/tools-DfctM216.js +0 -1
- package/dist/assets/transport.header-BRtdky0x.js +0 -1
- package/template/server/loopback.ts +0 -76
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/game-css-scope-transform-DcjrwtVc.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-C5ZAyrKq.js","assets/index-nmcBqr7Y.js","assets/index-D_NuPfjr.js","assets/jsx-runtime-DPjLkJKQ.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{_ as se,m0 as Fe,m1 as He,m2 as De,O as P,m3 as je,j8 as ze,I as Ne,a5 as pe,jE as Be,bt as W,bu as O,bv as q,bx as We}from"./index-C5ZAyrKq.js";import{GAME_SCENES_SHAPE as Oe}from"./game-contract-seams-tyKDsfaP.js";import{g as qe,c as Ve,d as Ue,e as Ke,S as Ye}from"./capability-coverage-ByWftxk4.js";import{i as Qe,b as Je,l as Xe}from"./ingest-source-persistence-6ShMoSCa.js";import{p as Ze}from"./contract-system-adapters-Cn7OW_ay.js";const rn="contain: layout; font: initial; color: initial; letter-spacing: normal; word-spacing: normal; text-align: start; text-indent: 0; text-transform: none; white-space: normal; direction: ltr; cursor: auto; visibility: visible;";function ae(e){return typeof e=="boolean"?e:e?.capture??!1}const ie="volterScopedCss";let le=null;function et(){return le??=Promise.all([se(()=>import("./game-css-scope-transform-DcjrwtVc.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),se(()=>import("./index-C5ZAyrKq.js").then(e=>e.tX),__vite__mapDeps([2,3,1,4,5,6,7,8,9,10]))]).then(([{scopeGameCss:e},{GAME_CSS_SCOPE_SELECTOR:t}])=>n=>e({css:n,scopeSelector:t,styleSheetPath:"/"})),le}function tt(e){let t=null;const n=()=>et().then(i=>{t=i}),o=i=>{const g=i.textContent??"";if(g.length===0||i.dataset[ie]===g)return;if(!t){const y=g;i.textContent="",n().then(()=>{i.isConnected&&(i.textContent??"")===""&&(i.textContent=y,o(i))});return}let h;try{h=t(g)}catch{i.textContent="";return}i.dataset[ie]=h,i.textContent=h},a=i=>{if(i instanceof HTMLStyleElement)return i;const g=i.parentElement;return g instanceof HTMLStyleElement?g:null},u=new MutationObserver(i=>{const g=new Set;for(const h of i)if(h.type==="childList")for(const y of h.addedNodes){const w=a(y);if(w)g.add(w);else if(y instanceof Element)for(const d of y.querySelectorAll("style"))g.add(d)}else if(h.type==="characterData"){const y=a(h.target);y&&g.add(y)}for(const h of g)h.isConnected&&o(h)});u.observe(e,{childList:!0,subtree:!0,characterData:!0});for(const i of e.querySelectorAll("style"))o(i);return u}class nt{surfaceElement=null;injectedStyles=null;get surface(){return this.surfaceElement}set surface(t){this.injectedStyles?.disconnect(),this.injectedStyles=null,this.surfaceElement=t,t&&(this.injectedStyles=tt(t))}pageTitle="";executingClassicScript=null;headElement=null;resizeBus=new EventTarget;resizeListeners=new Map;addResizeListener(t,n){let o=this.resizeListeners.get(t);o||(o=new Set,this.resizeListeners.set(t,o)),o.add(ae(n)),this.resizeBus.addEventListener("resize",t,n)}removeResizeListener(t,n){const o=this.resizeListeners.get(t);o&&(o.delete(ae(n)),o.size===0&&this.resizeListeners.delete(t)),this.resizeBus.removeEventListener("resize",t,n)}get gameResizesItself(){return this.resizeListeners.size>0}reset(){this.headElement?.remove(),this.headElement=null,this.pageTitle="",this.executingClassicScript=null,this.surface=null,this.resizeListeners.clear(),this.resizeBus=new EventTarget}dispatchResize(){this.resizeBus.dispatchEvent(new Event("resize"))}viewport(){const t=this.surface;return t?{width:t.clientWidth,height:t.clientHeight}:null}get title(){return this.pageTitle}set title(t){this.pageTitle=String(t)}get currentScript(){return this.executingClassicScript}withCurrentScript(t,n){const o=this.executingClassicScript,a=document.createElement("script");a.src=t,this.executingClassicScript=a;try{return n()}finally{this.executingClassicScript=o}}head(){const t=this.surface;if(!t)return null;if(!this.headElement||this.headElement.parentElement!==t){const n=document.createElement("div");n.dataset.volterGameHead="",n.hidden=!0,t.prepend(n),this.headElement=n}return this.headElement}}function rt(e){const t=`(__volterHost.__volterGameRealm?__volterHost.__volterGameRealm(${JSON.stringify("")}):null)`;return ot.replace("__VOLTER_REALM__",t)}const ot=`const __volterHost=({}).constructor.constructor('return globalThis')(),__volterR=__VOLTER_REALM__,__volterGlobal=((__volterR&&__volterR.globalThis)||__volterHost.__volterGameWindow||__volterHost),globalThis=__volterGlobal,__volterSched=((__volterR&&__volterR.timers)||__volterHost.__volterGameTimers||__volterHost),__volterBind=function(n){var f=__volterSched[n];return typeof f==='function'?f.bind(__volterSched):f;},console=((__volterR&&__volterR.console)||__volterHost.__volterGameConsole||__volterHost.console),window=((__volterR&&__volterR.window)||__volterHost.__volterGameWindow||__volterGlobal.window),document=((__volterR&&__volterR.document)||__volterHost.__volterGameDocument||__volterGlobal.document),__volterWindowBind=function(n){var f=window&&window[n];return typeof f==='function'?f.bind(window):f;},localStorage=(window&&window.localStorage),sessionStorage=(window&&window.sessionStorage),location=(window&&window.location),addEventListener=__volterWindowBind('addEventListener'),removeEventListener=__volterWindowBind('removeEventListener'),dispatchEvent=__volterWindowBind('dispatchEvent'),fetch=function(){var f=__volterHost.__volterProjectFetch;return f?f.apply(null,arguments):__volterHost.fetch.apply(__volterHost,arguments)},setTimeout=__volterBind('setTimeout'),clearTimeout=__volterBind('clearTimeout'),setInterval=__volterBind('setInterval'),clearInterval=__volterBind('clearInterval'),requestAnimationFrame=__volterBind('requestAnimationFrame'),cancelAnimationFrame=__volterBind('cancelAnimationFrame');
|
|
3
|
-
`,on=rt(),st=new Set(["href","protocol","host","hostname","port","pathname","search"]),at=new Set(["assign","replace","reload"]),it=new Set(["play","project","hub","scene","ingest","create-from","checkout_id"]);function lt(e){return it.has(e)||e.startsWith("volter")}function _e(e){const t=e.startsWith("?")?e.slice(1):e;if(!t)return"";const n=new URLSearchParams;for(const[a,u]of new URLSearchParams(t))lt(a)||n.append(a,u);const o=n.toString();return o.length>0?`?${o}`:""}function ct(e){try{const t=new URL(e);return t.search=_e(t.search),t.href}catch{return e}}function ut(e,t,n){const o=Object.create(null);return new Proxy(o,{get(a,u){if(typeof u=="string"&&at.has(u))return(...g)=>{u==="reload"&&n?.reloadGame?.()||t(`location.${u}(${g.map(h=>String(h)).join(", ")})`)};if(u==="search")return _e(String(Reflect.get(e,"search")??""));if(u==="href")return ct(String(Reflect.get(e,"href")??""));const i=Reflect.get(e,u);return typeof i=="function"?i.bind(e):i},set(a,u,i){return typeof u=="string"&&st.has(u)?(t(`location.${u} = ${String(i)}`),!0):Reflect.set(e,u,i)},has(a,u){return Reflect.has(e,u)}})}function dt(e){return`Ingested game attempted to navigate the editor away (${e}) — refused. A game running in-realm shares the editor's document, so leaving it would take the whole session with it; game code sees a scoped \`location\` facade whose reads pass through and whose navigating writes do not (packages/editor/src/game-location-guard.ts).`}function ft(e){let t=0,n=0;const o=Object.create(Object.getPrototypeOf(e)),a=w=>(t+=1,e.getItem(String(w))),u=(w,d)=>{n+=1,e.setItem(String(w),String(d))},i=w=>{n+=1,e.removeItem(String(w))},g=()=>{n+=1,e.clear()},h=w=>(t+=1,e.key(Number(w)));return{storage:new Proxy(o,{get(w,d){return d==="length"?(t+=1,e.length):d==="getItem"?a:d==="setItem"?u:d==="removeItem"?i:d==="clear"?g:d==="key"?h:d===Symbol.toStringTag?"Storage":typeof d=="string"?a(d)??void 0:Reflect.get(o,d,o)},set(w,d,p){return typeof d!="string"?Reflect.set(o,d,p,o):(u(d,String(p)),!0)},deleteProperty(w,d){return typeof d!="string"?Reflect.deleteProperty(o,d):(i(d),!0)},defineProperty(w,d,p){return typeof d!="string"||!("value"in p)?!1:(u(d,String(p.value)),!0)},has(w,d){return typeof d!="string"?Reflect.has(o,d):d in o?!0:a(d)!==null},ownKeys(){const w=[];for(let d=0;d<e.length;d+=1){const p=e.key(d);p!==null&&w.push(p)}return w},getOwnPropertyDescriptor(w,d){if(typeof d!="string")return;const p=e.getItem(d);return p===null?void 0:{configurable:!0,enumerable:!0,value:p,writable:!0}}}),stats:()=>({reads:t,writes:n})}}function mt(e){return!e||e.loop!=="gated"&&e.loop!=="self-driven"?null:{verdict:e.loop,evidence:e.evidence}}function gt(e){let t="open",n=0,o=0,a=0,u=0,i=0,g=0,h=0,y=0,w=!1;const d=[],p=new Set,T=new Set,I=new Set,S=new Map,A=()=>(t==="held"?h:e.now())-y,c=m=>{a++,t==="held"&&u++;try{m.run()}catch(_){e.setTimeout(()=>{throw _},0)}},f=()=>{const m=d.splice(0,d.length);S.clear();for(const _ of m)c(_)},s=m=>{d.push(m)},r=m=>()=>{if(t==="held"){s(m);return}c(m)},l=()=>{t!=="held"&&(h=e.now(),t="held")},v=()=>{t==="held"&&(y+=e.now()-h)};return{schedulers:{setTimeout(m,_,...E){if(o++,w)return-1;const R={run:()=>m(...E)};let L=-1;const C=r(R);return L=e.setTimeout(()=>{p.delete(L),C()},_),p.add(L),R.timerId=L,L},clearTimeout(m){e.clearTimeout(m),p.delete(m);const _=d.findIndex(E=>E.timerId===m);_!==-1&&d.splice(_,1)},setInterval(m,_,...E){if(o++,w)return-1;let R=-1;const L=()=>{const C={run:()=>m(...E)};if(t==="held"){const re=S.get(R);if(re){const oe=d.indexOf(re);oe!==-1&&d.splice(oe,1)}S.set(R,C),s(C);return}c(C)};return R=e.setInterval(L,_),T.add(R),R},clearInterval(m){e.clearInterval(m),T.delete(m);const _=S.get(m);if(_){S.delete(m);const E=d.indexOf(_);E!==-1&&d.splice(E,1)}},requestAnimationFrame(m){if(o++,w)return-1;const _={run:()=>m(A())};let E=-1;const R=r(_);return E=e.requestAnimationFrame(()=>{I.delete(E),R()}),I.add(E),_.frameId=E,E},cancelAnimationFrame(m){e.cancelAnimationFrame(m),I.delete(m);const _=d.findIndex(E=>E.frameId===m);_!==-1&&d.splice(_,1)}},hold:l,release(){w||(v(),t="open",f())},step(m=1){if(!w){for(v(),n=m>0?m:1,t="step";n>0&&d.length>0;)n--,f();t="held",h=e.now()}},stats(){return{mode:t,pending:d.length,requests:o,fired:a,firedWhileHeld:u,activeTimeouts:p.size,activeIntervals:T.size,activeAnimationFrames:I.size,input:i,inputBlocked:g}},recordInput(m){i++,m&&g++},dispose(){if(w)return{timeouts:0,intervals:0,animationFrames:0,parkedCallbacks:0};w=!0;const m={timeouts:p.size,intervals:T.size,animationFrames:I.size,parkedCallbacks:d.length};for(const _ of p)e.clearTimeout(_);for(const _ of T)e.clearInterval(_);for(const _ of I)e.cancelAnimationFrame(_);return p.clear(),T.clear(),I.clear(),d.length=0,S.clear(),n=0,t="held",h=e.now(),m}}}async function sn(e){const t=e.windowMs??1500,n=Math.max(1,Math.min(e.sampleMs??50,t)),o=e.sleep??(T=>new Promise(I=>setTimeout(I,T))),a=e.gate;if(!a)return{loop:"self-driven",reason:"no same-realm loop gate is installed, so nothing here controls this game’s scheduling",evidence:{pendingWhileHeld:0,firedWhileHeld:0,progressBefore:0,progressAfter:0,windowMs:t}};const u=a.stats(),i=e.progress();let g=u,h=i,y=u.pending,w=u.mode==="held";for(let T=0;T<t;T+=n)if(await o(Math.min(n,t-T)),g=a.stats(),h=e.progress(),y=Math.max(y,g.pending),g.mode!=="held"){w=!1;break}const d=g.firedWhileHeld-u.firedWhileHeld,p={pendingWhileHeld:y,firedWhileHeld:d,progressBefore:i,progressAfter:h,windowMs:t};return!w||g.mode!=="held"?{loop:"unmeasured",reason:"the gate was not held for the whole probe window — something else released it, so control was not measured",evidence:p}:d>0?{loop:"self-driven",reason:`${d} gated callback(s) ran while the gate was held — the gate leaked, so it cannot claim control`,evidence:p}:h>i?{loop:"self-driven",reason:`the game kept rendering while its scheduling was withheld (frame ${i} → ${h} in ${t}ms) — something outside this gate drives its loop`,evidence:p}:y===0?{loop:"unmeasured",reason:"nothing was due while the gate was held, so it withheld nothing and the probe learned nothing about this loop — note a hidden or backgrounded tab schedules no frames at all, which is a fact about the TAB, never about the game",evidence:p}:{loop:"gated",reason:`verified: ${y} scheduled callback(s) withheld, none ran, and no frame advanced in ${t}ms of held time`,evidence:p}}let V=null;function ht(){return V}const z=new Set(["keydown","keyup","keypress","mousedown","mouseup","mousemove","click","dblclick","contextmenu","wheel","pointerdown","pointerup","pointermove","pointercancel","touchstart","touchmove","touchend","touchcancel"]);function Se(e){const t=new Set,n=new WeakSet,o=((a,u)=>{const i=vt(a,u),g=yt(a,u);if(e()){for(const y of i)t.add(y);for(const y of g)t.delete(y);return!1}if(n.has(u))return!1;let h=!1;for(const y of g)t.delete(y)&&(h=!0);return h&&n.add(u),!h});return o.outstandingReleases=()=>{const a=[];for(const u of t){const i=u.indexOf(":"),g=u.slice(0,i),h=u.slice(i+1);g==="key"?a.push(new KeyboardEvent("keyup",{code:h,key:wt(h),bubbles:!0})):g==="mouse"?a.push(new MouseEvent("mouseup",{button:Number(h),bubbles:!0})):g==="pointer"&&typeof PointerEvent=="function"&&a.push(new PointerEvent("pointerup",{pointerId:Number(h),bubbles:!0}))}return a},o}function wt(e){const t=/^Key([A-Z])$/.exec(e);if(t)return t[1].toLowerCase();const n=/^Digit(\d)$/.exec(e);return n?n[1]:e==="Space"?" ":e}function be(e){const t=e.changedTouches;return t?Array.from(t,n=>`touch:${n.identifier}`):["touch"]}function vt(e,t){switch(e){case"keydown":return[`key:${t.code}`];case"mousedown":return[`mouse:${t.button}`];case"pointerdown":return[`pointer:${t.pointerId}`];case"touchstart":return be(t);default:return[]}}function yt(e,t){switch(e){case"keyup":return[`key:${t.code}`];case"mouseup":return[`mouse:${t.button}`];case"pointerup":case"pointercancel":return[`pointer:${t.pointerId}`];case"touchend":case"touchcancel":return be(t);default:return[]}}const Ee=new Set(["setTimeout","clearTimeout","setInterval","clearInterval","requestAnimationFrame","cancelAnimationFrame"]);function Re(e,t){return typeof e!="function"||Object.hasOwn(e,"prototype")?e:e.bind(t)}const k="",F=new Map,U=new Map,H=new Map,ce=new WeakMap;function K(e){let t=H.get(e);return t||(t=new nt,H.set(e,t)),t}function an(e,t=k){const n=K(t);return n.surface=e,n}function ln(e=k){H.get(e)?.reset()}function cn(e=k){return K(e)}function un(){const e=[];for(const[t,n]of H)n.surface&&e.push({surface:n.surface,gate:Te(t)});return e}function Te(e){return()=>Fe()&&(U.get(e)??(()=>!0))()}function pt(e,t){const n=Te(e);return()=>t.alive&&n()}const M=[];function _t(){return M[M.length-1]??null}De(_t);function $(e,t){M.push(e);try{return t()}finally{M.pop()}}function St(e,t){return{setTimeout(n,o,...a){return t.setTimeout((...u)=>$(e,()=>n(...u)),o,...a)},clearTimeout:n=>t.clearTimeout(n),setInterval(n,o,...a){return t.setInterval((...u)=>$(e,()=>n(...u)),o,...a)},clearInterval:n=>t.clearInterval(n),requestAnimationFrame(n){return t.requestAnimationFrame(o=>$(e,()=>n(o)))},cancelAnimationFrame:n=>t.cancelAnimationFrame(n)}}function bt(e){const t=new Map;return new Proxy(console,{get(n,o){const a=Reflect.get(n,o,n);if(typeof a!="function")return a;let u=t.get(o);return u||(u=(...i)=>$(e,()=>a.apply(n,i)),t.set(o,u)),u}})}function ue(e){let t=!1,n=null;return()=>{if(t)return n;t=!0;try{n=ft(window[e])}catch{n=null}return n}}let Ie=null;function Et(e){Ie=e}let Pe=null;function Rt(e){const t={alive:!0},n=new Map,o=pt(e,t),a=gt({setTimeout:(S,A)=>window.setTimeout(S,A),clearTimeout:S=>window.clearTimeout(S),setInterval:(S,A)=>window.setInterval(S,A),clearInterval:S=>window.clearInterval(S),requestAnimationFrame:S=>window.requestAnimationFrame(S),cancelAnimationFrame:S=>window.cancelAnimationFrame(S),now:()=>performance.now()}),u=new WeakSet,i=(S,A)=>{u.has(S)||(u.add(S),a.recordInput?.(A))};e===k&&(Pe=a);const g=K(e),h=St(e,a.schedulers),y=ue("localStorage"),w=ue("sessionStorage");let d,p;const T=me(de(window,()=>!0,{page:g,role:"window"}),o,{execute:S=>$(e,S),realmId:e,recordInput:i,role:"window",schedulers:h,self:()=>d,document:()=>p,localStorage:y,sessionStorage:w,isolateExpandos:!0});d=T.proxy;const I=me(de(document,()=>!0,{page:g,role:"document"}),o,{execute:S=>$(e,S),realmId:e,recordInput:i,role:"document",self:()=>d});return p=I.proxy,{moduleUrls:n,live:t,loop:a,document:I,localStorage:y,sessionStorage:w,window:T,public:{recordModuleUrl(S){t.alive&&n.set(new URL(S).pathname,S)},console:bt(e),document:p,globalThis:d,timers:h,window:d}}}function Y(e=k){let t=F.get(e);return t||(t=Rt(e),F.set(e,t)),t.public}function Tt(e){return[...F.get(e)?.moduleUrls.values()??[]]}function dn(e){const t=F.get(e);if(!t)return null;const n={reads:0,writes:0};return{globals:t.window.expandoCount(),mountId:e,loop:t.loop.stats(),listeners:{document:t.document.count(),window:t.window.count()},storage:{local:t.localStorage()?.stats()??n,session:t.sessionStorage()?.stats()??n}}}function It(e=k){U.delete(e),H.get(e)?.reset(),e!==k&&H.delete(e);const n=F.get(e);if(!n)return{mountId:e,listeners:0,timers:{timeouts:0,intervals:0,animationFrames:0,parkedCallbacks:0}};F.delete(e),n.moduleUrls.clear(),n.live.alive=!1;const o=n.document.dispose()+n.window.dispose(),a=n.loop.dispose?.()??{timeouts:0,intervals:0,animationFrames:0,parkedCallbacks:0};return e===k&&Ce(),{mountId:e,listeners:o,timers:a}}function fn(e,t=k){U.set(t,e)}function de(e,t,n){const o=new Map,a=Se(t),u=()=>n?.page.surface??null,i=()=>n?.role==="window"&&n.page.surface?n.page:null,g=(c,f,s)=>{const r=i();if(r&&c==="resize"&&f!==null){r.addResizeListener(f,s);return}if((c==="load"||c==="DOMContentLoaded"||c==="pageshow")&&f!==null&&document.readyState==="complete"){window.setTimeout(()=>{const l=new Event(c);typeof f=="function"?f.call(p,l):f.handleEvent(l)},0);return}if(z.has(c)&&f!==null){let l=o.get(c);l||(l=new Map,o.set(c,l));const v=f;let b=l.get(v);b||(b=function(m){if(!a(c,m))return typeof v=="function"?v.call(this,m):v.handleEvent(m)},l.set(v,b)),e.addEventListener(c,b,s);return}e.addEventListener(c,f,s)},h=(c,f,s)=>{const r=i();if(r&&c==="resize"&&f!==null){r.removeResizeListener(f,s);return}if(z.has(c)&&f!==null){const l=o.get(c),v=l?.get(f);if(v){l?.delete(f),e.removeEventListener(c,v,s);return}}e.removeEventListener(c,f,s)},y=new WeakMap,w=c=>{if(typeof c!="string"||!c.startsWith("on"))return null;const f=c.slice(2);return z.has(f)?f:null},d=c=>{console.error(dt(c))};let p;const T=()=>{const c=Reflect.get(e,"location",e);if(!c||!n)return null;const f=ce.get(n.page);if(f?.source===c)return{value:f.view};const s=ut(c,d,{reloadGame:()=>{const r=Ie;return r?(r(),!0):!1}});return ce.set(n.page,{source:c,view:s}),{value:s}},I=c=>{const f=i();if(!f)return null;if(c==="window"||c==="self"||c==="top"||c==="parent")return{value:p};if(c!=="innerWidth"&&c!=="outerWidth"&&c!=="innerHeight"&&c!=="outerHeight")return null;const s=f.viewport();return s?c==="innerWidth"||c==="outerWidth"?{value:s.width}:c==="innerHeight"||c==="outerHeight"?{value:s.height}:null:null},S=c=>{if(!n)return null;if(c==="location")return T();if(n.role==="document"){const f=u();if(f&&(c==="body"||c==="documentElement"))return{value:f};if(f&&c==="head")return{value:n.page.head()};if(f&&c==="title")return{value:n.page.title};if(f&&c==="currentScript")return{value:n.page.currentScript};if(f&&c==="activeElement"){const s=Reflect.get(e,"activeElement",e);return{value:s&&f.contains(s)?s:f}}}return I(c)},A=c=>{if(n?.role!=="document"||typeof c!="string")return;const f=u();if(!f)return;const s=e;if(c==="querySelector")return r=>r.trim().toLowerCase()==="head"?n.page.head():f.matches(r)?f:f.querySelector(r);if(c==="querySelectorAll")return f.querySelectorAll.bind(f);if(c==="getElementById")return r=>{const l=s.getElementById(r);return l&&f.contains(l)?l:null};if(c==="getElementsByClassName")return f.getElementsByClassName.bind(f);if(c==="getElementsByTagName")return r=>{if(r.toLowerCase()!=="head")return f.getElementsByTagName(r);const l=n.page.head();return l?Object.assign([l],{item:v=>v===0?l:null,namedItem:v=>l.id===v?l:null}):[]};if(c==="elementFromPoint"||c==="elementsFromPoint")return(r,l)=>{const v=f.getBoundingClientRect(),m=s[c].bind(s)(r+v.left,l+v.top);return Array.isArray(m)?m.filter(_=>f.contains(_)):m&&f.contains(m)?m:null}};return p=new Proxy(e,{get(c,f){if(f==="addEventListener")return g;if(f==="removeEventListener")return h;const s=S(f);if(s)return s.value;const r=A(f);if(r)return r;if(typeof f=="string"&&Ee.has(f)){const v=V;if(v)return v.schedulers[f]}const l=Reflect.get(c,f,c);return typeof l!="function"?l:y.get(l)??Re(l,c)},set(c,f,s){if(f==="location"&&n)return d(`${n.role}.location = ${String(s)}`),!0;if(n?.role==="document"&&f==="title"&&n.page.surface)return n.page.title=String(s),!0;if(w(f)!==null&&typeof s=="function"){const l=s,v=function(b){if(t())return l.call(this,b)};return y.set(v,l),Reflect.set(c,f,v,c)}if(f==="onload"&&typeof s=="function"&&document.readyState==="complete"){const l=s;return window.setTimeout(()=>l.call(p,new Event("load")),0),!0}return Reflect.set(c,f,s,c)}}),p}function fe(e){return typeof e=="boolean"?e:e?.capture??!1}function me(e,t,n){const o=n.execute??(s=>s()),a=[],u=Se(t);let i=!1,g=!1;const h=s=>{if(g)return;g=!0;const r=n.realmId?`"${n.realmId}"`:"the default realm";console.warn(`volter: a stopped game tried to register ${s} on its ${n.role} after its realm (${r}) was reclaimed; refused. Later refusals in this generation are silent.`)},y=new Map,w=new Map,d=new WeakMap;let p;const T=s=>n.role==="window"&&n.self&&(s===e||typeof window<"u"&&s===window)?n.self():n.document&&(s===n.document()||typeof document<"u"&&s===document)?n.document():s,I=s=>{const r=d.get(s);if(r)return r;const l=new Proxy(s,{get(v,b){if(b==="currentTarget")return p;if(b==="target"||b==="srcElement"){const _=Reflect.get(v,b,v);return _===v.currentTarget?p:T(_)}if(b==="view")return T(Reflect.get(v,b,v));if(b==="composedPath")return()=>v.composedPath().map(T);const m=Reflect.get(v,b,v);return typeof m=="function"?m.bind(v):m}});return d.set(s,l),l},S=s=>{const r=a.indexOf(s);r!==-1&&a.splice(r,1),e.removeEventListener(s.type,s.actual,s.capture),s.abort?.signal.removeEventListener("abort",s.abort.handler)},A=(s,r,l)=>{if(r===null)return;if(i){h(`a "${s}" listener`);return}const v=fe(l),b=l&&typeof l!="boolean"?l.signal:void 0;if(b?.aborted||a.some(R=>R.type===s&&R.original===r&&R.capture===v))return;let m;const _=function(R){if(l&&typeof l!="boolean"&&l.once){const C=a.indexOf(m);C!==-1&&a.splice(C,1),m.abort?.signal.removeEventListener("abort",m.abort.handler)}if(z.has(s)){const C=u(s,R);if(n.recordInput?.(R,C),C)return}const L=I(R);return o(()=>typeof r=="function"?r.call(p,L):r.handleEvent(L))},E=()=>S(m);m={type:s,original:r,actual:_,capture:v,...b?{abort:{signal:b,handler:E}}:{}},a.push(m),e.addEventListener(s,_,l),b?.addEventListener("abort",E,{once:!0}),(s==="load"||s==="DOMContentLoaded"||s==="pageshow")&&document.readyState==="complete"&&window.setTimeout(()=>{!i&&a.includes(m)&&_.call(e,new Event(s))},0)},c=(s,r,l)=>{if(r===null)return;const v=fe(l),b=a.find(m=>m.type===s&&m.original===r&&m.capture===v);b?S(b):e.removeEventListener(s,r,l)},f=s=>typeof s=="string"&&s.startsWith("on")&&s.length>2?s.slice(2):null;return p=new Proxy(e,{get(s,r){if(r==="addEventListener")return A;if(r==="removeEventListener")return c;const l=w.get(r);if(l)return l.original;if(n.self&&(n.role==="window"&&(r==="window"||r==="self"||r==="frames"||r==="top"||r==="parent")||n.role==="document"&&r==="defaultView"))return n.self();if(n.role==="window"&&r==="document"&&n.document)return n.document();if(n.role==="window"&&r==="globalThis"&&n.self)return n.self();if(n.role==="window"&&r==="localStorage"&&n.localStorage)return n.localStorage()?.storage;if(n.role==="window"&&r==="sessionStorage"&&n.sessionStorage)return n.sessionStorage()?.storage;if(typeof r=="string"&&Ee.has(r)&&n.schedulers)return n.schedulers[r];const v=y.get(r);if(v)return v.get?v.get.call(p):v.value;const b=Reflect.get(s,r,s);return typeof b!="function"?b:Re(b,s)},set(s,r,l){if(r==="location")return Reflect.set(s,r,l,s);if(n.role==="window"&&(r==="document"||r==="globalThis"||r==="localStorage"||r==="sessionStorage"))return!0;const v=f(r);if(v){if(i)return h(`an "${String(r)}" handler`),!0;const b=w.get(r);if(b&&(e.removeEventListener(b.type,b.actual),w.delete(r)),typeof l!="function")return!0;const m=l,_=(v==="load"||v==="DOMContentLoaded"||v==="pageshow")&&document.readyState==="complete",E=function(R){if(z.has(v)){const C=u(v,R);if(n.recordInput?.(R,C),C)return}const L=o(()=>m.call(p,I(R)));return L===!1&&R.preventDefault(),L};return w.set(r,{type:v,original:m,actual:E}),e.addEventListener(v,E),_&&window.setTimeout(()=>{!i&&w.get(r)?.actual===E&&E.call(e,new Event(v))},0),!0}return n.isolateExpandos?(y.set(r,{configurable:!0,enumerable:!0,value:l,writable:!0}),!0):Reflect.set(s,r,l,s)},defineProperty(s,r,l){return n.isolateExpandos?Reflect.getOwnPropertyDescriptor(s,r)?.configurable===!1?!1:(y.set(r,{...l,configurable:!0,enumerable:l.enumerable??!0}),!0):Reflect.defineProperty(s,r,l)},deleteProperty(s,r){return y.delete(r)?!0:n.isolateExpandos?Reflect.getOwnPropertyDescriptor(s,r)?.configurable!==!1:Reflect.deleteProperty(s,r)},has(s,r){return y.has(r)||Reflect.has(s,r)},ownKeys(s){const r=new Set(Reflect.ownKeys(s));for(const l of y.keys())typeof l!="number"&&r.add(l);return[...r]},getOwnPropertyDescriptor(s,r){const l=Reflect.getOwnPropertyDescriptor(s,r);return l?.configurable===!1?l:y.get(r)??l}}),{proxy:p,count:()=>a.length+w.size,expandoCount:()=>y.size,dispose(){for(const r of u.outstandingReleases()){for(const l of[...a])l.type===r.type&&l.actual.call(p,r);for(const l of w.values())l.type===r.type&&l.actual.call(p,r)}i=!0;const s=a.length+w.size;for(const r of[...a])S(r);for(const r of w.values())e.removeEventListener(r.type,r.actual);return w.clear(),y.clear(),s}}}let B=!1;function Ce(){if(!B)return;const e=globalThis,t=Y();V=Pe,e.__volterGameTimers=t.timers,e.__volterGameWindow=t.window,e.__volterGameDocument=t.document,e.__volterGameConsole=t.console}function mn(){if(B||typeof window>"u"||typeof document>"u")return;B=!0;const e=globalThis;He(),e.__volterGameModuleUrls=Tt,e.__volterGameRealm=t=>(M.push(t),queueMicrotask(()=>{const n=M.lastIndexOf(t);n>=0&&M.splice(n,1)}),Y(t)),Ce()}function Q(e,t){const n=It(e),o=n.timers.timeouts+n.timers.intervals+n.timers.animationFrames+n.timers.parkedCallbacks;if(n.listeners===0&&o===0)return;const a=[];n.listeners>0&&a.push(`${n.listeners} window/document listener${n.listeners===1?"":"s"}`),o>0&&a.push(`${o} timer/frame callback${o===1?"":"s"}`),P.logStructured("warn",`${t} stopped without releasing ${a.join(" and ")}; the editor reclaimed them.`,"environment",void 0,{instanceId:e,instanceName:t})}function Le(e=typeof window>"u"?null:window){const t=e?.volterGame;return!t||t.contractVersion!==1?null:t}const Pt=Object.entries(Oe).filter(([,e])=>!e.optional).map(([e])=>e);function Ae(e){const t=e?.scenes;if(t==null)return{scenes:null,malformed:null};if(typeof t!="object")return{scenes:null,malformed:`declared as ${typeof t}; expected an object with list(), current() and goTo()`};const n=Pt.filter(o=>typeof t[o]!="function");return n.length>0?{scenes:null,malformed:`declared a scenes surface missing required member(s): ${n.join(", ")}`}:{scenes:t,malformed:null}}function Ct(e){const t=e?.ready;if(t==null)return{ready:null,malformed:null};if(typeof t=="function"){const n=t;return{ready:()=>Promise.resolve(n()),malformed:null}}if(typeof t.then=="function"){const n=t;return{ready:()=>Promise.resolve(n),malformed:null}}return{ready:null,malformed:`declared \`ready\` as ${typeof t}; expected a promise or a function returning one`}}function Lt(e){const t=e?.world;return t==null?{world:null,malformed:null}:typeof t!="object"||t.isScene!==!0?{world:null,malformed:`declared \`world\` as ${typeof t}; expected the game's own THREE.Scene`}:{world:t,malformed:null}}function At(e){const t=e?.presentation;if(t==null)return{canvas:null,malformed:null};const n=t;return typeof n!="object"||n.tagName!=="CANVAS"||typeof n.getContext!="function"?{canvas:null,malformed:`declared \`presentation\` as ${typeof t=="object"?String(n.tagName??"object"):typeof t}; expected the game's own <canvas> element`}:{canvas:t,malformed:null}}const gn=Object.freeze(Object.defineProperty({__proto__:null,readGameContract:Le,readGamePresentation:At,readGameReady:Ct,readGameScenes:Ae,readGameWorld:Lt},Symbol.toStringTag,{value:"Module"}));function kt(e){if(!Array.isArray(e))throw new Error("scenes.list() did not return an array");const t=new Set;for(const n of e){if(typeof n!="object"||n===null||typeof n.id!="string"||n.id.trim().length===0||typeof n.label!="string"||n.label.trim().length===0)throw new Error("scenes.list() returned an invalid { id, label } scene");if(t.has(n.id))throw new Error(`scenes.list() returned duplicate id "${n.id}"`);t.add(n.id)}return e}function xt(e){return typeof e?.goToScene=="function"}function hn(e,t={}){const{scenes:n,malformed:o}=Ae(e);if(o!==null&&P.warn(`Ignored the game contract's \`scenes\` surface: ${o}`,"ingest"),!n)return null;let a=!1;const u=()=>{try{return kt(n.list())}catch(g){return a||(a=!0,P.warn(`Ignored invalid game-contract scenes: ${g instanceof Error?g.message:String(g)}`,"ingest")),[]}},i=g=>{const h=u().map(w=>w.id);return h.includes(g)?(t.onSwitchAccepted?.(g),{ok:!0,settled:(async()=>{try{return await n.goTo(g),{requested:g,current:n.current()}}catch(w){return{requested:g,current:n.current(),error:w instanceof Error?w.message:String(w)}}})()}):{ok:!1,error:`scenes.goTo: "${g}" is not one of this game's scenes (${h.length>0?h.join(", "):"it lists none"}).`,known:h}};return{title:"Scenes",storiesFor:g=>u().map(({id:h,label:y})=>({id:h,label:y})),active:g=>n.current(),goToScene:i,apply:(g,h)=>{if(h===null){P.warn("This game’s scenes cannot be cleared: it is always in one of its own scenes. Pick the scene to switch to instead.","ingest");return}const y=i(h);if(!y.ok){P.warn(`${y.error} — ignoring.`,"ingest");return}y.settled.then(w=>{w.error!==void 0&&P.error(`scenes.goTo("${h}") failed: ${w.error}`,"ingest")})}}}function Gt(){const e=G();if(!e)return null;const n=(()=>{switch(e.kind){case"canvas":return e.session.adapter;case"dom":return e.session.adapter;case"three":return e.session.mount?.authoring}})()?.stories;return xt(n)?n:null}let J=!1;function ge(){return J}function wn(){J=!0}function vn(){J=!1}let D=null,x=null;function yn(e){D=e,e||X()}function pn(){D=null,X()}function X(){const e=x;x=null,e&&(clearTimeout(e.timer),e.settle(null))}function ke(){const e=D?.renderer.domElement;return typeof e=="object"&&e!==null?e:null}function _n(){const e=x;if(!(!e||!D))try{const t=D.renderer;if(typeof t.getRenderTarget=="function"&&t.getRenderTarget()!==null)return;const n=ke();if(!n||n.width===0||n.height===0)return;const o=e.image??n.ownerDocument.createElement("canvas");o.width=n.width,o.height=n.height;const a=o.getContext("2d");if(!a||(a.drawImage(n,0,0),e.image=o,e.delivering))return;e.delivering=!0,setTimeout(()=>{x===e&&(x=null,clearTimeout(e.timer),e.settle(e.image))},0)}catch{}}function Mt(e=2e3){return D?(X(),new Promise(t=>{const n=setTimeout(()=>{x?.timer===n&&(x=null),t(null)},e);x={settle:t,timer:n,image:null,delivering:!1}})):Promise.resolve(null)}const $t={play:e=>(e.play(),"driven"),resume:e=>(e.resume(),"driven"),stop:(e,t)=>t?.stopEndsRun?"declined":(e.pause(),"driven"),pause:e=>(e.pause(),"driven"),step:e=>e.canStep?(e.step(),"driven"):{ok:!1,error:"this ingested game cannot be stepped — no serve-time loop gate measured control over its frames, so a single-frame step would be a button that lies (see ingest/same-realm-loop-gate.ts)"}};function Ft(e,t,n){if(!je(t))return null;const o=$t[t](e,n);return o==="declined"?null:o!=="driven"?o:{ok:!0,data:{ingest:!0,playing:e.playing}}}function Ht(){return Y().window}function Z(){return typeof window>"u"?null:Le(Ht())}let ee=!1;function Dt(){return ee}function N(e){ee=e}function jt(){N(!1);const e=window;delete e.__volterMountCold,delete e.__volterIngestPlayed}function he(e,t,n){const o=(a,u)=>ze({seam:`contract.lifecycle.${t}`,subject:"game",epoch:qe(e),stage:"effect",outcome:a,source:"consumer",detail:u});try{n(),o("pass",`the mounted ingest lifecycle consumed lifecycle.${t}`)}catch(a){throw o("fail",`lifecycle.${t} failed: ${a instanceof Error?a.message:String(a)}`),a}}function Sn(e={}){const t=Z(),n=t?.lifecycle,o=()=>{if(t&&n?.start){he(t,"start",()=>n.start?.());return}window.dispatchEvent(new CustomEvent("volter:ingest-play"))},a=typeof n?.pause=="function",u=typeof n?.resume=="function";return t&&a!==u?{start:o,pauseGap:a?"the game contract declares lifecycle.pause without lifecycle.resume":"the game contract declares lifecycle.resume without lifecycle.pause"}:t&&a&&u?{start:o,setPaused:i=>he(t,i?"pause":"resume",()=>{i?n?.pause?.():n?.resume?.()})}:e.setPaused?{start:o,setPaused:e.setPaused,...e.step?{step:e.step}:{},...e.canStep?{canStep:e.canStep}:{}}:{start:o,pauseGap:e.pauseGap??"the game declares no lifecycle.pause/resume pair and its mounted adapter exposes no setPaused capability"}}function bn(){const e=G();return e?e.session.lifecycle.pauseGap??null:null}function we(e){const t=G();if(t)for(const n of t.siblings)try{n.setPaused?.(e)}catch(o){P.error(`Composite sibling setPaused(${e}) failed: ${o}`,"ingest")}}function zt(){return Z()}function xe(){const e=G()?.session.lifecycle;if(!e?.setPaused)return null;const t=()=>{e.setPaused?.(!0),we(!0),N(!1)},n=()=>{e.setPaused?.(!1),we(!1),N(!0)};return{get playing(){return ee},play(){Ne();const o=window;if(o.__volterIngestPlayed)return n();o.__volterIngestPlayed=!0,e.start(),n()},pause:t,resume:n,canStep:!!e.step&&(e.canStep?.()??!0),step(){e.canStep?.()!==!1&&(e.step?.(),N(!1))}}}function En(e){const t=xe();return t?(t.pause(),!0):!1}const Nt=Ve(e=>{e.level==="warn"?P.warn(e.message,"ingest"):P.log(e.message,"ingest")});let Bt=0,Ge="";function Rn(e){Ge=`${e}#${++Bt}`}function Tn(e){const t=mt(e.realmLoopVerdict?.()),n=e.realmLoopVerdict?.()?.reason??null;return t!==null||n!==null?{loop:t,reason:n}:e.realmLoopVerdict?{loop:null,reason:null}:{loop:null,reason:Wt}}function In(){return{loop:null,reason:"⏸ calls the host runtime's own play pause on this route, but no probe has measured whether that reaches this game's frames — an unmodified React game that schedules its own timers is not held by the host loop"}}const Wt="this mount installs no loop gate, so no verdict will ever be measured here — nothing in the editor holds this game's frames";function Ot(e,t,n){const o=Ze(t?.systems,n),a=new Map(o.empty.map(i=>[i.slot,i.evidence])),u=new Map(o.malformed.map(i=>[i.slot,i.reason]));return Ye.map(i=>{if(e[i]!=null)return{slot:i,state:"bound",proof:Be({slot:i,adapter:e[i],subject:"game"})};const g=a.get(i);if(g!==void 0)return{slot:i,state:"empty",evidence:g};const h=u.get(i);return h!==void 0?{slot:i,state:"malformed",evidence:h}:{slot:i,state:"unanswered"}})}function qt(){const e=Je();switch(e.state){case"absent":return null;case"loading":return{state:"loading"};case"ready":return{state:"ready",dataFile:e.writer.dataFile};default:return{state:"failed",reason:e.reason}}}function te(){const e=G(),t=e?.coverage;if(!e||!t)return null;const n=Qe(),o=t.loop(),a=zt();return Ue({worldId:e.worldId,reach:t.reach,surface:e.kind,reachMechanism:t.reachMechanism,loop:o.loop,loopReason:o.reason,contract:Ke(a),systemAdapters:Ot(pe(),a,e.kind),ownership:n?{writable:n.writable,reason:n.reason??null,recorder:n.recorder??null}:null,dataWriter:qt(),projectVerbs:[],writeReach:t.writeReach?.()??null})}function Pn(e){const t=G();if(!t)return;t.coverage=e;const n=te();n&&Nt.report(Ge,n)}function Cn(e,t){if(!t)return;const n=`Ingest "${e}" loop: ${t.loop} — ${t.reason}`;t.loop==="gated"?P.log(n,"ingest"):P.warn(n,"adapter")}const Vt=["hierarchy","selection","transforms","inspector","assetSubject","structure","persistence","pickable","rects","boxEdit","text","colorSample","stories","truth","assetDrop"];function Ut(e){return Vt.filter(t=>e[t]!==void 0)}function Ln(e){return{coverage:()=>te(),prepareCoverage:()=>Xe(),authoringProviders:()=>Ut(e),engineSystems:()=>Object.keys(pe())}}function An(e,t){Object.defineProperties(e,{loop:{enumerable:!0,get:()=>t.realmLoopVerdict?.()?.loop??null},loopReason:{enumerable:!0,get:()=>t.realmLoopVerdict?.()?.reason??null}}),e.realmLoopStats=()=>ht()?.stats()??null}function kn(e,t){const n=e,o=typeof n.querySelectorAll=="function"?n.querySelectorAll("*").length:t.nodeCount(),a=Object.keys(e).some(u=>u.startsWith("__reactContainer"));return{elementCount:o,hierarchyNodeCount:t.nodeCount(),reactRootPresent:a}}function xn(e,t){window[e]=t}function ne(e){delete window[e]}function Me(){Et(null);const e=G();if(e){Jt(null),jt();try{Z()?.lifecycle?.dispose?.()}catch(t){P.error(`The game's own lifecycle.dispose threw at teardown: ${t}`,"ingest")}for(let t=e.siblings.length-1;t>=0;t--)try{e.siblings[t].dispose()}catch(n){P.error(`Composite sibling dispose failed: ${n}`,"ingest")}switch(e.kind){case"three":Kt(e.session);return;case"canvas":Yt(e.session);return;case"dom":Qt(e.session);return}}}function Kt(e){if(e.mount?.authoring&&e.mount.authoring.dispose?.(),W(null),O(null),q(),e.resizeObserver?.disconnect(),e.inputGateUnsubscribe?.(),e.mount)try{e.store.exitPlayScene()}catch{}e.store.shell.setPlayState("stopped");try{e.mount?.game.dispose()}catch{}Q("","The ingested game"),ne("__volterIngest"),P.log("Ingest root unmounted","ingest")}function Yt(e){e.adapter&&e.adapter.dispose(),W(null),O(null),q(),e.store.shell.setPlayState("stopped");try{e.dispose()}catch{}Q("","The ingested canvas game"),ne("__volterIngest2D"),P.log("canvas ingest root unmounted","ingest")}function Qt(e){e.adapter.dispose(),W(null),O(null),q(),e.store.shell.setPlayState("stopped");try{e.stop()}catch{}Q("","The ingested DOM game"),ne("__volterIngestReact"),P.log("DOM ingest root unmounted","ingest")}function Gn(){G()?.kind==="three"&&Me()}let j=null;function G(){return j}function Jt(e){j=e}function $e(){return j?.kind??null}function ve(){return $e()!==null}function Mn(e){j&&(j.siblings=[...e])}let ye=Promise.resolve();function $n(e){const t=ye.then(e);return ye=t.then(()=>{},()=>{}),t}We({id:"ingest",priority:1,mounted:ve,playing:()=>Dt()||ge(),stop:Me,instanceContainer:()=>null,frameCanvas:ke,snapshotFrame:()=>Mt(),command:e=>{const t=ve()?xe():null;return t?Ft(t,e.type,{stopEndsRun:ge()}):null},scenes:Gt,surface:$e,coverage:te,authoringRefusal:()=>j?.kind==="dom"?"This is an ingested native-React game: its components render directly as a DOM layer under the host React — there is no scene graph or renderer to introspect, and authoring is deliberately off for react ingests (the editor never writes JSX back into an unmodified game). The game is hosted, sized, and disposed; play it in the Game tab.":null});export{Q as $,un as A,an as B,Ct as C,Z as D,ln as E,At as F,rn as G,Ht as H,sn as I,pn as J,ht as K,Lt as L,Rn as M,N,Cn as O,Tn as P,An as Q,dn as R,Gt as S,hn as T,Wt as U,yn as V,_n as W,on as X,cn as Y,et as Z,ie as _,G as a,mn as a0,_t as a1,gn as a2,wn as b,Me as c,ge as d,vn as e,bn as f,xe as g,En as h,ve as i,Sn as j,Jt as k,fn as l,In as m,kn as n,Ln as o,xn as p,mt as q,Pn as r,$n as s,te as t,Dt as u,jt as v,Mn as w,$e as x,Gn as y,zt as z};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{J as i,r as m}from"./index-C5ZAyrKq.js";import{e as p}from"./game-network-DW5ARz4R.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-BlrALjM3.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-ggQWxtu-.js";import"./contract-system-adapters-Cn7OW_ay.js";import"./game-contract-seams-tyKDsfaP.js";import"./seeded-random-BJthDRMu.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-CYeuVCYr.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-bQE2NA0D.js";import"./live-project-verbs-CdFmLYOo.js";import"./capability-coverage-ByWftxk4.js";import"./edit-mode-authoring-D5f7aHHl.js";import"./json-history-resource-Uqrihfc8.js";import"./binding-resolver-DGbk9_XR.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-Do9J6nsb.js";import"./canvas-entry-runtime-BST8yRuK.js";import"./three-ingest-runtime-CwTqAHgX.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-0QjJWb7i.js";import"./ingest-source-persistence-6ShMoSCa.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-hRLF0BeO.js";import"./mounted-authoring-DxMISwvR.js";import"./entity-object-MKYemTFM.js";import"./user-data-C84W0V47.js";import"./workspace-arrangement-DqG5sUns.js";import"./three-contract-Dkt6PmWY.js";import"./three-DiL6vMXq.js";import"./editor-layers-D-CTUqco.js";import"./component-instance-root-DLI40MiB.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-CkLR2zGf.js";import"./source-persistence-backend-au3WtEn6.js";import"./three-projection-core-B7Lf8tOp.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-Cx8yhuwt.js";import"./deferred-ingest-play-B2JUlwlT.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CnzxMtYz.js";import"./board-guides-CjHQ9Ynm.js";import"./relative-import-specifier-CPFTrxi4.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-Cz3Zyx_1.js";import"./inference-diagnostics-DLt9ql9I.js";import"./writer-tw6EcuVO.js";import"./three-state-BCACvUtm.js";import"./editor-shell-store-DHVWS8cE.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BARIpMu-.js";const Mt="workspace.service";function e(o){p().catch(t=>{m().console.error(`${o}: ${t instanceof Error?t.message:String(t)}`,"play")})}function Rt(){let o,t=!1;const r=i(()=>{t||new URLSearchParams(window.location.search).get("play")==="1"&&(t=!0,o=window.setTimeout(()=>e("Could not enter requested Play mode"),0))});return()=>{o!==void 0&&window.clearTimeout(o),r()}}export{Mt as point,Rt as start};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{createGameModuleResolver as k,setFocusedInstanceProvider as M}from"./game-module-access-BTInp2NG.js";import{n as d}from"./command-results-CUQD49AB.js";import{i as g}from"./active-ingest-0QjJWb7i.js";import{a as y,u as h,v as w}from"./game-network-DW5ARz4R.js";import"./index-C5ZAyrKq.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./game-contract-seams-tyKDsfaP.js";import"./capability-coverage-ByWftxk4.js";import"./ingest-source-persistence-6ShMoSCa.js";import"./contract-system-adapters-Cn7OW_ay.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-BlrALjM3.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-ggQWxtu-.js";import"./seeded-random-BJthDRMu.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-CYeuVCYr.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-bQE2NA0D.js";import"./live-project-verbs-CdFmLYOo.js";import"./edit-mode-authoring-D5f7aHHl.js";import"./json-history-resource-Uqrihfc8.js";import"./binding-resolver-DGbk9_XR.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-Do9J6nsb.js";import"./canvas-entry-runtime-BST8yRuK.js";import"./three-ingest-runtime-CwTqAHgX.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-hRLF0BeO.js";import"./mounted-authoring-DxMISwvR.js";import"./entity-object-MKYemTFM.js";import"./user-data-C84W0V47.js";import"./workspace-arrangement-DqG5sUns.js";import"./three-contract-Dkt6PmWY.js";import"./three-DiL6vMXq.js";import"./editor-layers-D-CTUqco.js";import"./component-instance-root-DLI40MiB.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-CkLR2zGf.js";import"./source-persistence-backend-au3WtEn6.js";import"./three-projection-core-B7Lf8tOp.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-Cx8yhuwt.js";import"./deferred-ingest-play-B2JUlwlT.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CnzxMtYz.js";import"./board-guides-CjHQ9Ynm.js";import"./relative-import-specifier-CPFTrxi4.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-Cz3Zyx_1.js";import"./inference-diagnostics-DLt9ql9I.js";import"./writer-tw6EcuVO.js";import"./three-state-BCACvUtm.js";import"./editor-shell-store-DHVWS8cE.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BARIpMu-.js";class E extends Error{member;supported;constructor(e,r,o){super(`playwright-shim: ${e}.${r} is not supported by the in-page shim. Supported ${e} members: ${o.join(", ")}. This shim is DOM-only — canvas gameplay input must use game.input.*, while React-only DOM games may use Page keyboard/locator input. See packages/editor/src/playwright-shim.ts for the full supported subset and the wire's closure-capture limitation.`),this.name="PageShimUnsupportedError",this.member=r,this.supported=o}}function v(t,e){const r=Object.keys(t);return new Proxy(t,{get(o,i,n){if(typeof i=="symbol"||i in o)return Reflect.get(o,i,n);throw new E(e,i,r)}})}function m(t){return t.replace(/\s+/g," ").trim()}function O(t){const e=t.tagName.toLowerCase();if(e==="button")return"button";if(e==="a"&&t.hasAttribute("href"))return"link";if(/^h[1-6]$/.test(e))return"heading";if(e==="textarea")return"textbox";if(e==="select")return"combobox";if(e==="img")return"img";if(e==="input"){const r=(t.getAttribute("type")??"text").toLowerCase();return r==="button"||r==="submit"||r==="reset"?"button":r==="checkbox"?"checkbox":r==="radio"?"radio":"textbox"}return null}function b(t){return t.getAttribute("role")??O(t)}function S(t){const e=t.getAttribute("aria-label");return e&&e.trim()?m(e):m(t.textContent??"")}function T(t,e){if(e===void 0)return!0;const r=S(t);return e instanceof RegExp?e.test(r):r===e}function x(t,e,r){return Array.from(t.querySelectorAll("*")).filter(i=>b(i)===e&&T(i,r?.name))}function I(t,e){const r=Array.from(t.querySelectorAll("*")).filter(n=>n.tagName!=="SCRIPT"&&n.tagName!=="STYLE"),o=n=>{const s=m(n.textContent??"");return s.length===0?!1:e instanceof RegExp?e.test(s):s.includes(e)},i=r.filter(o);return i.filter(n=>!i.some(s=>s!==n&&n.contains(s)))}function C(t,e){return Array.from(t.querySelectorAll("[data-testid]")).filter(r=>{const o=r.getAttribute("data-testid")??"";return e instanceof RegExp?e.test(o):o===e})}function L(t){if(!(t instanceof HTMLElement))return!0;if(t.hidden)return!1;const e=getComputedStyle(t);return e.display!=="none"&&e.visibility!=="hidden"&&e.opacity!=="0"}function _(t){const e=t.getBoundingClientRect?.()??{left:0,top:0,width:0,height:0},r=e.left+e.width/2,o=e.top+e.height/2,i={bubbles:!0,cancelable:!0,clientX:r,clientY:o,button:0};typeof PointerEvent<"u"&&t.dispatchEvent(new PointerEvent("pointerdown",{...i,pointerId:1,isPrimary:!0})),t.dispatchEvent(new MouseEvent("mousedown",i)),typeof PointerEvent<"u"&&t.dispatchEvent(new PointerEvent("pointerup",{...i,pointerId:1,isPrimary:!0})),t.dispatchEvent(new MouseEvent("mouseup",i)),t.dispatchEvent(new MouseEvent("click",i))}function N(t){const e=t instanceof HTMLTextAreaElement?HTMLTextAreaElement.prototype:HTMLInputElement.prototype,r=Object.getOwnPropertyDescriptor(e,"value");return o=>{r?.set?r.set.call(t,o):t.value=o}}function G(t,e){if(!(t instanceof HTMLInputElement)&&!(t instanceof HTMLTextAreaElement))throw new Error(`playwright-shim: fill() target is not an <input>/<textarea> (got <${t.tagName.toLowerCase()}>)`);t.focus(),N(t)(e),t.dispatchEvent(new Event("input",{bubbles:!0})),t.dispatchEvent(new Event("change",{bubbles:!0}))}const l=new Set(["Alt","Control","Meta","Shift"]);function p(t){return t!=="ControlOrMeta"?t:/Mac|iPhone|iPad/.test(navigator.platform)?"Meta":"Control"}function B(t){return/^[a-z]$/i.test(t)?`Key${t.toUpperCase()}`:/^[0-9]$/.test(t)?`Digit${t}`:t===" "?"Space":t}function K(t){const e=document.activeElement;return e instanceof HTMLElement&&t.contains(e)?e:t}function f(t,e,r,o){K(t).dispatchEvent(new KeyboardEvent(e,{key:r,code:B(r),bubbles:!0,cancelable:!0,altKey:o.has("Alt"),ctrlKey:o.has("Control"),metaKey:o.has("Meta"),shiftKey:o.has("Shift")}))}function F(t){const e=new Set,r=async i=>{const n=p(i);e.add(n),f(t,"keydown",n,e)},o=async i=>{const n=p(i);f(t,"keyup",n,e),e.delete(n)};return{down:r,up:o,async press(i){const n=i.split("+").map(p),s=n.filter(c=>l.has(c)),a=n.find(c=>!l.has(c));for(const c of s)await r(c);a&&(await r(a),await o(a));for(const c of s.reverse())await o(c)}}}function R(t){const e=[];function r(o,i){const n=b(o);if(n){const a=S(o);e.push(`${" ".repeat(i)}- ${n}${a?` "${a}"`:""}`)}const s=n?i+1:i;for(const a of Array.from(o.children))r(a,s)}for(const o of Array.from(t.children))r(o,0);return e.join(`
|
|
2
|
-
`)}function u(t,e){const r=i=>{const n=t()[0];if(!n)throw new Error(`playwright-shim: ${i}() found no element for ${e}`);return n};return v({async click(){_(r("click"))},async fill(i){G(r("fill"),i)},async textContent(){const i=t()[0];return i?i.textContent??null:null},async evaluate(i,n){return i(r("evaluate"),n)},async count(){return t().length},async waitFor(i){const n=i?.timeout??5e3,s=i?.state??"visible",a=Date.now()+n;for(;;){const c=t()[0];if(c&&(s==="attached"||L(c)))return;if(Date.now()>=a)throw new Error(`playwright-shim: waitFor() timed out after ${n}ms waiting for ${e} to be ${s}`);await new Promise(P=>setTimeout(P,50))}},first(){return u(()=>t().slice(0,1),`${e}.first()`)},nth(i){return u(()=>{const n=t()[i];return n?[n]:[]},`${e}.nth(${i})`)},async ariaSnapshot(){return R(r("ariaSnapshot"))}},"Locator")}async function D(t,e){if(typeof t=="function")return t(e);if(typeof t=="string")return new Function("arg",`return (${t})(arg)`)(e);throw new Error("playwright-shim: evaluate() requires a function or a function-source string")}function A(t){const e={keyboard:F(t),evaluate:async(r,o)=>D(r,o),locator:r=>u(()=>Array.from(t.querySelectorAll(r)),`locator(${JSON.stringify(r)})`),getByRole:(r,o)=>u(()=>x(t,r,o),`getByRole(${JSON.stringify(r)}${o?.name!==void 0?`, {name: ${JSON.stringify(String(o.name))}}`:""})`),getByText:r=>u(()=>I(t,r),`getByText(${JSON.stringify(String(r))})`),getByTestId:r=>u(()=>C(t,r),`getByTestId(${JSON.stringify(String(r))})`),click:async r=>{await e.locator(r).click()},fill:async(r,o)=>{await e.locator(r).fill(o)},ariaSnapshot:async()=>R(t)};return v(e,"Page")}const ye="workspace.command";typeof window<"u"&&(M(w),window.__volterGameEval=async(t,e)=>{const r=await $({src:t,...e===void 0?{}:{instance:e}});if(!r.ok)throw new Error(r.error??"game-eval failed");return r.data?.result??null});async function $(t){if(!y()&&!g())return d();const e=t.src;if(typeof e!="string")return{ok:!1,error:`game-eval requires a string "src" (the step's toString())`};const r=h();if(!r)return{ok:!1,error:"game-eval: no play-mode game container is mounted yet",data:{code:"GAME_EVAL_ERROR"}};const o=t.instance,i=typeof o=="string"?o:void 0;let n;try{n=new Function("scope",`return (${e})(scope)`)}catch(a){return{ok:!1,error:`game-eval: failed to reconstruct the step function from source — ${a instanceof Error?a.message:String(a)}`,data:{code:"GAME_EVAL_ERROR"}}}const s={page:A(r),modules:k(i),instanceId:i??w()};try{const a=await n(s),c=a===void 0?null:a;try{JSON.stringify(c)}catch{return{ok:!1,error:`game-eval: the step returned an unserializable value (${Object.prototype.toString.call(c)}) — return plain data (numbers, strings, arrays, plain objects), not live module objects.`,data:{code:"GAME_EVAL_UNSERIALIZABLE"}}}return{ok:!0,data:{result:c}}}catch(a){return{ok:!1,error:`game-eval step failed: ${a instanceof Error?a.stack??a.message:String(a)}`,data:{code:"GAME_EVAL_ERROR"}}}}async function H(t){if(!y()&&!g())return d();const e=t.src;if(typeof e!="string")return{ok:!1,error:`page-script requires a string "src" (the step's toString())`};const r=h();if(!r)return{ok:!1,error:"page-script: no play-mode game container is mounted yet",data:{code:"PAGE_SCRIPT_ERROR"}};let o;try{o=new Function("page",`return (${e})(page)`)}catch(n){return{ok:!1,error:`page-script: failed to reconstruct the step function from source — ${n instanceof Error?n.message:String(n)}`,data:{code:"PAGE_SCRIPT_ERROR"}}}const i=A(r);try{const n=await o(i);return{ok:!0,data:{result:n===void 0?null:n}}}catch(n){return n instanceof E?{ok:!1,error:n.message,data:{code:"PAGE_SHIM_UNSUPPORTED",member:n.member,supported:[...n.supported]}}:{ok:!1,error:`page-script: step threw — ${n instanceof Error?n.message:String(n)}`,data:{code:"PAGE_SCRIPT_ERROR"}}}}const he={"game-eval":{timeoutMs:6e4,derivedRefresh:"always",handle:$},"page-script":{timeoutMs:6e4,derivedRefresh:"always",handle:H}};export{he as commands,ye as point};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ab as m}from"./index-C5ZAyrKq.js";import{b as p,a as e,c as n,s}from"./game-network-DW5ARz4R.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-BlrALjM3.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-ggQWxtu-.js";import"./contract-system-adapters-Cn7OW_ay.js";import"./game-contract-seams-tyKDsfaP.js";import"./seeded-random-BJthDRMu.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-CYeuVCYr.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-bQE2NA0D.js";import"./live-project-verbs-CdFmLYOo.js";import"./capability-coverage-ByWftxk4.js";import"./edit-mode-authoring-D5f7aHHl.js";import"./json-history-resource-Uqrihfc8.js";import"./binding-resolver-DGbk9_XR.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-Do9J6nsb.js";import"./canvas-entry-runtime-BST8yRuK.js";import"./three-ingest-runtime-CwTqAHgX.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-0QjJWb7i.js";import"./ingest-source-persistence-6ShMoSCa.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-hRLF0BeO.js";import"./mounted-authoring-DxMISwvR.js";import"./entity-object-MKYemTFM.js";import"./user-data-C84W0V47.js";import"./workspace-arrangement-DqG5sUns.js";import"./three-contract-Dkt6PmWY.js";import"./three-DiL6vMXq.js";import"./editor-layers-D-CTUqco.js";import"./component-instance-root-DLI40MiB.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-CkLR2zGf.js";import"./source-persistence-backend-au3WtEn6.js";import"./three-projection-core-B7Lf8tOp.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-Cx8yhuwt.js";import"./deferred-ingest-play-B2JUlwlT.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CnzxMtYz.js";import"./board-guides-CjHQ9Ynm.js";import"./relative-import-specifier-CPFTrxi4.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-Cz3Zyx_1.js";import"./inference-diagnostics-DLt9ql9I.js";import"./writer-tw6EcuVO.js";import"./three-state-BCACvUtm.js";import"./editor-shell-store-DHVWS8cE.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BARIpMu-.js";const jt="workspace.command",a=()=>({ok:!1,error:"not in play mode — start play before using the debug seam"}),zt={"set-instance-count":{derivedRefresh:"always",handle:o=>{if(!e())return a();const r=o.names;if(Array.isArray(r)&&r.every(i=>typeof i=="string"))return r.length<1?{ok:!1,error:'set-instance-count "names" must have at least one entry.'}:(n(r),{ok:!0});const t=o.count;return typeof t!="number"||!Number.isFinite(t)||t<1?{ok:!1,error:`set-instance-count requires a whole "count" >= 1 (or a "names" array), got ${String(t)}.`}:(s(Math.floor(t)-1),{ok:!0})}},"list-instances":{derivedRefresh:"if-content-changed",handle:()=>({ok:!0,data:{instances:m(),named:p()}})}};export{zt as commands,jt as point};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as t}from"./game-network-DW5ARz4R.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-C5ZAyrKq.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./native-debug-module-BlrALjM3.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-ggQWxtu-.js";import"./contract-system-adapters-Cn7OW_ay.js";import"./game-contract-seams-tyKDsfaP.js";import"./seeded-random-BJthDRMu.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-CYeuVCYr.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-bQE2NA0D.js";import"./live-project-verbs-CdFmLYOo.js";import"./capability-coverage-ByWftxk4.js";import"./edit-mode-authoring-D5f7aHHl.js";import"./json-history-resource-Uqrihfc8.js";import"./binding-resolver-DGbk9_XR.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-Do9J6nsb.js";import"./canvas-entry-runtime-BST8yRuK.js";import"./three-ingest-runtime-CwTqAHgX.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-0QjJWb7i.js";import"./ingest-source-persistence-6ShMoSCa.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-hRLF0BeO.js";import"./mounted-authoring-DxMISwvR.js";import"./entity-object-MKYemTFM.js";import"./user-data-C84W0V47.js";import"./workspace-arrangement-DqG5sUns.js";import"./three-contract-Dkt6PmWY.js";import"./three-DiL6vMXq.js";import"./editor-layers-D-CTUqco.js";import"./component-instance-root-DLI40MiB.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-CkLR2zGf.js";import"./source-persistence-backend-au3WtEn6.js";import"./three-projection-core-B7Lf8tOp.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-Cx8yhuwt.js";import"./deferred-ingest-play-B2JUlwlT.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CnzxMtYz.js";import"./board-guides-CjHQ9Ynm.js";import"./relative-import-specifier-CPFTrxi4.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-Cz3Zyx_1.js";import"./inference-diagnostics-DLt9ql9I.js";import"./writer-tw6EcuVO.js";import"./three-state-BCACvUtm.js";import"./editor-shell-store-DHVWS8cE.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BARIpMu-.js";const yt="workspace.service";function zt(){t()}export{yt as point,zt as start};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/r3f-design-session-lsbFnoWH.js","assets/index-C5ZAyrKq.js","assets/index-nmcBqr7Y.js","assets/_commonjsHelpers-D6-XlEtG.js","assets/index-D_NuPfjr.js","assets/jsx-runtime-DPjLkJKQ.js","assets/index-CtzuWnCS.js","assets/index-CinJrH5C.js","assets/index-FUuS4qwW.js","assets/client-DNXj_opT.js","assets/index-CPiRKiDC.css","assets/edit-mode-authoring-D5f7aHHl.js","assets/game-network-DW5ARz4R.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-BlrALjM3.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-ggQWxtu-.js","assets/contract-system-adapters-Cn7OW_ay.js","assets/game-contract-seams-tyKDsfaP.js","assets/seeded-random-BJthDRMu.js","assets/game-audio-BeCyd0Ha.js","assets/rapier-physics-adapter-CaZqWLu0.js","assets/events-156d8d12.esm-CYeuVCYr.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/index-bQE2NA0D.js","assets/live-project-verbs-CdFmLYOo.js","assets/capability-coverage-ByWftxk4.js","assets/json-history-resource-Uqrihfc8.js","assets/binding-resolver-DGbk9_XR.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-Do9J6nsb.js","assets/canvas-entry-runtime-BST8yRuK.js","assets/three-ingest-runtime-CwTqAHgX.js","assets/EffectComposer-BEAt0PtQ.js","assets/CopyShader-BzTUYzf6.js","assets/ShaderPass-DTnDQXm0.js","assets/Pass-D1MRT672.js","assets/CSS3DRenderer-BsAqfavI.js","assets/relative-path-guard-GiM7Lsz8.js","assets/react-root-BHA-cdrW.js","assets/editor-presentation-activity-CqJH4G9t.js","assets/active-ingest-0QjJWb7i.js","assets/ingest-source-persistence-6ShMoSCa.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation-hRLF0BeO.js","assets/mounted-authoring-DxMISwvR.js","assets/entity-object-MKYemTFM.js","assets/user-data-C84W0V47.js","assets/workspace-arrangement-DqG5sUns.js","assets/three-contract-Dkt6PmWY.js","assets/three-DiL6vMXq.js","assets/editor-layers-D-CTUqco.js","assets/component-instance-root-DLI40MiB.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter-CkLR2zGf.js","assets/source-persistence-backend-au3WtEn6.js","assets/three-projection-core-B7Lf8tOp.js","assets/body-marks-C1LxJtQb.js","assets/user-data-CODoGZqA.js","assets/object-marks-BnvSuCTt.js","assets/structural-ids-BOo2BRoY.js","assets/object3d-authoring-subject-XccsO0xG.js","assets/r3f-physics-binding-Cx8yhuwt.js","assets/deferred-ingest-play-B2JUlwlT.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-CnzxMtYz.js","assets/board-guides-CjHQ9Ynm.js","assets/relative-import-specifier-CPFTrxi4.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-Cz3Zyx_1.js","assets/inference-diagnostics-DLt9ql9I.js","assets/writer-tw6EcuVO.js","assets/three-state-BCACvUtm.js","assets/editor-shell-store-DHVWS8cE.js","assets/output-pass-HurwNl0G.js","assets/viewport-door-BARIpMu-.js","assets/scene-framing-DkZKDwH3.js","assets/assets-BcrMQHRv.js","assets/loader-BTUKnX5Q.js","assets/KTX2Loader-CaqVE6nY.js","assets/GLTFLoader-KeoruJgS.js","assets/BufferGeometryUtils-B22h7jo4.js","assets/create-runtime-B_uTwsmi.js","assets/binding-Bmxqznjk.js","assets/root-stacking-BEd9ZvxC.js","assets/setup-renderer-F9mG7t6r.js","assets/index-DHhMOs_s.js","assets/defaults-DKiBJCPN.js","assets/render-settings-CRyDhHyz.js","assets/render-features-DMSV2qKJ.js","assets/loop-gate-report-N52EWFGD.js","assets/system-slot-E2mEdiih.js","assets/performance-profiler-CMbwGBuk.js","assets/live-gesture-lock-DJbrjOqf.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{_ as s,az as n}from"./index-C5ZAyrKq.js";import{r as a}from"./design-time-mount-registry-DUpXCg1U.js";import{q as c}from"./edit-mode-authoring-D5f7aHHl.js";import{a as u}from"./json-history-resource-Uqrihfc8.js";import{o as h}from"./three-authoring-adapter-CkLR2zGf.js";import{t as i}from"./editor-shell-store-DHVWS8cE.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./component-instance-root-DLI40MiB.js";import"./user-data-C84W0V47.js";import"./workspace-arrangement-DqG5sUns.js";import"./source-persistence-backend-au3WtEn6.js";import"./ingest-source-persistence-6ShMoSCa.js";import"./three-projection-core-B7Lf8tOp.js";import"./editor-layers-D-CTUqco.js";import"./three-DiL6vMXq.js";import"./entity-object-MKYemTFM.js";import"./three-contract-Dkt6PmWY.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three.core-3arARmh6.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./r3f-physics-binding-Cx8yhuwt.js";import"./output-pass-HurwNl0G.js";import"./three.module-BLhyNg0e.js";import"./Pass-D1MRT672.js";const U="workspace.service";function X(){const r=s(()=>import("./r3f-design-session-lsbFnoWH.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98]));r.catch(()=>{});const m=n("three",(t,o)=>h(i(t),()=>i(t).scene,o,u(o))),e=a({kind:"three",owner:"@volter/editor-game/three/three-authoring",async mountWorldRootSession(t){const o=t,{mountR3FDesignSession:p}=await r;return p(o.store,o.composite,o.renderer)}});return c(),()=>{e(),m()}}export{U as point,X as start};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e as r}from"./three-integration-DXOFI88n.js";import"./index-C5ZAyrKq.js";import"./index-nmcBqr7Y.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./jsx-runtime-DPjLkJKQ.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./renderer-ownership-BovSEcLv.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./preview-renderer-BrYNFV1p.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./layered-pick-CAVQMPI7.js";import"./root-stacking-BEd9ZvxC.js";import"./user-data-C84W0V47.js";import"./workspace-arrangement-DqG5sUns.js";import"./model-thumbnail-BmQs-h6t.js";import"./studio-environment-R9qXUUcC.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./object3d-document-session-registry-CMRJdFp6.js";import"./three-state-BCACvUtm.js";import"./editor-shell-store-DHVWS8cE.js";import"./output-pass-HurwNl0G.js";import"./Pass-D1MRT672.js";import"./editor-layers-D-CTUqco.js";import"./entity-object-MKYemTFM.js";import"./three-contract-Dkt6PmWY.js";import"./hierarchy-marks-BuCO8Ke-.js";import"./component-instance-root-DLI40MiB.js";import"./viewport-door-BARIpMu-.js";import"./content-bounds-DROIchTa.js";import"./asset-preview-DxlSdRZn.js";import"./bitmap-label-Ct4k6ehY.js";const Q="workspace.service";function R(){return r()}export{Q as point,R as start};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const a={OPERATION_NOT_FOUND:"OPERATION_NOT_FOUND",INVALID_INPUT:"INVALID_INPUT",INVALID_OUTPUT:"INVALID_OUTPUT",INTERNAL_ERROR:"INTERNAL_ERROR"},m=Symbol.for("@volter/sdk.ToolError");class g extends Error{[m]=!0;code;data;constructor(e,o,r){super(o),this.name="ToolError",this.code=e,this.data=r}}function O(t){if(t instanceof g)return!0;if(t===null||typeof t!="object")return!1;const e=t;return e[m]===!0&&typeof e.code=="string"&&typeof e.message=="string"}function d(t){return t.map(e=>({path:[...e.path],message:e.message,code:e.code}))}const f=["project","editor","play","cinematic"],T=/^[a-z][a-zA-Z0-9]*(\.[a-z][a-zA-Z0-9]*)+$/;function N(t){const e=t.indexOf(".");return e===-1?t:t.slice(0,e)}function I(t){if(!T.test(t.name))throw new Error(`defineTool: "${t.name}" is not a valid dotted operation name (expected e.g. "project.scene.read" — lowercase-leading segments joined by dots).`);const e=N(t.name);if(!f.includes(e))throw new Error(`defineTool: "${t.name}" has unknown namespace "${e}" — expected one of ${f.join(", ")} (§5.7).`);const o=new Set;for(const r of t.errors){if(o.has(r.code))throw new Error(`defineTool: "${t.name}" declares duplicate error code "${r.code}".`);o.add(r.code)}return t}function R(t,e){if(O(e)){const r=t.errors.find(s=>s.code===e.code);if(!r)return{code:a.INTERNAL_ERROR,message:`"${t.name}" threw undeclared error code "${e.code}".`,data:{undeclaredCode:e.code,message:e.message}};if(r.data){const s=r.data.safeParse(e.data);return s.success?{code:e.code,message:e.message,data:s.data}:{code:a.INVALID_OUTPUT,message:`"${t.name}" threw declared code "${e.code}" but its data failed that code's own schema.`,issues:d(s.error.issues)}}return{code:e.code,message:e.message,...e.data!==void 0?{data:e.data}:{}}}const o=e instanceof Error?e.message:String(e);return{code:a.INTERNAL_ERROR,message:`"${t.name}" failed: ${o}`,data:{message:o}}}function h(t){const{impl:e,...o}=t;return o}function u(t,e,o=[]){if(Array.isArray(t)&&Array.isArray(e)){for(let s=0;s<t.length;s++){const n=u(t[s],e[s],[...o,s]);if(n)return n}return null}if(t===null||e===null||typeof t!="object"||typeof e!="object"||Array.isArray(t)||Array.isArray(e))return null;const r=e;for(const[s,n]of Object.entries(t)){if(!Object.hasOwn(r,s))return[...o,s];const i=u(n,r[s],[...o,s]);if(i)return i}return null}class A{definitions=new Map;register(e){if(this.definitions.has(e.name))throw new Error(`ToolRegistry.register: "${e.name}" is already registered — operation names must be unique and stable.`);this.definitions.set(e.name,e)}listOperations(){return[...this.definitions.values()].map(h)}getOperation(e){return this.definitions.get(e)}has(e){return this.definitions.has(e)}async dispatch(e,o,r={}){const s=this.definitions.get(e);if(!s)return{ok:!1,error:{code:a.OPERATION_NOT_FOUND,message:`No operation is registered as "${e}".`,data:{name:e}}};const n=s.input.safeParse(o);if(!n.success)return{ok:!1,error:{code:a.INVALID_INPUT,message:`Input for "${e}" failed schema validation.`,issues:d(n.error.issues)}};const i=u(o,n.data);if(i)return{ok:!1,error:{code:a.INVALID_INPUT,message:`Input for "${e}" contains an unknown field.`,issues:[{path:i,message:"Unknown input field. Check spelling; unknown fields are never ignored.",code:"unrecognized_key"}]}};let l;try{l=await s.impl(n.data,r)}catch(p){return{ok:!1,error:R(s,p)}}const c=s.result.safeParse(l);return c.success?{ok:!0,data:c.data}:{ok:!1,error:{code:a.INVALID_OUTPUT,message:`Result of "${e}" failed schema validation (implementation bug).`,issues:d(c.error.issues)}}}}export{g as ToolError,A as ToolRegistry,I as defineTool};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as o}from"./jsx-runtime-DPjLkJKQ.js";import{r as t}from"./index-C5ZAyrKq.js";import{r as m}from"./index-nmcBqr7Y.js";import{P as p}from"./PlayBar-DsMitSgy.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-D_NuPfjr.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./configurations-XP9YLkrt.js";import"./run-selection-B0jOdyYt.js";import"./game-network-DW5ARz4R.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-BlrALjM3.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-ggQWxtu-.js";import"./contract-system-adapters-Cn7OW_ay.js";import"./game-contract-seams-tyKDsfaP.js";import"./seeded-random-BJthDRMu.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-CYeuVCYr.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./index-bQE2NA0D.js";import"./live-project-verbs-CdFmLYOo.js";import"./capability-coverage-ByWftxk4.js";import"./edit-mode-authoring-D5f7aHHl.js";import"./json-history-resource-Uqrihfc8.js";import"./binding-resolver-DGbk9_XR.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-Do9J6nsb.js";import"./canvas-entry-runtime-BST8yRuK.js";import"./three-ingest-runtime-CwTqAHgX.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./relative-path-guard-GiM7Lsz8.js";import"./react-root-BHA-cdrW.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./active-ingest-0QjJWb7i.js";import"./ingest-source-persistence-6ShMoSCa.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-hRLF0BeO.js";import"./mounted-authoring-DxMISwvR.js";import"./entity-object-MKYemTFM.js";import"./user-data-C84W0V47.js";import"./workspace-arrangement-DqG5sUns.js";import"./three-contract-Dkt6PmWY.js";import"./three-DiL6vMXq.js";import"./editor-layers-D-CTUqco.js";import"./component-instance-root-DLI40MiB.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-CkLR2zGf.js";import"./source-persistence-backend-au3WtEn6.js";import"./three-projection-core-B7Lf8tOp.js";import"./body-marks-C1LxJtQb.js";import"./user-data-CODoGZqA.js";import"./object-marks-BnvSuCTt.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-Cx8yhuwt.js";import"./deferred-ingest-play-B2JUlwlT.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-CnzxMtYz.js";import"./board-guides-CjHQ9Ynm.js";import"./relative-import-specifier-CPFTrxi4.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-Cz3Zyx_1.js";import"./inference-diagnostics-DLt9ql9I.js";import"./writer-tw6EcuVO.js";import"./three-state-BCACvUtm.js";import"./editor-shell-store-DHVWS8cE.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-BARIpMu-.js";const Cr="workspace.header",Dr=0;function Fr(){const{project:r}=t();return m.useSyncExternalStore(r.subscribe,r.mounts,r.mounts)?o.jsx(p,{}):null}export{Fr as default,Dr as order,Cr as point};
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Loopback Colyseus server harness for headless multiplayer tests — a
|
|
3
|
-
* near-verbatim copy of the engine repo's own
|
|
4
|
-
* `packages/editor/test/helpers/colyseus-loopback.ts`, shipped INTO every
|
|
5
|
-
* scaffolded project so a multiplayer game can prove itself headlessly:
|
|
6
|
-
* a test under `tests/logic/` seats two peers and drives them. Driving a
|
|
7
|
-
* second peer against the
|
|
8
|
-
* RUNNING game is a different job, and its door is `volter-game-editor eval`.
|
|
9
|
-
*
|
|
10
|
-
* Starts the REAL `startColyseus` bootstrap (`./colyseus-setup.js`) with the
|
|
11
|
-
* shipped room registry (`./rooms.js` — `ArenaRoom` + `GameRoom`) on an
|
|
12
|
-
* OS-assigned ephemeral port, in-process. No mocks: this is the exact same
|
|
13
|
-
* `Server` / `WebSocketTransport` a real `npm run server` would boot, just on
|
|
14
|
-
* `port: 0` so concurrent test runs never collide on `2567`.
|
|
15
|
-
*
|
|
16
|
-
* Usage:
|
|
17
|
-
* ```ts
|
|
18
|
-
* const server = await startLoopbackColyseus();
|
|
19
|
-
* try {
|
|
20
|
-
* const client = new Client(server.url);
|
|
21
|
-
* const room = await client.joinOrCreate('game_room', {}, undefined, undefined, {
|
|
22
|
-
* allowDebugCommands: true,
|
|
23
|
-
* });
|
|
24
|
-
* // ...
|
|
25
|
-
* } finally {
|
|
26
|
-
* server.stop();
|
|
27
|
-
* }
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
|
|
31
|
-
import { startColyseus } from './colyseus-setup.js';
|
|
32
|
-
import { rooms } from './rooms.js';
|
|
33
|
-
|
|
34
|
-
export interface LoopbackColyseus {
|
|
35
|
-
/** `ws://127.0.0.1:<port>` — the ephemeral port the server actually bound. */
|
|
36
|
-
url: string;
|
|
37
|
-
/** Tear down the server (closes the underlying HTTP/WS server). */
|
|
38
|
-
stop: () => void;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* `@colyseus/core`'s matchmaker setup unconditionally `import("@pm2/io")`s and
|
|
43
|
-
* registers metrics, which makes `@pm2/io` probe `process.send` and start
|
|
44
|
-
* speaking the PM2 agent protocol (`axm:*` messages) over it. Under vitest's
|
|
45
|
-
* forked worker pool, `process.send` is real (the runner's own parent<->child
|
|
46
|
-
* channel), so those messages get relayed to the parent and crash its
|
|
47
|
-
* deserializer — nothing to do with this test's own logic. Patch `process.send`
|
|
48
|
-
* to drop only `axm:*` payloads for the harness's lifetime; everything else
|
|
49
|
-
* (vitest's own protocol) passes through untouched.
|
|
50
|
-
*/
|
|
51
|
-
function suppressPm2IoIpcNoise(): () => void {
|
|
52
|
-
const original = process.send?.bind(process);
|
|
53
|
-
if (!original) return () => {};
|
|
54
|
-
const patched = (message: unknown, ...rest: unknown[]): boolean => {
|
|
55
|
-
const type = (message as { type?: unknown } | null)?.type;
|
|
56
|
-
if (typeof type === 'string' && type.startsWith('axm:')) return true;
|
|
57
|
-
return (original as (...a: unknown[]) => boolean)(message, ...rest);
|
|
58
|
-
};
|
|
59
|
-
process.send = patched as NonNullable<typeof process.send>;
|
|
60
|
-
return () => {
|
|
61
|
-
process.send = original;
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/** Boot the real Colyseus server on an ephemeral loopback port. */
|
|
66
|
-
export async function startLoopbackColyseus(): Promise<LoopbackColyseus> {
|
|
67
|
-
const restorePm2IoIpc = suppressPm2IoIpcNoise();
|
|
68
|
-
const handle = await startColyseus({ rooms, port: 0 });
|
|
69
|
-
return {
|
|
70
|
-
url: `ws://127.0.0.1:${handle.port}`,
|
|
71
|
-
stop: () => {
|
|
72
|
-
handle.stop();
|
|
73
|
-
restorePm2IoIpc();
|
|
74
|
-
},
|
|
75
|
-
};
|
|
76
|
-
}
|