@volter/game-editor 0.5.71 → 0.5.72

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/BUNDLED_NOTICES +18 -18
  2. package/catalog/entries/music.json +2 -2
  3. package/dist/.vite/manifest.json +2149 -2124
  4. package/dist/assets/{AssetBudgetPanel-CbSEGrcI.js → AssetBudgetPanel-TYxRsWF2.js} +3 -3
  5. package/dist/assets/{AudioViewer-DbO2vY3o.js → AudioViewer-SyAuzT6d.js} +1 -1
  6. package/dist/assets/{CanvasBoardDocument-BWmMyiAX.js → CanvasBoardDocument-bGKEifjb.js} +1 -1
  7. package/dist/assets/{CanvasSceneViewport-CrmQdonP.js → CanvasSceneViewport-DOvsDDXx.js} +1 -1
  8. package/dist/assets/{ColorInput-BOPGcPsk.js → ColorInput-ZEZlxzBn.js} +1 -1
  9. package/dist/assets/{EntityModelDocument-DUZaNI2v.js → EntityModelDocument-DLYhSTh-.js} +1 -1
  10. package/dist/assets/{EnvironmentAssetDocument-Bqsm2NLI.js → EnvironmentAssetDocument-BNcQR6yX.js} +1 -1
  11. package/dist/assets/{GameplaySessionTimeline-DmGEiHHD.js → GameplaySessionTimeline-B6GEizjr.js} +1 -1
  12. package/dist/assets/{ImageViewer-BXQ1dXgz.js → ImageViewer-CVnrpv0B.js} +1 -1
  13. package/dist/assets/InspectorObjectPreview-BanF_X-B.js +1 -0
  14. package/dist/assets/{JsonAssetDocument-BPQR7OXc.js → JsonAssetDocument-Cztt4zjY.js} +1 -1
  15. package/dist/assets/{LiveModuleDocument-DnlLSCZw.js → LiveModuleDocument-26blElg2.js} +1 -1
  16. package/dist/assets/{LutAssetDocument-CMDB77UF.js → LutAssetDocument-BnsiHHrS.js} +1 -1
  17. package/dist/assets/{ModelAssetDocument-C7Su96Mo.js → ModelAssetDocument-B5Yp9L8F.js} +1 -1
  18. package/dist/assets/{NonThreeAuthoringBootstrap-BqY5ceef.js → NonThreeAuthoringBootstrap-BHOfZ9sF.js} +1 -1
  19. package/dist/assets/{Object3DDocumentToolbar-CDYwPpW6.js → Object3DDocumentToolbar-B6BaAth8.js} +1 -1
  20. package/dist/assets/Object3DDocumentViewport-B4A-C5QD.js +2 -0
  21. package/dist/assets/{Object3DPreview-B_3FCd_-.js → Object3DPreview-BbPdqVcd.js} +1 -1
  22. package/dist/assets/{OnlineAssetDetail-BMAMYfaN.js → OnlineAssetDetail-B9ku5sHJ.js} +1 -1
  23. package/dist/assets/{PlayBar-DvpDIJXg.js → PlayBar-C72OdJpY.js} +1 -1
  24. package/dist/assets/{QuarksAssetDocument-BbG3zMIR.js → QuarksAssetDocument-B8WiFZqH.js} +1 -1
  25. package/dist/assets/{ReactCanvasControls-CnIJItuA.js → ReactCanvasControls-B-P7GL52.js} +1 -1
  26. package/dist/assets/{RootSelectionOverlay-47LRczuj.js → RootSelectionOverlay-DcHmoze3.js} +1 -1
  27. package/dist/assets/{ShaderAssetDocument-KDN9ZgDF.js → ShaderAssetDocument-CAx5sVKJ.js} +1 -1
  28. package/dist/assets/{ShadowEditor-CBNfgpsF.js → ShadowEditor-CCch2nLq.js} +1 -1
  29. package/dist/assets/{SourceAssetViewer-LGC-eTLS.js → SourceAssetViewer-bAfvPckn.js} +1 -1
  30. package/dist/assets/{StageHost-BOin7YcY.js → StageHost-D_2vBQsa.js} +2 -2
  31. package/dist/assets/{StoryPreviewMount-CN-jnvnn.js → StoryPreviewMount-BNoIvc7l.js} +1 -1
  32. package/dist/assets/{ThreeBoardDocument-DgC6xWZu.js → ThreeBoardDocument-Bvu00xSO.js} +2 -2
  33. package/dist/assets/{ThreeIsolationSceneContent-ieFf0WbO.js → ThreeIsolationSceneContent-DGtDG--4.js} +1 -1
  34. package/dist/assets/{ToolObject3DPreview-B15_D8MJ.js → ToolObject3DPreview-BKlQKnPe.js} +1 -1
  35. package/dist/assets/{Toolbar-CAnrijz7.js → Toolbar-TU3vLh4L.js} +1 -1
  36. package/dist/assets/{TransientHint-BiIz-7Hh.js → TransientHint-K6pZSJgG.js} +1 -1
  37. package/dist/assets/{VideoViewer-CrP78U5w.js → VideoViewer-DrtHx0m_.js} +1 -1
  38. package/dist/assets/{ViewportShadingMenu-BfoDB2WO.js → ViewportShadingMenu-zMKOlcUM.js} +1 -1
  39. package/dist/assets/{active-ingest-CHE8woWv.js → active-ingest-gUx8jeyJ.js} +2 -2
  40. package/dist/assets/{animation-clock-DWhLTlyc.js → animation-clock-D-tLCTj6.js} +1 -1
  41. package/dist/assets/{animation-mixers.service-xdiawk5y.js → animation-mixers.service-CuNPgPSv.js} +1 -1
  42. package/dist/assets/{animation-timeline.utility-Czb7Ax-Z.js → animation-timeline.utility-BzbSVAmj.js} +1 -1
  43. package/dist/assets/{asset-budget-asset.menu-CpHLTATf.js → asset-budget-asset.menu-B_A367BM.js} +1 -1
  44. package/dist/assets/{asset-budget.action-C_ZI2rdN.js → asset-budget.action-UgvyFZGk.js} +1 -1
  45. package/dist/assets/{asset-budget.document-hmCS7sH2.js → asset-budget.document-C20mZfef.js} +1 -1
  46. package/dist/assets/{asset-budget.menu-BZyzyVdk.js → asset-budget.menu-C1THP8Ir.js} +1 -1
  47. package/dist/assets/{asset-editor-persistence-BIFP2LgP.js → asset-editor-persistence-D-YVUM-o.js} +1 -1
  48. package/dist/assets/{asset-loaders-DqbPEavT.js → asset-loaders-ClM8urgu.js} +1 -1
  49. package/dist/assets/{asset-preview-BzDHm81_.js → asset-preview-BD4OZrEp.js} +1 -1
  50. package/dist/assets/{audio-unlock.service-C2a8hsP0.js → audio-unlock.service-krSi_8MS.js} +1 -1
  51. package/dist/assets/{audio.utility-VklURuQw.js → audio.utility-DjFH8tZN.js} +1 -1
  52. package/dist/assets/autoplay.service-C_iwBCWg.js +1 -0
  53. package/dist/assets/{babylon-authoring-adapter-DBBX2Hem.js → babylon-authoring-adapter-C6qqXaiV.js} +1 -1
  54. package/dist/assets/{binding-resolver-aDFCbAcG.js → binding-resolver-B6upIc33.js} +2 -2
  55. package/dist/assets/{blender-node-editor.document-BdX0SCxH.js → blender-node-editor.document-DsDBkUHt.js} +1 -1
  56. package/dist/assets/{blender-properties-tab-BVdvAiLS.js → blender-properties-tab-9RSYwbBS.js} +1 -1
  57. package/dist/assets/{blender-runtime-host-B1bjBV91.js → blender-runtime-host-DtpNeLGc.js} +1 -1
  58. package/dist/assets/{blender-runtime-skin-BEbT46i_.js → blender-runtime-skin-EKCns7fu.js} +1 -1
  59. package/dist/assets/{blender-runtime.document-BAQTV4az.js → blender-runtime.document-CmLNi8tH.js} +1 -1
  60. package/dist/assets/{blender-timeline.document-BTwdMhSn.js → blender-timeline.document-qArofonU.js} +1 -1
  61. package/dist/assets/{blender-uv-editor.document-CqxvqlSw.js → blender-uv-editor.document-Dv3ihJD4.js} +1 -1
  62. package/dist/assets/{blender-version.status-D-kPKENT.js → blender-version.status-BEIisS2r.js} +1 -1
  63. package/dist/assets/{blender.command-BABpNHlJ.js → blender.command-1xwFaSJs.js} +1 -1
  64. package/dist/assets/{board-guides-BVkDJqat.js → board-guides-DnI_fMSm.js} +1 -1
  65. package/dist/assets/bridge.command-C5EYO4OS.js +3 -0
  66. package/dist/assets/{browserAll-DjSaXYpJ.js → browserAll-Co_vDC8r.js} +1 -1
  67. package/dist/assets/{build-player.document-viLZOb6A.js → build-player.document-LBxyS2AI.js} +1 -1
  68. package/dist/assets/{build-profiles.document-C9gM1NV6.js → build-profiles.document-B_6Df2Sp.js} +1 -1
  69. package/dist/assets/{build-progress.status-DKw0YdnU.js → build-progress.status-Cdt1Zuu_.js} +1 -1
  70. package/dist/assets/{build-session-CpAT9iQU.js → build-session-DKHnqiXT.js} +1 -1
  71. package/dist/assets/{build.action-BrSZc3kA.js → build.action-DRDdqtZb.js} +1 -1
  72. package/dist/assets/{build.command-CVB-50ii.js → build.command-ry_OUUh9.js} +1 -1
  73. package/dist/assets/{build.header-BhOtTPyg.js → build.header-CiTCHvry.js} +1 -1
  74. package/dist/assets/{build.menu-BHIVHysW.js → build.menu-DiViXEwh.js} +1 -1
  75. package/dist/assets/{build.service-C5awmXgd.js → build.service-BSGXA-SQ.js} +1 -1
  76. package/dist/assets/{camera-B_ssMgXA.js → camera-B8Mdswus.js} +1 -1
  77. package/dist/assets/{camera-runtime.inspector-BAc2xnsF.js → camera-runtime.inspector-CupJRuBs.js} +1 -1
  78. package/dist/assets/{canvas-design-mount-DW2RoIFP.js → canvas-design-mount-DS8xWFiw.js} +3 -3
  79. package/dist/assets/{canvas-entry-runtime-BQdfSw1B.js → canvas-entry-runtime-BURQgaLB.js} +2 -2
  80. package/dist/assets/{canvas-preview-frames-Bc44u87o.js → canvas-preview-frames-Crj5bFty.js} +1 -1
  81. package/dist/assets/{canvas-story-capture.service-DTLE6FK3.js → canvas-story-capture.service-DQ6Zw3b0.js} +2 -2
  82. package/dist/assets/{capability-coverage-6I_iG0kk.js → capability-coverage-Ctnmu2LE.js} +1 -1
  83. package/dist/assets/{collaboration-presence-wD0oKl7P.js → collaboration-presence-C-yh_YBU.js} +1 -1
  84. package/dist/assets/{collider-BQKrXUbD.js → collider-C_I5Xdtu.js} +1 -1
  85. package/dist/assets/{component-board.service-BzZ2JQC8.js → component-board.service-BJ2DCCXQ.js} +2 -2
  86. package/dist/assets/component-board.service-COaCvlbA.js +2 -0
  87. package/dist/assets/{component-board.service-Cnxftkv8.js → component-board.service-DwPBo3xK.js} +2 -2
  88. package/dist/assets/{component-contracts.service-BJ73JRuk.js → component-contracts.service-RJCV5AAt.js} +1 -1
  89. package/dist/assets/{component-instance-root-9MmHwMal.js → component-instance-root-DjA11g2U.js} +1 -1
  90. package/dist/assets/{component-verbs.command-_nUoLZ1s.js → component-verbs.command-BwYzS1c0.js} +1 -1
  91. package/dist/assets/{component-verbs.service-D9qvuexk.js → component-verbs.service-CJvrj9av.js} +1 -1
  92. package/dist/assets/{config-DabjxySF.js → config-B4n-SqJs.js} +2 -2
  93. package/dist/assets/{configurations-CACHqi7T.js → configurations-Bqg2uvA4.js} +1 -1
  94. package/dist/assets/{connection.status-CfFK9wti.js → connection.status-BVL6eTcF.js} +1 -1
  95. package/dist/assets/{constraints.inspector-DvTTgVxM.js → constraints.inspector-CqY4o8xc.js} +1 -1
  96. package/dist/assets/{content-bounds-938XXJRy.js → content-bounds-C1-UpGMc.js} +1 -1
  97. package/dist/assets/{contract-system-adapters-D9Gcb7R7.js → contract-system-adapters-StvC0uNq.js} +1 -1
  98. package/dist/assets/{coverage.service-CyWmmos8.js → coverage.service-DI7ocYK8.js} +1 -1
  99. package/dist/assets/{create-runtime-D3CS8u84.js → create-runtime-DwcO7h9p.js} +1 -1
  100. package/dist/assets/{curve-CzIvpvWX.js → curve-CPd2jkVJ.js} +1 -1
  101. package/dist/assets/{data-asset-Dt3MP-sl.js → data-asset-B2UtWmua.js} +1 -1
  102. package/dist/assets/{data-ref-COkdIktX.js → data-ref-B036kumM.js} +1 -1
  103. package/dist/assets/{debug-bridge-LaiaWRls.js → debug-bridge-BG5c-HdI.js} +1 -1
  104. package/dist/assets/{debug-registry-BUPLu5EA.js → debug-registry--ZkoQWOO.js} +1 -1
  105. package/dist/assets/{deferred-ingest-play-DVLTxYCk.js → deferred-ingest-play-CmJi6tql.js} +2 -2
  106. package/dist/assets/{design-time-canvas-mount-CkOQQvFW.js → design-time-canvas-mount-2sEXGMyx.js} +2 -2
  107. package/dist/assets/design-time-layers-CUuV2SKK.js +1 -0
  108. package/dist/assets/{design-time-mount.service-C8VeEbCC.js → design-time-mount.service-DaEwimcE.js} +2 -2
  109. package/dist/assets/design-time-mount.service-m_Alk1A4.js +2 -0
  110. package/dist/assets/design-time-react-mount-CcCuClCL.js +1 -0
  111. package/dist/assets/{document-preview-three-C8Pzyiai.js → document-preview-three-CRYXGELs.js} +1 -1
  112. package/dist/assets/{dom-authoring-adapter-71D70rVP.js → dom-authoring-adapter-BQor85A0.js} +1 -1
  113. package/dist/assets/{draco3d-XOYD2Hke.js → draco3d-zcIWTWKV.js} +1 -1
  114. package/dist/assets/{edit-mode-audio.service-OcRQ9Ozq.js → edit-mode-audio.service-BZ_MguuB.js} +1 -1
  115. package/dist/assets/{edit-mode-authoring-Du1CaTkH.js → edit-mode-authoring-B8NE5TIR.js} +1 -1
  116. package/dist/assets/{edit-mode-networking.service-BWz-nxiL.js → edit-mode-networking.service-BnR0zkEk.js} +1 -1
  117. package/dist/assets/editor-api-D9ypvXGZ.js +1 -0
  118. package/dist/assets/{editor-layers-qlgroPbE.js → editor-layers-B2mwHrrn.js} +1 -1
  119. package/dist/assets/{editor-shell-store-Di0waLQj.js → editor-shell-store-V7HfbGqh.js} +1 -1
  120. package/dist/assets/{entity-object-BeRdaaqQ.js → entity-object-BqQBOLh4.js} +1 -1
  121. package/dist/assets/{extend-CFEzxGGP.js → extend-vhXKbXwa.js} +1 -1
  122. package/dist/assets/{fork-menu-Bujed-pM.js → fork-menu-CGygk03X.js} +1 -1
  123. package/dist/assets/{frame-debugger-store-CCm_jyhx.js → frame-debugger-store-BFHDpd_6.js} +1 -1
  124. package/dist/assets/{game-contract-seams-DOwrbA13.js → game-contract-seams-DYi5-NnM.js} +1 -1
  125. package/dist/assets/{game-css-scope-transform-DuP554oX.js → game-css-scope-transform-tjGkUu5X.js} +1 -1
  126. package/dist/assets/game-document.service-jY65msUL.js +1 -0
  127. package/dist/assets/game-eval.command-C0iQ6vZD.js +2 -0
  128. package/dist/assets/{game-module-access-gOlo85at.js → game-module-access-BlCkxuVe.js} +1 -1
  129. package/dist/assets/game-network-gqU0qk9j.js +22 -0
  130. package/dist/assets/game-surface-defaults-D8S4cRxi.js +1 -0
  131. package/dist/assets/{gameplay-export-Clmlm922.js → gameplay-export-SxI2CiOU.js} +1 -1
  132. package/dist/assets/{gameplay-replay-Dxz93B2M.js → gameplay-replay-CLHO__fQ.js} +1 -1
  133. package/dist/assets/gameplay.command-CQyRcFql.js +1 -0
  134. package/dist/assets/{generation-jobs-_kzxAnbI.js → generation-jobs-C6l_ZBhD.js} +1 -1
  135. package/dist/assets/{generation.service-B533Kbco.js → generation.service-CgbxxPGg.js} +1 -1
  136. package/dist/assets/{generations-D5GcYf91.js → generations-DxppE9pN.js} +1 -1
  137. package/dist/assets/{generations.status-CDZ_eHJZ.js → generations.status-DIzDQ4QZ.js} +1 -1
  138. package/dist/assets/{hierarchy-marks-BrmGekuT.js → hierarchy-marks-CSQMtCBU.js} +1 -1
  139. package/dist/assets/{hosted-asset-materialization-DBLM2dtz.js → hosted-asset-materialization-TryBlckx.js} +1 -1
  140. package/dist/assets/{index-CP1Fd1fP.js → index-AagWeY8V.js} +1 -1
  141. package/dist/assets/{index-vjNaMgz6.js → index-C8u7p1K7.js} +1 -1
  142. package/dist/assets/{index-Q98tByQ2.js → index-Cj4vTL7A.js} +1 -1
  143. package/dist/assets/{index-CiqSswEV.js → index-CpMTewhc.js} +1 -1
  144. package/dist/assets/{index-C8jugKW5.js → index-DBIi3ND-.js} +1 -1
  145. package/dist/assets/{index-sTPbmuS8.js → index-d2quMKQM.js} +1 -1
  146. package/dist/assets/{index-BPUmREu0.js → index-u6amYfnv.js} +2 -2
  147. package/dist/assets/{index-iW3HFEJB.js → index-wjn2vkB8.js} +10 -10
  148. package/dist/assets/{index-BU93FMYM.js → index-xsQaHGma.js} +1 -1
  149. package/dist/assets/{inference-diagnostics-PcfFN6SD.js → inference-diagnostics-dZd7OUSj.js} +1 -1
  150. package/dist/assets/{ingest-boot-viewport-CrnkiTcJ.js → ingest-boot-viewport-Chqb3b3L.js} +1 -1
  151. package/dist/assets/{ingest-siblings-CQ95u6JM.js → ingest-siblings-DyKim2on.js} +1 -1
  152. package/dist/assets/{ingest-source-persistence-2MRBPgo0.js → ingest-source-persistence-D7jtuLEB.js} +1 -1
  153. package/dist/assets/{ingest.service-DQqEvbsT.js → ingest.service-C2q5JocL.js} +1 -1
  154. package/dist/assets/{inspect-CUNyIUii.js → inspect-Cl65lNby.js} +1 -1
  155. package/dist/assets/instances.command-CnrRMqOy.js +1 -0
  156. package/dist/assets/{json-history-resource-82d2z68R.js → json-history-resource-DWPJt2Bk.js} +1 -1
  157. package/dist/assets/{layered-pick-Db8YSlDp.js → layered-pick-wB2IUStv.js} +1 -1
  158. package/dist/assets/{light-PK9RLNmD.js → light-BK4WrhlP.js} +1 -1
  159. package/dist/assets/{live-project-verbs-CayyA6Tc.js → live-project-verbs-CSKXil-5.js} +1 -1
  160. package/dist/assets/{machine.document-CUO0RxDP.js → machine.document-Wxh00rVH.js} +1 -1
  161. package/dist/assets/{machines.finder-B-DdPjby.js → machines.finder-Bq84a20u.js} +1 -1
  162. package/dist/assets/{material-C_mvE2lW.js → material-DzSXsXYn.js} +1 -1
  163. package/dist/assets/{material-factory-kKKe4-DN.js → material-factory-6zzgHeT5.js} +1 -1
  164. package/dist/assets/{mesh-fUiQLtsU.js → mesh-DTSUSSfl.js} +1 -1
  165. package/dist/assets/{model-asset-sections.service-Dfkzhu6Q.js → model-asset-sections.service-eYy0ol55.js} +1 -1
  166. package/dist/assets/{model-inspection-DgqjTy5z.js → model-inspection-DM9bxnjs.js} +1 -1
  167. package/dist/assets/{model-thumbnail-DORLbXyw.js → model-thumbnail-DcI972TR.js} +1 -1
  168. package/dist/assets/{models.finder-DzW1Sg26.js → models.finder-CbfSmlRN.js} +1 -1
  169. package/dist/assets/{module-mode-BWoDD0oV.js → module-mode-BCWTllUj.js} +2 -2
  170. package/dist/assets/mount-canvas-ingest-root-BWvMQ1oU.js +2 -0
  171. package/dist/assets/{mount-dom-ingest-root-BOEt11vp.js → mount-dom-ingest-root-C8_3MNzH.js} +2 -2
  172. package/dist/assets/mount-ingest-root-CnfZV05y.js +2 -0
  173. package/dist/assets/mount-manifest-BHLEQ9MI.js +1 -0
  174. package/dist/assets/mount-three-ingest-root-Ci-ZYEqi.js +1 -0
  175. package/dist/assets/{mounted-authoring-30zCcxeV.js → mounted-authoring-CRGnDIkF.js} +1 -1
  176. package/dist/assets/{mounted-story-viewport-source-N0xrUdtm.js → mounted-story-viewport-source-BV9Vkz5j.js} +1 -1
  177. package/dist/assets/{native-debug-module-Cofo9dCU.js → native-debug-module-D0TMOJ5J.js} +1 -1
  178. package/dist/assets/{navigation-B9kSIhNu.js → navigation-Dtw9RIIP.js} +1 -1
  179. package/dist/assets/{navmesh.menu-DPNQ2RCH.js → navmesh.menu-BOqiQXs0.js} +1 -1
  180. package/dist/assets/{navmesh.service-pffKX_Ht.js → navmesh.service-DRssu5HB.js} +1 -1
  181. package/dist/assets/network-observer.service-CSbHzsem.js +1 -0
  182. package/dist/assets/network.utility-DkecVQis.js +1 -0
  183. package/dist/assets/{object3d-document-session-registry-DMhhDWnQ.js → object3d-document-session-registry-D68l_sLd.js} +2 -2
  184. package/dist/assets/{oid-transform-AHICFvQG.js → oid-transform-DELHL858.js} +1 -1
  185. package/dist/assets/{particles-DIMSkSIe.js → particles-DxmpSiYm.js} +1 -1
  186. package/dist/assets/{pixi-authoring-adapter-DR6NNYrL.js → pixi-authoring-adapter-crYHqvEe.js} +1 -1
  187. package/dist/assets/{pixi-live-write-target-CXDKS1kQ.js → pixi-live-write-target-Cx72kgN6.js} +1 -1
  188. package/dist/assets/play.command-WI1aGM0Z.js +2 -0
  189. package/dist/assets/{presentation-DPddUHCg.js → presentation-CqPEUUNS.js} +1 -1
  190. package/dist/assets/{product-CEH3MVYt.js → product-dDGXQlJ0.js} +1 -1
  191. package/dist/assets/{profiler.action-qMarbw9x.js → profiler.action-DsAh7yvt.js} +1 -1
  192. package/dist/assets/{profiler.menu-C52_wfu8.js → profiler.menu-eMeZSO2J.js} +1 -1
  193. package/dist/assets/{profiler.utility-DzfXG0cD.js → profiler.utility-B9hb8tbg.js} +1 -1
  194. package/dist/assets/project-authoring-session-7KN3YlPS.js +2 -0
  195. package/dist/assets/{properties-bone-constraints.inspector-DEOxhp1W.js → properties-bone-constraints.inspector-DoCD043b.js} +1 -1
  196. package/dist/assets/{properties-bone.inspector-CY8EEYZl.js → properties-bone.inspector-mlQIkyBf.js} +1 -1
  197. package/dist/assets/{properties-collection.inspector-rGoZwmsY.js → properties-collection.inspector-BSGr9-vR.js} +1 -1
  198. package/dist/assets/{properties-constraints.inspector-DJITSHiL.js → properties-constraints.inspector-BfpdPfPN.js} +1 -1
  199. package/dist/assets/{properties-data.inspector-CNJ6cUzA.js → properties-data.inspector-yyf0b8Uw.js} +1 -1
  200. package/dist/assets/{properties-material.inspector-BkCUSFdM.js → properties-material.inspector-BjKs4qAn.js} +1 -1
  201. package/dist/assets/{properties-modifiers.inspector-C9ij0UfE.js → properties-modifiers.inspector-XAML7OJx.js} +1 -1
  202. package/dist/assets/{properties-object.inspector-IvVsyikt.js → properties-object.inspector-cHVVC7vP.js} +1 -1
  203. package/dist/assets/{properties-output.inspector-Df-fx8vq.js → properties-output.inspector-BE6O5uWt.js} +1 -1
  204. package/dist/assets/{properties-particles.inspector-J3UOyWlz.js → properties-particles.inspector-DA9r9tox.js} +1 -1
  205. package/dist/assets/{properties-physics.inspector-BmcTY5Q8.js → properties-physics.inspector-6V50bg6n.js} +1 -1
  206. package/dist/assets/{properties-render.inspector-DUB5qwIR.js → properties-render.inspector-1iXZTLFj.js} +1 -1
  207. package/dist/assets/{properties-scene.inspector-DxBRs2ae.js → properties-scene.inspector-8qzTDRZ-.js} +1 -1
  208. package/dist/assets/{properties-texture.inspector-BqzPv1aS.js → properties-texture.inspector-DnndHFBA.js} +1 -1
  209. package/dist/assets/{properties-view-layer.inspector-D1a1Dc1r.js → properties-view-layer.inspector-BFqtpGAW.js} +1 -1
  210. package/dist/assets/{properties-world.inspector-CCwHv8ha.js → properties-world.inspector-DrZZRQoS.js} +1 -1
  211. package/dist/assets/r3f-design-session-Bg3EEQz6.js +2 -0
  212. package/dist/assets/{r3f-physics-binding-mLmXPi7n.js → r3f-physics-binding-DSD0HHLc.js} +1 -1
  213. package/dist/assets/{r3f-source-authoring-adapter-W1zVFNuZ.js → r3f-source-authoring-adapter-Ca9azh8e.js} +1 -1
  214. package/dist/assets/{react-canvas-navigation-IPhloKzi.js → react-canvas-navigation-2OqMWHDI.js} +1 -1
  215. package/dist/assets/{react-inspector.service-C7T_Pqud.js → react-inspector.service-DYyJPfNc.js} +1 -1
  216. package/dist/assets/{react-story-board-CPTQdOIn.js → react-story-board-Cry0gSQl.js} +1 -1
  217. package/dist/assets/{react-three-rapier.esm-D43m0aj7.js → react-three-rapier.esm-DMmOHQDe.js} +1 -1
  218. package/dist/assets/{react-world-authoring-adapter-DgsCzOTj.js → react-world-authoring-adapter-CQtYfgx9.js} +1 -1
  219. package/dist/assets/{realm-services-C8OlRuJ5.js → realm-services-DBqdRLI4.js} +1 -1
  220. package/dist/assets/{reflection-probe-capture.inspector-DT1jvM_q.js → reflection-probe-capture.inspector-C5Bu6QzV.js} +1 -1
  221. package/dist/assets/{registry-XvQ4sPew.js → registry-_NCUhY0b.js} +1 -1
  222. package/dist/assets/{relative-import-specifier-CPCtuEhc.js → relative-import-specifier-BiEpXss5.js} +1 -1
  223. package/dist/assets/{render-env-BYsqF2DQ.js → render-env-D-pSIlJ1.js} +1 -1
  224. package/dist/assets/{render-features-CL2D1X_X.js → render-features-l7BQbeaM.js} +1 -1
  225. package/dist/assets/{render-settings-CsCXKLaq.js → render-settings-DjdbF9VX.js} +1 -1
  226. package/dist/assets/{resolve-three-DRDYxBE9.js → resolve-three-C5BhpPqs.js} +3 -3
  227. package/dist/assets/{root-seam-contract-BNGi8m22.js → root-seam-contract-cbINkIcN.js} +1 -1
  228. package/dist/assets/{run-selection-8wjzFzVg.js → run-selection-CxsHUK_M.js} +1 -1
  229. package/dist/assets/{scene-capture-aq3yUgox.js → scene-capture-CCifsWLp.js} +1 -1
  230. package/dist/assets/{scene-document.service-qnY16vPq.js → scene-document.service-TFlDSvVA.js} +2 -2
  231. package/dist/assets/{scene-framing-BWGUKaVh.js → scene-framing--293N2xY.js} +1 -1
  232. package/dist/assets/{seeded-random-BIdiJ8w9.js → seeded-random-BMF_UDMF.js} +1 -1
  233. package/dist/assets/{setup-renderer-BI8Dltzx.js → setup-renderer-ZCwGcqc7.js} +1 -1
  234. package/dist/assets/{source-object3d-authoring-adapter-Des84Gk3.js → source-object3d-authoring-adapter-C2qh6_pn.js} +1 -1
  235. package/dist/assets/{source-persistence-backend-I5wxqQgh.js → source-persistence-backend-iG_P2f_a.js} +1 -1
  236. package/dist/assets/{stage-keyboard-Ckod5Y4M.js → stage-keyboard-Bj7F0kP-.js} +1 -1
  237. package/dist/assets/{stage-overlay-set-CLTmSTo9.js → stage-overlay-set-4eMxmCWg.js} +1 -1
  238. package/dist/assets/{stage-presence-markers-DOoDCC7Z.js → stage-presence-markers-Dvo3soHw.js} +1 -1
  239. package/dist/assets/{stage-transform-tools-DjYQ95b7.js → stage-transform-tools-BGCCPEHD.js} +1 -1
  240. package/dist/assets/{standard-viewport-dressing-DE9WE1Lv.js → standard-viewport-dressing-DisOo98G.js} +1 -1
  241. package/dist/assets/{state-watch.action-D0rXmFVx.js → state-watch.action-BjMVtMnK.js} +1 -1
  242. package/dist/assets/{state-watch.menu-DJyVHqNM.js → state-watch.menu-uo9i_GJH.js} +1 -1
  243. package/dist/assets/{state-watch.utility-CHL55Pbn.js → state-watch.utility-BDSAOvyy.js} +1 -1
  244. package/dist/assets/{story-capture-BGeBen-R.js → story-capture-BZD3x0Pr.js} +1 -1
  245. package/dist/assets/{story-documents-B8TSr_CN.js → story-documents-DOsBtURt.js} +1 -1
  246. package/dist/assets/{story-documents.service-C_Q58qZs.js → story-documents.service-CbADy_Hj.js} +1 -1
  247. package/dist/assets/{story-documents.service-B1hhvZad.js → story-documents.service-D_hsjJr9.js} +1 -1
  248. package/dist/assets/{story-media-presence-CEwzSadX.js → story-media-presence-9jRxsUgl.js} +1 -1
  249. package/dist/assets/{story-pixi-preview-rAub2W_H.js → story-pixi-preview-DbcYdZMI.js} +1 -1
  250. package/dist/assets/{story-presentation-CdJ6Ncu6.js → story-presentation-CdTE_XUR.js} +1 -1
  251. package/dist/assets/{story-three-preview-Cp9kfSo0.js → story-three-preview-Bg0NL_U_.js} +2 -2
  252. package/dist/assets/{studio-environment-BCf09Sox.js → studio-environment-Cso4y0lE.js} +1 -1
  253. package/dist/assets/{surface-state-BUmVXUJj.js → surface-state-B_0Yt3kv.js} +1 -1
  254. package/dist/assets/{syntactic-prop-specs-BHoShoI2.js → syntactic-prop-specs-BrDBqyDN.js} +1 -1
  255. package/dist/assets/team-playtest.service-BaW1I4YQ.js +1 -0
  256. package/dist/assets/{three-wsMw8Ifj.js → three-C0qVNsOS.js} +1 -1
  257. package/dist/assets/{three-authoring-adapter-DctJX96k.js → three-authoring-adapter-C92rm99z.js} +1 -1
  258. package/dist/assets/three-authoring.service-D_KTfVs4.js +2 -0
  259. package/dist/assets/{three-ingest-runtime-Bqwv-JsZ.js → three-ingest-runtime-DOUKRBrc.js} +1 -1
  260. package/dist/assets/{three-integration-C9bu5OXH.js → three-integration-pMMAFpYl.js} +2 -2
  261. package/dist/assets/three-integration.service-k1_xWOYd.js +1 -0
  262. package/dist/assets/{three-projection-core-rOK39WmJ.js → three-projection-core-BOq13mz-.js} +1 -1
  263. package/dist/assets/{three-state-Cu8xEils.js → three-state-B6NLTszJ.js} +1 -1
  264. package/dist/assets/{three-story-capture.service-DJaS21h9.js → three-story-capture.service-CcRSfWad.js} +2 -2
  265. package/dist/assets/{three-story-model-CE0vGtKW.js → three-story-model-7qxVYOkR.js} +1 -1
  266. package/dist/assets/{three-viewport-presentation-IVtG1zll.js → three-viewport-presentation-DatfjZJH.js} +1 -1
  267. package/dist/assets/{transform-mode-request-C7qvcvEe.js → transform-mode-request-c8d5QQwQ.js} +1 -1
  268. package/dist/assets/{transport-strip-B6Hauzjh.js → transport-strip-BlGEb51b.js} +1 -1
  269. package/dist/assets/transport.header-DZ6f7-ON.js +1 -0
  270. package/dist/assets/{tuples-CP56GoRo.js → tuples-ChC18dWq.js} +1 -1
  271. package/dist/assets/ui-board-document-CliGHHFn.js +2 -0
  272. package/dist/assets/{user-data-BGLBYiFw.js → user-data-C2bC2Cok.js} +1 -1
  273. package/dist/assets/{utility-view-state-y2PTWZuT.js → utility-view-state-DbTE0Ome.js} +1 -1
  274. package/dist/assets/{viewport-door-B7DJhMPS.js → viewport-door-DNJf5Mej.js} +1 -1
  275. package/dist/assets/{viewport-root-presentation-DPtVohIT.js → viewport-root-presentation-CGYHAB1r.js} +1 -1
  276. package/dist/assets/{viewport-surface-status-CleQnKBz.js → viewport-surface-status-Db1dCE5f.js} +1 -1
  277. package/dist/assets/{webworkerAll-B8sqUYid.js → webworkerAll-K8X7iPJw.js} +1 -1
  278. package/dist/assets/{workspace-arrangement-6V8ZwB2d.js → workspace-arrangement-coA4mYU_.js} +1 -1
  279. package/dist/assets/world-documents-kcOR7HSb.js +1 -0
  280. package/dist/assets/{world-root-stage-binding-OOLit0lW.js → world-root-stage-binding-WQv8K4Zz.js} +1 -1
  281. package/dist/assets/{xstate-animation-binding-KbfYItEZ.js → xstate-animation-binding-BTIYbpkG.js} +1 -1
  282. package/dist/assets/{xstate-animation-meta-DM_K9jo1.js → xstate-animation-meta-D4bo9lqY.js} +1 -1
  283. package/dist-node/cli.js +14 -14
  284. package/package.json +14 -14
  285. package/template/.agents/references/project-manual.md +1 -1
  286. package/template/.agents/skills/volter-ingest-existing-game/SKILL.md +1 -1
  287. package/template/.agents/skills/volter-threejs-authoring/SKILL.md +1 -1
  288. package/template/.claude/skills/volter-ingest-existing-game/SKILL.md +1 -1
  289. package/template/.claude/skills/volter-threejs-authoring/SKILL.md +1 -1
  290. package/template/.github/skills/volter-ingest-existing-game/SKILL.md +1 -1
  291. package/template/.github/skills/volter-threejs-authoring/SKILL.md +1 -1
  292. package/template/IDIOMS.md +1 -1
  293. package/template/package.json +10 -10
  294. package/template/src/bot/bot-station.ts +1 -1
  295. package/template/vite.config.ts +2 -2
  296. package/template-dotfiles/gitignore +1 -1
  297. package/dist/assets/InspectorObjectPreview-JE22P2KW.js +0 -1
  298. package/dist/assets/Object3DDocumentViewport-mDettU8s.js +0 -2
  299. package/dist/assets/autoplay.service-ap_sEfca.js +0 -1
  300. package/dist/assets/bridge.command-DNktKXNP.js +0 -3
  301. package/dist/assets/component-board.service-DTH3BKq_.js +0 -2
  302. package/dist/assets/design-time-layers-Cv3txX_V.js +0 -1
  303. package/dist/assets/design-time-mount.service-DupCKL6-.js +0 -2
  304. package/dist/assets/design-time-react-mount-CT8eihNN.js +0 -1
  305. package/dist/assets/editor-api-BqS9NdSX.js +0 -1
  306. package/dist/assets/game-document.service-CW928hrj.js +0 -1
  307. package/dist/assets/game-eval.command-D8ohGtA6.js +0 -2
  308. package/dist/assets/game-network-CU3Yp0oN.js +0 -22
  309. package/dist/assets/gameplay.command-b2D2rbZV.js +0 -1
  310. package/dist/assets/instances.command-wzs2BWwt.js +0 -1
  311. package/dist/assets/mount-canvas-ingest-root-nBqJPkbz.js +0 -2
  312. package/dist/assets/mount-ingest-root-9KaA9ETn.js +0 -2
  313. package/dist/assets/mount-manifest-BOiv1Hix.js +0 -1
  314. package/dist/assets/mount-three-ingest-root-C_0Slh91.js +0 -1
  315. package/dist/assets/network-observer.service-D61Whg6t.js +0 -1
  316. package/dist/assets/network.utility-Bw74dLIu.js +0 -1
  317. package/dist/assets/play.command-L6qPHLHh.js +0 -2
  318. package/dist/assets/project-authoring-session-sbmVUm3i.js +0 -2
  319. package/dist/assets/r3f-design-session-By5arVMz.js +0 -2
  320. package/dist/assets/team-playtest.service-DErOWVaA.js +0 -1
  321. package/dist/assets/three-authoring.service-B2LLPXyf.js +0 -2
  322. package/dist/assets/three-integration.service-BXQuaWQ-.js +0 -1
  323. package/dist/assets/transport.header-CDivn20X.js +0 -1
  324. package/dist/assets/ui-board-document-B69iTbe5.js +0 -2
  325. package/dist/assets/world-documents-CwxZ4xtW.js +0 -1
package/dist-node/cli.js CHANGED
@@ -2310,7 +2310,7 @@ import { fileURLToPath as fileURLToPath2 } from "node:url";
2310
2310
  var package_default = {
2311
2311
  name: "@volter/game-editor",
2312
2312
  author: "Volter AI, Inc.",
2313
- version: "0.5.71",
2313
+ version: "0.5.72",
2314
2314
  publishConfig: {
2315
2315
  access: "public"
2316
2316
  },
@@ -2359,22 +2359,22 @@ var package_default = {
2359
2359
  }
2360
2360
  },
2361
2361
  dependencies: {
2362
- "@volter/editor-core": "0.5.71",
2363
- "@volter/editor-game": "0.5.71",
2364
- "@volter/editor-react": "0.5.71",
2365
- "@volter/editor-threejs": "0.5.71",
2366
- "@volter/editor-xstate": "0.5.71",
2362
+ "@volter/editor-core": "0.5.72",
2363
+ "@volter/editor-game": "0.5.72",
2364
+ "@volter/editor-react": "0.5.72",
2365
+ "@volter/editor-threejs": "0.5.72",
2366
+ "@volter/editor-xstate": "0.5.72",
2367
2367
  "@volter/editor-blender": "0.1.13",
2368
- "@volter/dawproject": "0.5.71",
2369
- "@volter/editor-dawproject": "0.5.71",
2368
+ "@volter/dawproject": "0.5.72",
2369
+ "@volter/editor-dawproject": "0.5.72",
2370
2370
  "@volter/blender-engine": "0.1.11",
2371
- "@volter/editor-project": "0.5.71",
2372
- "@volter/editor-sdk": "0.5.71",
2373
- "@volter/editor-live": "0.5.71",
2374
- "@volter/game-live": "0.5.71",
2371
+ "@volter/editor-project": "0.5.72",
2372
+ "@volter/editor-sdk": "0.5.72",
2373
+ "@volter/editor-live": "0.5.72",
2374
+ "@volter/game-live": "0.5.72",
2375
2375
  "@modelcontextprotocol/sdk": "1.30.0",
2376
- "@volter/game-runtime": "0.5.71",
2377
- "@volter/threejs-runtime": "0.5.71",
2376
+ "@volter/game-runtime": "0.5.72",
2377
+ "@volter/threejs-runtime": "0.5.72",
2378
2378
  undici: "7.29.1",
2379
2379
  typescript: "5.9.3",
2380
2380
  "@colyseus/schema": "^4.0.14",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@volter/game-editor",
3
3
  "author": "Volter AI, Inc.",
4
- "version": "0.5.71",
4
+ "version": "0.5.72",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -50,22 +50,22 @@
50
50
  }
51
51
  },
52
52
  "dependencies": {
53
- "@volter/editor-core": "0.5.71",
54
- "@volter/editor-game": "0.5.71",
55
- "@volter/editor-react": "0.5.71",
56
- "@volter/editor-threejs": "0.5.71",
57
- "@volter/editor-xstate": "0.5.71",
53
+ "@volter/editor-core": "0.5.72",
54
+ "@volter/editor-game": "0.5.72",
55
+ "@volter/editor-react": "0.5.72",
56
+ "@volter/editor-threejs": "0.5.72",
57
+ "@volter/editor-xstate": "0.5.72",
58
58
  "@volter/editor-blender": "0.1.13",
59
- "@volter/dawproject": "0.5.71",
60
- "@volter/editor-dawproject": "0.5.71",
59
+ "@volter/dawproject": "0.5.72",
60
+ "@volter/editor-dawproject": "0.5.72",
61
61
  "@volter/blender-engine": "0.1.11",
62
- "@volter/editor-project": "0.5.71",
63
- "@volter/editor-sdk": "0.5.71",
64
- "@volter/editor-live": "0.5.71",
65
- "@volter/game-live": "0.5.71",
62
+ "@volter/editor-project": "0.5.72",
63
+ "@volter/editor-sdk": "0.5.72",
64
+ "@volter/editor-live": "0.5.72",
65
+ "@volter/game-live": "0.5.72",
66
66
  "@modelcontextprotocol/sdk": "1.30.0",
67
- "@volter/game-runtime": "0.5.71",
68
- "@volter/threejs-runtime": "0.5.71",
67
+ "@volter/game-runtime": "0.5.72",
68
+ "@volter/threejs-runtime": "0.5.72",
69
69
  "undici": "7.29.1",
70
70
  "typescript": "5.9.3",
71
71
  "@colyseus/schema": "^4.0.14",
@@ -266,7 +266,7 @@ captures.
266
266
 
267
267
  `src/main.ts` mounts the roots the manifest declares for the standalone game,
268
268
  and the editor mounts the same entries itself. The source component itself
269
- stays free of volter runtime context.
269
+ stays free of Volter runtime context.
270
270
 
271
271
  ## Capabilities and assets
272
272
 
@@ -2,7 +2,7 @@
2
2
  name: volter-ingest-existing-game
3
3
  description: >
4
4
  Take an existing, unmodified web game (three.js, PixiJS, or React) to FULL
5
- volter editor integration: mount it through the adapter seam, declare its
5
+ Volter editor integration: mount it through the adapter seam, declare its
6
6
  real capabilities through the game contract, drive every adapter slot to a
7
7
  terminal state (implemented, or verified implemented-empty), and prove it
8
8
  live through the product's own doors. Use when asked to ingest, adapt,
@@ -272,7 +272,7 @@ is `npx volter-game-editor screenshot`, and the module lane is the asset loop:
272
272
  lighting).
273
273
 
274
274
  > Engine-repo aside — not for game projects. When you are working inside the
275
- > volter engine checkout itself (no game project, no editor session), the
275
+ > Volter engine checkout itself (no game project, no editor session), the
276
276
  > equivalent is `node packages/engine/e2e/turntable/capture.mjs <subject>`,
277
277
  > run from the checkout root; it boots and tears down its own server. Point
278
278
  > it at your own builder with `capture.mjs file --module
@@ -2,7 +2,7 @@
2
2
  name: volter-ingest-existing-game
3
3
  description: >
4
4
  Take an existing, unmodified web game (three.js, PixiJS, or React) to FULL
5
- volter editor integration: mount it through the adapter seam, declare its
5
+ Volter editor integration: mount it through the adapter seam, declare its
6
6
  real capabilities through the game contract, drive every adapter slot to a
7
7
  terminal state (implemented, or verified implemented-empty), and prove it
8
8
  live through the product's own doors. Use when asked to ingest, adapt,
@@ -272,7 +272,7 @@ is `npx volter-game-editor screenshot`, and the module lane is the asset loop:
272
272
  lighting).
273
273
 
274
274
  > Engine-repo aside — not for game projects. When you are working inside the
275
- > volter engine checkout itself (no game project, no editor session), the
275
+ > Volter engine checkout itself (no game project, no editor session), the
276
276
  > equivalent is `node packages/engine/e2e/turntable/capture.mjs <subject>`,
277
277
  > run from the checkout root; it boots and tears down its own server. Point
278
278
  > it at your own builder with `capture.mjs file --module
@@ -2,7 +2,7 @@
2
2
  name: volter-ingest-existing-game
3
3
  description: >
4
4
  Take an existing, unmodified web game (three.js, PixiJS, or React) to FULL
5
- volter editor integration: mount it through the adapter seam, declare its
5
+ Volter editor integration: mount it through the adapter seam, declare its
6
6
  real capabilities through the game contract, drive every adapter slot to a
7
7
  terminal state (implemented, or verified implemented-empty), and prove it
8
8
  live through the product's own doors. Use when asked to ingest, adapt,
@@ -272,7 +272,7 @@ is `npx volter-game-editor screenshot`, and the module lane is the asset loop:
272
272
  lighting).
273
273
 
274
274
  > Engine-repo aside — not for game projects. When you are working inside the
275
- > volter engine checkout itself (no game project, no editor session), the
275
+ > Volter engine checkout itself (no game project, no editor session), the
276
276
  > equivalent is `node packages/engine/e2e/turntable/capture.mjs <subject>`,
277
277
  > run from the checkout root; it boots and tears down its own server. Point
278
278
  > it at your own builder with `capture.mjs file --module
@@ -11,7 +11,7 @@ Legend: **ERROR** fails every run; **WARN** prints but fails only with
11
11
 
12
12
  - The source is the document. Three roots are ordinary R3F TSX, Canvas roots
13
13
  are ordinary Pixi/React source, and DOM roots are ordinary React. The world
14
- node is the entity; no mirror ECS, registration layer, or volter runtime API
14
+ node is the entity; no mirror ECS, registration layer, or Volter runtime API
15
15
  belongs in gameplay components. **LOOK**
16
16
  - A DOM HUD is a manifest `dom` root and reads the project's own React
17
17
  context/store. A timer repeatedly copying game state into React state is a
@@ -24,9 +24,9 @@
24
24
  "@colyseus/sdk": "^0.17.34",
25
25
  "@react-three/drei": "^10.7.7",
26
26
  "@react-three/fiber": "^9.6.1",
27
- "@volter/editor-project": "^0.5.71",
28
- "@volter/game-runtime": "^0.5.71",
29
- "@volter/threejs-runtime": "^0.5.71",
27
+ "@volter/editor-project": "^0.5.72",
28
+ "@volter/game-runtime": "^0.5.72",
29
+ "@volter/threejs-runtime": "^0.5.72",
30
30
  "react": "~19.2.4",
31
31
  "react-dom": "~19.2.4",
32
32
  "three": "^0.180.0",
@@ -40,13 +40,13 @@
40
40
  "@types/react-dom": "^19.2.3",
41
41
  "@types/three": "^0.180.0",
42
42
  "@vitejs/plugin-react": "^5.1.4",
43
- "@volter/editor-core": "^0.5.71",
44
- "@volter/editor-game": "^0.5.71",
45
- "@volter/editor-live": "^0.5.71",
46
- "@volter/editor-sdk": "^0.5.71",
47
- "@volter/editor-threejs": "^0.5.71",
48
- "@volter/game-editor": "^0.5.71",
49
- "@volter/game-live": "^0.5.71",
43
+ "@volter/editor-core": "^0.5.72",
44
+ "@volter/editor-game": "^0.5.72",
45
+ "@volter/editor-live": "^0.5.72",
46
+ "@volter/editor-sdk": "^0.5.72",
47
+ "@volter/editor-threejs": "^0.5.72",
48
+ "@volter/game-editor": "^0.5.72",
49
+ "@volter/game-live": "^0.5.72",
50
50
  "colyseus": "^0.17.8",
51
51
  "storybook": "10.6.0",
52
52
  "tsx": "^4.23.0",
@@ -6,7 +6,7 @@
6
6
  * holds what it is doing so the game's Tester surface and `volter-game-editor eval`
7
7
  * both watch one run, and it implements the operator controls the tester
8
8
  * honors between steps. This module is plain application state and imports no
9
- * volter API; its exports are the whole control surface.
9
+ * Volter API; its exports are the whole control surface.
10
10
  *
11
11
  * `getBotStatus()` reads `{active, seat, goal, step, phase, progress,
12
12
  * waitingOn, note, seed, directive}`. `pauseBot()`, `resumeBot()`,
@@ -6,7 +6,7 @@ import { defineConfig } from 'vite';
6
6
  import { manifestEntryModulesPlugin } from './manifest-entry-modules-plugin';
7
7
  import manifest from './volter.project.json';
8
8
 
9
- /** A volter runtime package served as SOURCE, the way the editor serves it. */
9
+ /** A Volter runtime package served as SOURCE, the way the editor serves it. */
10
10
  const packageSource = (name: string) =>
11
11
  path.join(path.dirname(createRequire(import.meta.url).resolve(`${name}/package.json`)), 'src');
12
12
 
@@ -68,7 +68,7 @@ export default defineConfig({
68
68
  //
69
69
  // This project has no `@vitejs/plugin-react`; Vite's built-in esbuild does
70
70
  // the JSX transform, and it picks the runtime from the tsconfig nearest the
71
- // FILE. That covers `src/**`, but the volter runtime packages are served as
71
+ // FILE. That covers `src/**`, but the Volter runtime packages are served as
72
72
  // source out of their installed directories (see the aliases below), where
73
73
  // the project's tsconfig does not reach — so their `.tsx` compiled with the CLASSIC runtime, emitting
74
74
  // bare `React.createElement` calls into a module that never imports React.
@@ -1,5 +1,5 @@
1
1
  # Dependencies
2
- node_modules/
2
+ node_modules
3
3
 
4
4
  # Build output
5
5
  dist/
@@ -1 +0,0 @@
1
- import{a as t}from"./jsx-runtime-DPjLkJKQ.js";import{Object3DSnapshotDocument as m}from"./EntityModelDocument-DUZaNI2v.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./editor-shell-store-Di0waLQj.js";import"./output-pass-HurwNl0G.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./Pass-D1MRT672.js";import"./editor-layers-qlgroPbE.js";import"./workspace-arrangement-6V8ZwB2d.js";import"./index-iW3HFEJB.js";import"./index-nmcBqr7Y.js";import"./index-D_NuPfjr.js";import"./index-CtzuWnCS.js";import"./index-CinJrH5C.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./user-data-BGLBYiFw.js";import"./entity-object-BeRdaaqQ.js";import"./three-contract-Dkt6PmWY.js";import"./live-mixers-B-bwLZ7c.js";import"./asset-preview-BzDHm81_.js";import"./renderer-ownership-BovSEcLv.js";import"./hierarchy-marks-BrmGekuT.js";import"./studio-environment-BCf09Sox.js";import"./KTX2Loader-CaqVE6nY.js";import"./GLTFLoader-KeoruJgS.js";import"./BufferGeometryUtils-B22h7jo4.js";import"./environment-Dg-YaLsA.js";import"./RoomEnvironment-BkknvS_I.js";import"./EXRLoader-CITMBvGd.js";import"./HDRLoader-BTGuGhVo.js";import"./bitmap-label-Ct4k6ehY.js";import"./StageHost-BOin7YcY.js";import"./three-state-Cu8xEils.js";import"./standard-viewport-dressing-DE9WE1Lv.js";import"./content-bounds-938XXJRy.js";import"./preview-renderer-BrYNFV1p.js";import"./live-gesture-lock-DJbrjOqf.js";import"./model-inspection-DgqjTy5z.js";import"./three-viewport-presentation-IVtG1zll.js";import"./clip-planes-CnAI6DZn.js";import"./three-wsMw8Ifj.js";import"./component-instance-root-9MmHwMal.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./model-thumbnail-DORLbXyw.js";import"./OrbitControls-B13MKuwC.js";import"./LineSegments2-DN9pUfWA.js";import"./three.quarks.esm-C_HmSKXo.js";import"./three-integration-C9bu5OXH.js";import"./host-hierarchy-objects-BV3WqU2w.js";import"./layered-pick-Db8YSlDp.js";import"./root-stacking-BEd9ZvxC.js";import"./object3d-document-session-registry-DMhhDWnQ.js";import"./viewport-door-B7DJhMPS.js";import"./scene-framing-BWGUKaVh.js";import"./source-object3d-authoring-adapter-Des84Gk3.js";import"./three-projection-core-rOK39WmJ.js";import"./editor-presentation-activity-CqJH4G9t.js";import"./transport-strip-B6Hauzjh.js";import"./viewport-surface-status-CleQnKBz.js";function ut({previewKey:o,object:r,displayName:i,fill:p=!1}){return t.jsx("div",{"data-testid":"inspector-object-preview",style:p?{position:"absolute",inset:0,overflow:"hidden"}:{width:"100%",height:220,minHeight:220,borderBottom:"1px solid var(--volter-structural-divider)",overflow:"hidden",position:"relative"},children:t.jsx(m,{documentId:`inspector-preview:${o}`,source:r,displayName:i,active:!0,chromeless:!0})})}export{ut as InspectorObjectPreview};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/StageHost-BOin7YcY.js","assets/index-iW3HFEJB.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/three-state-Cu8xEils.js","assets/editor-shell-store-Di0waLQj.js","assets/output-pass-HurwNl0G.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/Pass-D1MRT672.js","assets/editor-layers-qlgroPbE.js","assets/workspace-arrangement-6V8ZwB2d.js","assets/user-data-BGLBYiFw.js","assets/entity-object-BeRdaaqQ.js","assets/three-contract-Dkt6PmWY.js","assets/standard-viewport-dressing-DE9WE1Lv.js","assets/content-bounds-938XXJRy.js","assets/hierarchy-marks-BrmGekuT.js","assets/environment-Dg-YaLsA.js","assets/RoomEnvironment-BkknvS_I.js","assets/EXRLoader-CITMBvGd.js","assets/HDRLoader-BTGuGhVo.js","assets/preview-renderer-BrYNFV1p.js","assets/renderer-ownership-BovSEcLv.js","assets/live-mixers-B-bwLZ7c.js","assets/live-gesture-lock-DJbrjOqf.js","assets/model-inspection-DgqjTy5z.js","assets/three-viewport-presentation-IVtG1zll.js","assets/clip-planes-CnAI6DZn.js","assets/three-wsMw8Ifj.js","assets/component-instance-root-9MmHwMal.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/model-thumbnail-DORLbXyw.js","assets/studio-environment-BCf09Sox.js","assets/KTX2Loader-CaqVE6nY.js","assets/GLTFLoader-KeoruJgS.js","assets/BufferGeometryUtils-B22h7jo4.js","assets/OrbitControls-B13MKuwC.js","assets/LineSegments2-DN9pUfWA.js","assets/three.quarks.esm-C_HmSKXo.js","assets/three-integration-C9bu5OXH.js","assets/host-hierarchy-objects-BV3WqU2w.js","assets/layered-pick-Db8YSlDp.js","assets/root-stacking-BEd9ZvxC.js","assets/object3d-document-session-registry-DMhhDWnQ.js","assets/viewport-door-B7DJhMPS.js","assets/asset-preview-BzDHm81_.js","assets/bitmap-label-Ct4k6ehY.js","assets/scene-framing-BWGUKaVh.js","assets/source-object3d-authoring-adapter-Des84Gk3.js","assets/three-projection-core-rOK39WmJ.js","assets/editor-presentation-activity-CqJH4G9t.js","assets/transport-strip-B6Hauzjh.js","assets/viewport-surface-status-CleQnKBz.js"])))=>i.map(i=>d[i]);
2
- import{ae as r,_ as a}from"./index-iW3HFEJB.js";import{a as o}from"./jsx-runtime-DPjLkJKQ.js";import{r as n}from"./index-nmcBqr7Y.js";import{V as c,O as u}from"./viewport-surface-status-CleQnKBz.js";const s=n.lazy(async()=>({default:(await a(()=>import("./StageHost-BOin7YcY.js").then(e=>e.S),__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]))).Object3DDocumentViewport}));function l(t){return i(t.documentId,t.chromeless),o.jsx(n.Suspense,{fallback:o.jsx(c,{testId:"object3d-document-loading",children:u}),children:o.jsx(s,{...t})})}function i(t,e=!1){n.useEffect(()=>{if(!e)return r(t)},[t,e])}export{l as O};
@@ -1 +0,0 @@
1
- import{J as i,r as m}from"./index-iW3HFEJB.js";import{e as p}from"./game-network-CU3Yp0oN.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-Cofo9dCU.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-BUPLu5EA.js";import"./contract-system-adapters-D9Gcb7R7.js";import"./game-contract-seams-DOwrbA13.js";import"./seeded-random-BIdiJ8w9.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-CayyA6Tc.js";import"./capability-coverage-6I_iG0kk.js";import"./edit-mode-authoring-Du1CaTkH.js";import"./json-history-resource-82d2z68R.js";import"./binding-resolver-aDFCbAcG.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-C8OlRuJ5.js";import"./canvas-entry-runtime-BQdfSw1B.js";import"./three-ingest-runtime-Bqwv-JsZ.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-CHE8woWv.js";import"./ingest-source-persistence-2MRBPgo0.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-DPtVohIT.js";import"./mounted-authoring-30zCcxeV.js";import"./entity-object-BeRdaaqQ.js";import"./user-data-BGLBYiFw.js";import"./workspace-arrangement-6V8ZwB2d.js";import"./three-contract-Dkt6PmWY.js";import"./three-wsMw8Ifj.js";import"./editor-layers-qlgroPbE.js";import"./component-instance-root-9MmHwMal.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-DctJX96k.js";import"./source-persistence-backend-I5wxqQgh.js";import"./three-projection-core-rOK39WmJ.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-mLmXPi7n.js";import"./deferred-ingest-play-DVLTxYCk.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-DgsCzOTj.js";import"./board-guides-BVkDJqat.js";import"./relative-import-specifier-CPCtuEhc.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-CUNyIUii.js";import"./inference-diagnostics-PcfFN6SD.js";import"./writer-tw6EcuVO.js";import"./three-state-Cu8xEils.js";import"./editor-shell-store-Di0waLQj.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-B7DJhMPS.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,3 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-iW3HFEJB.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/editor-api-BqS9NdSX.js","assets/game-network-CU3Yp0oN.js","assets/index-OZVqp6xS.js","assets/index-Da9JhEvW.js","assets/native-debug-module-Cofo9dCU.js","assets/native-entry-surface-BE8LJNdu.js","assets/debug-registry-BUPLu5EA.js","assets/contract-system-adapters-D9Gcb7R7.js","assets/game-contract-seams-DOwrbA13.js","assets/seeded-random-BIdiJ8w9.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-CayyA6Tc.js","assets/capability-coverage-6I_iG0kk.js","assets/edit-mode-authoring-Du1CaTkH.js","assets/json-history-resource-82d2z68R.js","assets/binding-resolver-aDFCbAcG.js","assets/adapter-surface-Y37Nzcyw.js","assets/structural-signature-Dc7skRiy.js","assets/webgl-frame-capture-DdJkM2mi.js","assets/realm-services-C8OlRuJ5.js","assets/canvas-entry-runtime-BQdfSw1B.js","assets/three-ingest-runtime-Bqwv-JsZ.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-CHE8woWv.js","assets/ingest-source-persistence-2MRBPgo0.js","assets/pixi-story-model-DNkfnWUV.js","assets/surface-content-Dg9Kkazf.js","assets/viewport-root-presentation-DPtVohIT.js","assets/mounted-authoring-30zCcxeV.js","assets/entity-object-BeRdaaqQ.js","assets/user-data-BGLBYiFw.js","assets/workspace-arrangement-6V8ZwB2d.js","assets/three-contract-Dkt6PmWY.js","assets/three-wsMw8Ifj.js","assets/editor-layers-qlgroPbE.js","assets/component-instance-root-9MmHwMal.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/three-authoring-adapter-DctJX96k.js","assets/source-persistence-backend-I5wxqQgh.js","assets/three-projection-core-rOK39WmJ.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-mLmXPi7n.js","assets/deferred-ingest-play-DVLTxYCk.js","assets/rrweb-Cd2ifIRP.js","assets/react-world-authoring-adapter-DgsCzOTj.js","assets/board-guides-BVkDJqat.js","assets/relative-import-specifier-CPCtuEhc.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/inspect-CUNyIUii.js","assets/inference-diagnostics-PcfFN6SD.js","assets/writer-tw6EcuVO.js","assets/three-state-Cu8xEils.js","assets/editor-shell-store-Di0waLQj.js","assets/output-pass-HurwNl0G.js","assets/viewport-door-B7DJhMPS.js"])))=>i.map(i=>d[i]);
2
- import{a5 as _,j6 as $,j7 as N,j8 as f,j9 as g,ja as U,_ as R,jb as V,U as B,aw as C,jc as M,O as j,jd as G,B as k}from"./index-iW3HFEJB.js";import{g as l,a as b,A as D,B as F,C as O,d as x,D as q,E as H}from"./game-network-CU3Yp0oN.js";import{e as z,c as K}from"./gameplay-replay-Dxz93B2M.js";import{n as A,s as h}from"./command-results-CUQD49AB.js";import{z as W,i as y}from"./active-ingest-CHE8woWv.js";import{g as Z}from"./capability-coverage-6I_iG0kk.js";import{w as X,H as J}from"./debug-bridge-LaiaWRls.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-Cofo9dCU.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-BUPLu5EA.js";import"./contract-system-adapters-D9Gcb7R7.js";import"./game-contract-seams-DOwrbA13.js";import"./seeded-random-BIdiJ8w9.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-CayyA6Tc.js";import"./edit-mode-authoring-Du1CaTkH.js";import"./json-history-resource-82d2z68R.js";import"./binding-resolver-aDFCbAcG.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-C8OlRuJ5.js";import"./canvas-entry-runtime-BQdfSw1B.js";import"./three-ingest-runtime-Bqwv-JsZ.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-DPtVohIT.js";import"./mounted-authoring-30zCcxeV.js";import"./entity-object-BeRdaaqQ.js";import"./user-data-BGLBYiFw.js";import"./workspace-arrangement-6V8ZwB2d.js";import"./three-contract-Dkt6PmWY.js";import"./three-wsMw8Ifj.js";import"./editor-layers-qlgroPbE.js";import"./component-instance-root-9MmHwMal.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-DctJX96k.js";import"./source-persistence-backend-I5wxqQgh.js";import"./ingest-source-persistence-2MRBPgo0.js";import"./three-projection-core-rOK39WmJ.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-mLmXPi7n.js";import"./deferred-ingest-play-DVLTxYCk.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-DgsCzOTj.js";import"./board-guides-BVkDJqat.js";import"./relative-import-specifier-CPCtuEhc.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-CUNyIUii.js";import"./inference-diagnostics-PcfFN6SD.js";import"./writer-tw6EcuVO.js";import"./three-state-Cu8xEils.js";import"./editor-shell-store-Di0waLQj.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-B7DJhMPS.js";import"./output-DK8waum9.js";const E=()=>_().debug!=null;function d(e,t,s){const a=new Error(t);return a.code=e,s&&(a.data=s),a}function S(e){return Array.isArray(e)?new Set(e.filter(t=>!!(t&&typeof t=="object"&&typeof t.name=="string")).map(t=>t.name)):new Set}function Q(e,t,s,a,i){if(e==="commands"){const c=S(t);return Array.isArray(t)&&[...a].every(o=>c.has(o))}if(e==="providers"){const c=S(t);return Array.isArray(t)&&[...i].every(o=>c.has(o))}return s?e==="state"?i.has(s):e==="invoke"?a.has(s):!1:!1}function T(e,t,s){const a=W(),i=a?.systems;if(!a||!i)return;const c=new Set((i.commands??[]).map(n=>n.name)),o=new Set((i.state??[]).map(n=>n.name));Q(e,t,s,c,o)&&f({seam:"contract.systems",subject:"game",epoch:Z(a),stage:"operation",outcome:"pass",source:"consumer",detail:`the session wire consumed contract systems through debug.${e}`})}async function Y(e,t,s){let a;try{a=$(s).debug}catch(o){throw o instanceof N?d("INSTANCE_UNRESOLVED",`session wire: "${e}" — ${o.message}`,{instances:o.instances}):o}const i=()=>{if(!a)throw d("DEBUG_ADAPTER_UNAVAILABLE",`session wire: "${e}" — this game exposes no debug adapter`);return a},c=(o,n,r)=>{const u=i(),m=g(u);try{const p=r();return f({seam:`system.debug.${o}`,subject:"game",epoch:m,stage:n,outcome:"pass",source:"consumer",detail:`the session wire called debug.${o} and received its result`}),f({seam:"system.debug",subject:"game",epoch:m,stage:"operation",outcome:"pass",source:"consumer",detail:"the session wire consumed the mounted debug adapter"}),T(o,p,t[0]),p}catch(p){throw f({seam:`system.debug.${o}`,subject:"game",epoch:m,stage:n,outcome:"fail",source:"consumer",detail:`the session wire called debug.${o} and it failed: ${p instanceof Error?p.message:String(p)}`}),p}};switch(e){case"state":return c("state","operation",()=>i().state(t[0]));case"stateAll":return c("stateAll","operation",()=>i().stateAll());case"providers":return c("providers","operation",()=>i().providers());case"commands":return c("commands","operation",()=>i().commands());case"events":return c("events","operation",()=>i().events(t[0]));case"snapshot":{const o=i();return{time:c("state","operation",()=>o.state("time")),state:c("stateAll","operation",()=>o.stateAll()),events:c("events","operation",()=>o.events(t[0])),pageErrors:U()}}case"invoke":{const o=t[0],n=t[1]??[];try{const r=await i().invoke(o,n),u=i();return f({seam:"system.debug.invoke",subject:"game",epoch:g(u),stage:"effect",outcome:"pass",source:"consumer",detail:`the session wire invoked debug command "${o}" and received its result`}),f({seam:"system.debug",subject:"game",epoch:g(u),stage:"operation",outcome:"pass",source:"consumer",detail:"the session wire consumed the mounted debug adapter"}),T("invoke",r,o),r}catch(r){const u=i();throw f({seam:"system.debug.invoke",subject:"game",epoch:g(u),stage:"effect",outcome:"fail",source:"consumer",detail:`the session wire invoked debug command "${o}" and it failed: ${r instanceof Error?r.message:String(r)}`}),r}}case"runTicks":{const o=l();if(!o?.runTicks)throw d("RUN_TICKS_UNAVAILABLE","this play session has no first-party Game to run ticks on");const n=t[0],r=t[1];o.runTicks(n,r);return}case"runTicksSettled":{const o=l();if(!o?.runTicksSettled)throw d("RUN_TICKS_UNAVAILABLE","this play session has no first-party Game to run ticks on");const n=t[0],r=t[1];await o.runTicksSettled(n,r);return}case"input.setVirtualAction":case"input.tapVirtualAction":case"input.clearVirtualActions":case"input.startRecording":case"input.stopRecording":case"input.isRecording":{const o=l(),n=e==="input.setVirtualAction"?t[2]:e==="input.tapVirtualAction"?t[1]:t[0],r=o?o.getInputTarget(n):null;if(!r)throw d("DEBUG_INPUT_UNAVAILABLE",`session wire: ${e}() has no virtual-input target wired — no root entry exports \`debug.input\` (the game's own input door), or none has mounted yet`);if(e==="input.setVirtualAction")return r.setVirtualAction(t[0],t[1]);if(e==="input.tapVirtualAction")return r.tapVirtualAction(t[0]);if(e==="input.clearVirtualActions"){r.clearVirtualActions();return}if(e==="input.startRecording"){r.startInputRecording();return}if(e==="input.stopRecording"){r.stopInputRecording();return}return r.isInputRecording()}case"input.scheduleActionAtTick":{const o=l(),n=t[0],r=t[1],u=t[2],m=t[3],p=o?o.getInputTarget(m):null;if(!p)throw d("DEBUG_INPUT_UNAVAILABLE","session wire: input.scheduleActionAtTick() has no virtual-input target wired — no root entry exports `debug.input` (the game's own input door), or none has mounted yet");return p.scheduleActionAtTick(n,r,u)}case"input.injectPointerDelta":case"input.injectPointerPosition":{const o=l(),n=t[0],r=t[1],u=t[2],m=o?o.getInputTarget(u):null;if(!m)throw d("DEBUG_INPUT_UNAVAILABLE",`session wire: ${e}() has no virtual-input target wired — no root entry exports \`debug.input\` (the game's own input door), or none has mounted yet`);e==="input.injectPointerDelta"?m.injectPointerDelta(n,r):m.injectPointerPosition(n,r);return}case"holdFor":{const o=l(),n=t[2],r=o?o.getInputTarget(n):null;if(!r)throw d("DEBUG_INPUT_UNAVAILABLE","session wire: holdFor() has no virtual-input target wired — no root entry exports `debug.input` (the game's own input door), or none has mounted yet");const u=t[0],m=t[1],p=r.setVirtualAction(u,!0);if(!p.delivered)return r.clearVirtualActions(),{delivered:!1,reason:p.reason};const{stalled:v,starvedWithoutDriver:w}=await X(i(),m,o?.runTicks?L=>o.runTicks?.(L,{render:"last"}):void 0);return r.clearVirtualActions(),v?{delivered:!1,reason:w?J:"play stopped during hold"}:{delivered:!0}}default:throw d("UNKNOWN_BRIDGE_METHOD",`session wire: unknown bridge method "${e}"`)}}async function ee(e){if(!b()&&!E())return y()?{ok:!1,error:"this ingest mount is live, but it publishes no debug plane — the mount installs no SystemAdapters.debug, so there is nothing to enumerate, read or drive through the game seam. Starting play will not change that; the game itself must declare the volter game contract (or carry a contract shim beside it) for these calls to have an answer."}:A();const t=e.method,s=e.callArgs??[];try{const a=e.instance;return{ok:!0,data:{result:await Y(t,s,a)}}}catch(a){return h(a)}}async function P(e){const{liveCanvasFrame:t}=await R(async()=>{const{liveCanvasFrame:s}=await import("./index-iW3HFEJB.js").then(a=>a.tZ);return{liveCanvasFrame:s}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9]));return t(e)}function te(){const e=l();e?.loop.liveness==="loop-starved"&&e.runTicks?.(1,{render:"last"})}function I(e,t){const s=re();return{ok:!0,data:{base64:e,mimeType:"image/png",composite:t.composite,...t.layers?{layers:t.layers}:{},...t.flatness?{flatness:t.flatness}:{},...t.loopRecoveryFrame?{loopRecoveryFrame:!0}:{},...s?{recording:s}:{}}}}function re(){const e=O();return e?{path:e.path,startedAt:e.startedAt,notice:[`This run is being RECORDED — the still above is one frame of ${e.path}.`,"A still cannot answer a question about a moving game (did the jump land, did the shot","register). If that is the question, read the clip:","",` recording: ${e.path}${e.rotates?` (the next ${k("play")} replaces this file)`:" (named — never rotated)"}`,...e.format==="canvas-dom"?[` HUD replay: ${e.replayPath}`," The raw WebM contains the canvas only. Reconstruct HUD stills with"," editor.recording.captureReplay, or export a full video with editor.recording.exportReplay."]:[],` startedAt: ${e.startedAt} (clip offset 0)`,` play log: ${e.logFile===null?"(none — nothing is logging this run)":`logs/${e.logFile}`} (event timestamps → clip offsets)`,"","THE BAR for a temporal question: examine AT LEAST 10 frames spanning no more than 5","seconds around the moment. One frame, or ten frames spread across the run, is the same","guess a single screenshot was.","",`The clip is finalized and readable when play stops — ${k("stop")}, or the idle`,`auto-stop after ${Math.round(e.idleAutoStopMs/1e3)}s with no session command and no player input.`].join(`
3
- `)}:null}async function oe(e){if(!b()&&!E()&&!y())return A();const t=e.instance,s=D(t),a=F(t),i=V(s).medium,c=l();let o=!1,n=null;if(a&&c?.loop.liveness==="loop-starved")if(e.refreshStarvedFrame===!0&&c.runTicks)try{c.runTicks(1,{render:"last"}),o=!0}catch(r){return h(r)}else return{ok:!1,error:"cannot capture a fresh game frame while the host loop reports 'loop-starved' — inspect the separate visibility readings, let presentation resume, or request a deterministic loop-recovery frame",data:{code:"BRIDGE_SCREENSHOT_STALE"}};if(s&&typeof Image<"u"&&typeof XMLSerializer<"u"&&typeof s.getBoundingClientRect=="function")try{const r=await B(s,{canvasFrame:P,projectRoot:C()?.rootPath,...i==="unknown"?{}:{presentsOnCanvas:i==="canvas"}});if(r.layers.canvases===0&&r.layers.domOverlays===0)throw new M(i==="dom"?"dom-overlay":"composite-output","no game layers were mounted");return I(r.base64,{composite:!0,layers:r.layers,flatness:r.flatness,loopRecoveryFrame:o})}catch(r){n=r,j.warn(`Full-stack screenshot failed; returning the canvas-only fallback — ${r instanceof Error?r.message:String(r)}`,"screenshot")}if(!a){const r=n instanceof Error?n.message:String(n);return{ok:!1,error:n!==null?`full game-stack capture failed — ${r}; no canvas layer is available as a fallback`:y()?"the ingest mount is live but no DOM overlay or canvas layer is mounted for capture":"no play-mode DOM overlay or canvas layer is mounted yet",data:{code:"BRIDGE_SCREENSHOT_UNAVAILABLE"}}}try{const r=await R(()=>import("./index-iW3HFEJB.js").then(w=>w.tZ),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),u=r.readablePngSource(await r.liveCanvasFrame(a))??a,m=u.toDataURL("image/png"),p=m.indexOf(","),v=p>=0?m.slice(p+1):m;return I(v,{composite:!1,flatness:G(u,a.ownerDocument),loopRecoveryFrame:o})}catch(r){return{ok:!1,error:`bridge-screenshot: canvas layer capture failed — ${r instanceof Error?r.message:String(r)}`+(n===null?"":`; full game-stack capture also failed — ${n instanceof Error?n.message:String(n)}`),data:{code:"BRIDGE_SCREENSHOT_UNAVAILABLE"}}}}const Nt="workspace.command",Ut={"bridge-call":{timeoutMs:6e4,derivedRefresh:"always",handle:ee},"bridge-screenshot":{timeoutMs:15e3,derivedRefresh:"if-content-changed",handle:oe},"bridge-recording-start":{timeoutMs:15e3,derivedRefresh:"none",handle:async e=>{if(!b()&&!E()&&!y())return A();const t=D();if(!t)return{ok:!1,error:"no play-mode game surface is mounted yet"};const s=_().audio?.acquireRecordingStream?.()??null;try{return{ok:!0,data:{...await q(t,{fps:typeof e.fps=="number"?e.fps:void 0,format:e.format==="canvas-dom"||e.format==="composite-webm"?e.format:void 0,name:typeof e.name=="string"||e.name===null?e.name:void 0,canvasFrame:P,refreshFrame:te,audio:s})}}}catch(a){return h(a)}}},"bridge-recording-stop":{timeoutMs:6e4,derivedRefresh:"none",handle:async()=>{try{return{ok:!0,data:{...await x()}}}catch(e){return h(e)}}},"bridge-recording-timeline":{derivedRefresh:"none",handle:()=>{const e=H();return e===null?{ok:!1,error:"no gameplay recording is active"}:{ok:!0,data:{...e}}}},"bridge-recording-replay-capture":{timeoutMs:6e4,derivedRefresh:"none",handle:async e=>{try{return typeof e.replayPath!="string"?{ok:!1,error:"replayPath is required"}:typeof e.positionMs!="number"||!Number.isFinite(e.positionMs)?{ok:!1,error:"finite positionMs is required"}:{ok:!0,data:{...await K(e.replayPath,e.positionMs)}}}catch(t){return h(t)}}},"bridge-recording-replay-export":{timeoutMs:6e5,derivedRefresh:"none",handle:async e=>{try{if(typeof e.replayPath!="string")return{ok:!1,error:"replayPath is required"};const{blob:t,...s}=await z({replayPath:e.replayPath,...typeof e.fps=="number"?{fps:e.fps}:{},...typeof e.startMs=="number"?{startMs:e.startMs}:{},...typeof e.endMs=="number"?{endMs:e.endMs}:{}}),{beginGameplayRecordingSink:a,appendGameplayRecordingChunk:i,finishGameplayRecordingSink:c,abortGameplayRecordingSink:o}=await R(async()=>{const{beginGameplayRecordingSink:r,appendGameplayRecordingChunk:u,finishGameplayRecordingSink:m,abortGameplayRecordingSink:p}=await import("./editor-api-BqS9NdSX.js");return{beginGameplayRecordingSink:r,appendGameplayRecordingChunk:u,finishGameplayRecordingSink:m,abortGameplayRecordingSink:p}},__vite__mapDeps([10,0,1,2,3,4,5,6,7,8,9,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])),n=await a({startedAt:new Date().toISOString(),mimeType:"video/webm",purpose:"export",name:typeof e.name=="string"?e.name:`replay-export-${Date.now()}`});try{for(let r=0,u=0;r<t.size;r+=4*1024*1024,u++)await i(n,u,t.slice(r,r+4*1024*1024));await c(n,"post-processed canvas and DOM recording")}catch(r){throw await o(n),r}return{ok:!0,data:{...s,path:n.path}}}catch(t){return h(t)}}}};export{Ut as commands,Nt as point};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ui-board-document-B69iTbe5.js","assets/index-iW3HFEJB.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/design-time-layers-Cv3txX_V.js","assets/root-stacking-BEd9ZvxC.js","assets/edit-mode-authoring-Du1CaTkH.js","assets/design-time-mount-registry-DUpXCg1U.js","assets/react-story-board-CPTQdOIn.js","assets/world-documents-CwxZ4xtW.js","assets/react-canvas-navigation-IPhloKzi.js","assets/component-board-registry-DrIa2csL.js","assets/surface-state-BUmVXUJj.js","assets/board-guides-BVkDJqat.js","assets/CanvasSceneViewport-CrmQdonP.js","assets/RootSelectionOverlay-47LRczuj.js","assets/eyedropper-session-bjPXnfeX.js","assets/layered-pick-Db8YSlDp.js","assets/viewport-editor-controls-BYaAZ_Ku.js","assets/inspect-CUNyIUii.js","assets/inference-diagnostics-PcfFN6SD.js","assets/Toolbar-CAnrijz7.js","assets/transform-mode-request-C7qvcvEe.js","assets/TransientHint-BiIz-7Hh.js","assets/ReactCanvasControls-CnIJItuA.js","assets/story-media-presence-CEwzSadX.js"])))=>i.map(i=>d[i]);
2
- import{r as a}from"./component-board-registry-DrIa2csL.js";import{dn as s,B as n,_ as i,O as c,am as d,eH as l}from"./index-iW3HFEJB.js";import{s as m,g as p}from"./story-media-presence-CEwzSadX.js";const r="UI",u={medium:"dom",owner:"@volter/editor-game/react/ui-board",documentId:s,title:r,presence:()=>l()?p().dom?"present":"absent":null,subscribe:o=>{const e=m(o),t=d(o);return()=>{e(),t()}},install:async o=>{try{const{installUiBoard:e}=await i(async()=>{const{installUiBoard:t}=await import("./ui-board-document-B69iTbe5.js");return{installUiBoard:t}},__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]));e(o)}catch(e){throw c.error(`Failed to load the ${r} board: ${String(e)}`,"scene"),e}},absentReason:()=>`This project has no ${r} board (${s}): board presence keys on STORIES, not on roots, and none of this project's stories declares the "dom" medium. Declare it — a manifest root entry naming the story's module, or a \`volter.adapter.ts\` regionInclude that covers it — and the board appears. ${n("console")} names every story it could not place.`},_="workspace.service";function b(){return a(u)}const h=Object.freeze(Object.defineProperty({__proto__:null,point:_,start:b},Symbol.toStringTag,{value:"Module"}));export{r as U,h as c};
@@ -1 +0,0 @@
1
- import{stackOrder as se}from"./root-stacking-BEd9ZvxC.js";import{dp as ie,dq as de,dr as le,da as ae,aw as ue,ds as L,bq as fe,O as P,bp as pe,aB as ce,dt as we,dd as he,db as ye}from"./index-iW3HFEJB.js";import{B as S,q as N}from"./edit-mode-authoring-Du1CaTkH.js";import{s as ge,d as I,a as me}from"./design-time-mount-registry-DUpXCg1U.js";import{d as Ie,s as be,g as ve,e as Se}from"./react-story-board-CPTQdOIn.js";const H=new Map;function J(n,r){return`${n}\0${r}`}function Be(n,r){return H.get(J(n,r))}function $e(n,r,o){H.set(J(n,r),o)}const ke=1;function K(n){const r=[];for(const{worldId:o,adapter:d}of n.childAdapters()){if(!(d instanceof S))continue;const a=d.inspector.get(o,"kind");if(a!=="dom"&&a!=="canvas"||d.inspector.get(o,"reason")!==void 0)continue;const b=d.inspector.get(o,"adapter");b?.startsWith("ingest")||b?.startsWith("module")||r.push({worldId:o,kind:a,path:d.inspector.get(o,"path"),zOrder:Number(d.inspector.get(o,"zOrder")??0),pausable:d.inspector.get(o,"pausable")!==!1})}return r}function je(n){return K(n)}const Ce="ui-components-board";function $(n,r){return n.childAdapters().some(o=>o.worldId===r)}function De(){return{worldId:Ce,kind:"dom",path:void 0,zOrder:0,pausable:!0}}function U(n,r,o="dom"){const d=ce(r)?"none":"block";n.style.display=d,n.style.pointerEvents=I(o)?.alwaysInteractive||we(r)?"auto":"none";for(const a of Array.from(n.parentElement?.children??[]))a instanceof HTMLElement&&a.dataset.volterStoryBoardChromeFor===r&&(a.style.display=d)}function Oe(n,r,o,d){const{worldId:a}=r,s=document.createElement("div");return s.dataset.worldId=a,s.dataset.volterRootSurface="true",d&&(s.dataset.volterCanvasScene="true"),s.style.position="absolute",s.style.top="0",s.style.left="0",s.style.width="100%",s.style.height="100%",s.style.zIndex=String(o),s.style.contain="layout paint",s.style.cssText+="font: initial; color: initial; letter-spacing: normal; word-spacing: normal; text-align: start; text-indent: 0; text-transform: none; white-space: normal; direction: ltr;",U(s,a,r.kind),j(s),n.appendChild(s),s}function j(n){if(n.dataset.volterCanvasScene==="true"){n.style.transform="",n.style.width="100%",n.style.height="100%";return}if(n.style.transform=he(ye())??"",n.style.transformOrigin="0 0",n.dataset.volterReactStoryBoard==="true")return;const r=ve();n.style.width=r.width===null?"100%":`${r.width}px`,n.style.height=r.height===null?"100%":`${r.height}px`}const E=new Map;function Ve(n,r,o,d,a,s,b){s?s.canvasSceneView.reset():ie(),Se();const k=ue();if(!s&&k?.config.resolution&&Ie(k.config.resolution.width,k.config.resolution.height),o.playState!=="stopped"){let e=!1,t=!1;const i=o.subscribe(()=>{e||t||o.playState!=="stopped"||(t=!0,e||N())});return()=>{e=!0,i()}}const D=k?.rootPath,z=d?[...d]:K(r);if(z.length===0||!D)return()=>{};const X=D,y=se(z.map(e=>({id:e.worldId,zOrder:e.zOrder}))).map(e=>z.find(t=>t.worldId===e.id)),V=new Map(y.map(e=>[e.worldId,e])),u=new Map,g=new Map,C=new Map,O=new Set,R=new Set,T=new Set;let h=!1,p=!1,W=!1;function q(){for(const e of g.values())try{e()}catch(t){P.error(`[design-time-layers] dispose failed: ${t}`,"authoring")}g.clear();for(const e of u.values())e.remove();u.clear();for(const e of y)a?.(e.worldId,null)}function Y(){q();for(const e of O){const t=V.get(e);if(!t)continue;const i={id:t.worldId,kind:t.kind,entryOrScenePath:t.path,zOrder:t.zOrder,pausable:t.pausable};r.replaceChild(e,new S(o,i,"Design-time layer suspended by play mode — Stop restores it."))}O.clear(),o.notifyIngestEdit()}function M(e,t,i){const l=I(e.kind);if(!l){R.add(e.worldId);return}R.delete(e.worldId);const f=(C.get(e.worldId)??0)+1;C.set(e.worldId,f);const c=Oe(n,e,ke+t,!!s);u.set(e.worldId,c);const x={projectRootPath:X,store:o,...s?{view:s.canvasSceneView}:{},...b?{activationDocumentId:b}:{}},_=E.get(e.worldId),B=(async()=>(_&&await _,l.mount(e,c,x)))().then(w=>{if(h||p||C.get(e.worldId)!==f){w.dispose();return}if(w.adapter)$(r,e.worldId)&&(r.replaceChild(e.worldId,w.adapter),O.add(e.worldId)),a?.(e.worldId,w.adapter);else if(w.pick){const v={id:e.worldId,kind:e.kind,entryOrScenePath:e.path,zOrder:e.zOrder,pausable:e.pausable};r.replaceChild(e.worldId,new S(o,v,void 0,w.pick)),O.add(e.worldId)}g.set(e.worldId,w.dispose),L(e.worldId),o.notifyIngestEdit(),i?.()}).catch(w=>{if(C.get(e.worldId)!==f||(i?.(),c.remove(),u.get(e.worldId)===c&&u.delete(e.worldId),h||p))return;const v=fe(w);P.error(`[design-time-layers] world "${e.worldId}" (${e.kind}) failed to mount: ${v}`,"authoring");const ne={id:e.worldId,kind:e.kind,entryOrScenePath:e.path,zOrder:e.zOrder,pausable:e.pausable};a?.(e.worldId,null),$(r,e.worldId)&&r.replaceChild(e.worldId,new S(o,ne,v)),pe({worldId:e.worldId,kind:e.kind,identity:l.identity,message:v}),o.notifyIngestEdit()});E.set(e.worldId,B),B.then(()=>{E.get(e.worldId)===B&&E.delete(e.worldId)})}y.forEach((e,t)=>{M(e,t)});function Z(e,t){const i=g.get(e.worldId);g.delete(e.worldId);const l=u.get(e.worldId);u.delete(e.worldId),M(e,t,()=>{const c=u.get(e.worldId);if(c&&(c.style.visibility=""),i)try{i()}catch(x){P.error(`[design-time-layers] re-projection dispose failed: ${x}`,"authoring")}l?.remove()});const f=u.get(e.worldId);f&&f!==l&&(f.style.visibility="hidden")}function G(e,t){const i=g.get(e.worldId);if(g.delete(e.worldId),i)try{i()}catch(f){P.error(`[design-time-layers] remount dispose failed: ${f}`,"authoring")}const l=u.get(e.worldId);l&&(l.remove(),u.delete(e.worldId)),M(e,t)}const m=new Map;function A(){for(const[e,t]of m)I(e.kind)!==e&&(t(),m.delete(e));for(const e of me()){if(m.has(e)||I(e.kind)!==e||!y.some(l=>l.kind===e.kind))continue;const t=[],i=l=>()=>{h||p||o.playState!=="stopped"||y.forEach((f,c)=>{f.kind===e.kind&&l(f,c)})};e.remountWhen&&t.push(e.remountWhen(i(G))),e.reprojectWhen&&t.push(e.reprojectWhen(i(Z))),m.set(e,()=>{for(const l of t)l()})}}A();const Q=ge(()=>{h||p||o.playState!=="stopped"||(y.forEach((e,t)=>{R.has(e.worldId)&&I(e.kind)&&(T.delete(e.worldId),L(e.worldId),M(e,t))}),A())}),F=()=>{if(h||p)return;let e=!1;for(const t of y){if(!R.has(t.worldId)||T.has(t.worldId)||I(t.kind)||(T.add(t.worldId),!$(r,t.worldId)))continue;const i={id:t.worldId,kind:t.kind,entryOrScenePath:t.path,zOrder:t.zOrder,pausable:t.pausable};r.replaceChild(t.worldId,new S(o,i,`No package in this editor registered a design-time mount for a "${t.kind}" world, so there is nothing here to author it with.`)),e=!0}e&&o.notifyIngestEdit()},ee=de(F);le()&&F();const te=ae(()=>{for(const e of u.values())j(e)}),oe=be(()=>{for(const e of u.values())j(e)}),re=o.subscribe(()=>{if(!p&&o.playState!=="stopped"){p=!0,Y();return}if(p&&!W&&o.playState==="stopped"&&!h){W=!0,h||N();return}if(!p)for(const[e,t]of u)U(t,e,V.get(e)?.kind??"dom")});return()=>{h=!0;for(const e of m.values())e();m.clear(),Q(),ee(),re(),te(),oe(),q()}}export{$e as a,je as d,Ve as m,De as p,Be as r};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/design-time-react-mount-CT8eihNN.js","assets/design-time-layers-Cv3txX_V.js","assets/root-stacking-BEd9ZvxC.js","assets/index-iW3HFEJB.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-Du1CaTkH.js","assets/design-time-mount-registry-DUpXCg1U.js","assets/react-story-board-CPTQdOIn.js","assets/crash-null-boundary-v3a0uEgw.js","assets/realm-services-C8OlRuJ5.js","assets/canvas-entry-runtime-BQdfSw1B.js","assets/debug-registry-BUPLu5EA.js","assets/three-ingest-runtime-Bqwv-JsZ.js","assets/three.module-BLhyNg0e.js","assets/three.core-3arARmh6.js","assets/EffectComposer-BEAt0PtQ.js","assets/CopyShader-BzTUYzf6.js","assets/ShaderPass-DTnDQXm0.js","assets/Pass-D1MRT672.js","assets/CSS3DRenderer-BsAqfavI.js","assets/react-root-BHA-cdrW.js","assets/StoryPreviewMount-CN-jnvnn.js","assets/story-presentation-CdJ6Ncu6.js","assets/three-story-model-CE0vGtKW.js","assets/inspect-CUNyIUii.js","assets/inference-diagnostics-PcfFN6SD.js","assets/react-world-authoring-adapter-DgsCzOTj.js","assets/board-guides-BVkDJqat.js","assets/relative-import-specifier-CPCtuEhc.js","assets/story-arg-descriptors-Ek86ExX7.js","assets/writer-tw6EcuVO.js"])))=>i.map(i=>d[i]);
2
- import{_ as i}from"./index-iW3HFEJB.js";import{r as m}from"./design-time-mount-registry-DUpXCg1U.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";const v="workspace.service";function y(){return m({kind:"dom",owner:"@volter/editor-game/react/design-time-mount",identity:"default-react",mount:async(r,e,t)=>{const{mountReactDesignLayer:o}=await i(async()=>{const{mountReactDesignLayer:n}=await import("./design-time-react-mount-CT8eihNN.js");return{mountReactDesignLayer:n}},__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]));return o(r,e,t)},reprojectWhen:r=>{let e=!1,t=null;return i(()=>import("./design-time-react-mount-CT8eihNN.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])).then(o=>{e||(t=o.reprojectWhenStoriesRepublish(r))}),()=>{e=!0,t?.(),t=null}}})}export{v as point,y as start};
@@ -1 +0,0 @@
1
- import{r as it,a as at}from"./design-time-layers-Cv3txX_V.js";import{f8 as st,b9 as lt,g5 as ut,g6 as dt,O as E,g7 as mt,g8 as L,bq as Y,dk as H,am as ct,eH as U,an as $,d5 as pt,ch as ht,g9 as z}from"./index-iW3HFEJB.js";import{h as ft,d as gt,g as bt}from"./react-story-board-CPTQdOIn.js";import{C as wt}from"./crash-null-boundary-v3a0uEgw.js";import{r as yt,a as St}from"./realm-services-C8OlRuJ5.js";import{r as It}from"./react-root-BHA-cdrW.js";import{m as Rt}from"./StoryPreviewMount-CN-jnvnn.js";import{c as vt,s as Pt}from"./story-presentation-CdJ6Ncu6.js";import{d as Mt}from"./three-story-model-CE0vGtKW.js";import{c as Ct}from"./inspect-CUNyIUii.js";import{R as J}from"./react-world-authoring-adapter-DgsCzOTj.js";import"./root-stacking-BEd9ZvxC.js";import"./edit-mode-authoring-Du1CaTkH.js";import"./design-time-mount-registry-DUpXCg1U.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"./canvas-entry-runtime-BQdfSw1B.js";import"./debug-registry-BUPLu5EA.js";import"./three-ingest-runtime-Bqwv-JsZ.js";import"./three.module-BLhyNg0e.js";import"./three.core-3arARmh6.js";import"./EffectComposer-BEAt0PtQ.js";import"./CopyShader-BzTUYzf6.js";import"./ShaderPass-DTnDQXm0.js";import"./Pass-D1MRT672.js";import"./CSS3DRenderer-BsAqfavI.js";import"./inference-diagnostics-PcfFN6SD.js";import"./board-guides-BVkDJqat.js";import"./relative-import-specifier-CPCtuEhc.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./writer-tw6EcuVO.js";function Et(e){const o=e.tagName;if(o==="IMG"||o==="VIDEO"||o==="CANVAS"||o==="svg"||o==="SVG"||o==="PICTURE")return!0;const r=getComputedStyle(e);if(r.visibility==="hidden"||r.display==="none")return!1;if(xt(r.backgroundColor)||r.backgroundImage&&r.backgroundImage!=="none"||r.boxShadow&&r.boxShadow!=="none"||r.borderStyle!=="none"&&r.borderStyle!==""&&(parseFloat(r.borderTopWidth)>0||parseFloat(r.borderRightWidth)>0||parseFloat(r.borderBottomWidth)>0||parseFloat(r.borderLeftWidth)>0))return!0;for(const n of e.childNodes)if(n.nodeType===Node.TEXT_NODE&&(n.textContent??"").trim()!=="")return!0;return!1}function xt(e){if(!e||e==="transparent")return!1;const o=/^rgba\(\s*[\d.]+\s*,\s*[\d.]+\s*,\s*[\d.]+\s*,\s*([\d.]+)\s*\)$/.exec(e);return o?parseFloat(o[1])>0:!0}function Nt(e,o=r=>r.getBoundingClientRect()){const r=o(e),n=e.offsetWidth;if(r.width<=0||n<=0)return null;const s=r.width/n;let d=Number.POSITIVE_INFINITY,c=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY,y=Number.NEGATIVE_INFINITY;for(const p of e.querySelectorAll("*")){if(!Et(p))continue;const m=o(p);m.width<=0||m.height<=0||(d=Math.min(d,(m.left-r.left)/s),c=Math.min(c,(m.top-r.top)/s),i=Math.max(i,(m.right-r.left)/s),y=Math.max(y,(m.bottom-r.top)/s))}return i<=d||y<=c?null:{x:d,y:c,width:i-d,height:y-c}}let x=!1;function kt(e,o){if(!e)return;z({adapter:e,seam:"editor.stories.apply",stage:"effect",detail:`the design board applied portable story ${o}`,run:()=>e.stories.apply(o,o)});const r=e.selection;r&&z({adapter:e,seam:"editor.selection.set",stage:"effect",detail:`the design board selected portable story ${o}`,run:()=>r.set([o])})}let X=!1;async function Ft(){if(X)return;X=!0;const e=bt();if(!(e.width!==null||e.height!==null))try{const o=await ht("volter.project.json");if(!o)return;const r=JSON.parse(o),n=r.resolution?.width,s=r.resolution?.height;if(typeof n!="number"||typeof s!="number"||n<64||s<64||n>4096||s>4096)return;gt(n,s)}catch{}}function Tt(e,o){return{id:e,surface:"dom",description:void 0,adapter:{type:"builtin",identity:"dom",surface:"dom"},entry:o,zOrder:0,pausable:!0,loop:"gated"}}async function At(e,o){try{const r=await St(o,pt());return{ok:!0,Entry:await It(e,r)}}catch(r){return{ok:!1,error:r}}}async function be(e,o,r){const{projectRootPath:n,store:s,activationDocumentId:d}=r;x?x=!1:await st({rootPath:n});const c=lt(),i=Mt(c),y=e.path,p=y?await At(Tt(e.worldId,y),n):{ok:!1,error:new Error(`design-time react layer "${e.worldId}": no \`entry\` declared — nothing to mount.`)},m=p.ok?ut(p.Entry):void 0,Q=m?dt(m,e.path):null,j=i.find(g=>g.id===Q?.id)??null;if(i.length>0){const g=it(n,e.worldId),R=i.find(t=>t.id===g)??j??i[0];e.path&&!j&&E.warn(`[design-time-layers] React root "${e.worldId}" has no story naming its entry component${m?` "${m}"`:""} — the board opens on "${R.label}". Give a *.stories.tsx a \`meta.component\` of this root's entry component to choose its default preview.`,"authoring");let k=!1,M=null,F=null;const T=new Map,D=vt(i);await Ft();const l=ft(o,i.map(t=>({id:t.id,label:t.label,modulePath:t.modulePath,...t.title?{title:t.title}:{},parameters:t.parameters,...t.globals?{globals:t.globals}:{},...t.viewportLocked!==void 0?{viewportLocked:t.viewportLocked}:{}})),R.id,(t,u)=>{F=u,kt(M,t)},Pt(i,D)),_=t=>{if(k)return;const u=l.frames.get(t.id);if(!u)return;if(t.parameters?.layout==="fullscreen"){l.setMeasuredFrame(t.id,null);return}const a={width:u.content.offsetWidth,height:u.content.offsetHeight},f=a.width>0?Nt(u.content):null;if(!f){l.setMeasuredFrame(t.id,null);return}const C=8,S=48;let b=Math.max(0,f.x-C),w=Math.max(0,f.y-C),v=Math.min(a.width,f.x+f.width+C),P=Math.min(a.height,f.y+f.height+C);if(v-b<S){const A=(S-(v-b))/2;b=Math.max(0,b-A),v=Math.min(a.width,b+S)}if(P-w<S){const A=(S-(P-w))/2;w=Math.max(0,w-A),P=Math.min(a.height,w+S)}if(v-b>=a.width*.9&&P-w>=a.height*.9){l.setMeasuredFrame(t.id,null);return}l.setMeasuredFrame(t.id,{frame:{width:Math.round(v-b),height:Math.round(P-w)},mount:a,offset:{x:Math.round(b),y:Math.round(w)}})},rt=t=>{setTimeout(()=>_(t),0),setTimeout(()=>_(t),1e3)},G=async(t,u=t.args)=>{const h=l.frames.get(t.id)?.content;if(h){try{const a=await Rt(h,t.modulePath,t.name,t.Component,u);if(!a)return;if(k){a.unmount();return}T.set(t.id,a),l.clearError(t.id),rt(t)}catch(a){const f=Y(a);l.setError(t.id,f),E.error(`[design-time-layers] React root "${e.worldId}" failed mounting portable story "${t.name}": ${f}`,"authoring")}s.notifyIngestEdit()}};await Promise.all(i.map(t=>G(t))),l.setNote(mt().note),g&&l.activate(R.id,!0);const O=new Map(i.map(t=>[t.id,t])),nt={tagName:"DIV",get children(){return l.activeContent().children},getAttribute:t=>o.getAttribute(t),getBoundingClientRect:()=>o.getBoundingClientRect(),get style(){return o.style},get textContent(){return l.activeContent().textContent}},q=await L();return M=new J(nt,s,{...q?{writeBackend:q}:{},designTokens:()=>{const t=l.activeContent(),u=t.closest?.("[data-volter-game-styles]")??t.querySelector?.("[data-volter-game-styles]")??t;return Ct(getComputedStyle(u))},assetRoot:o,portableStories:i.map(t=>({id:t.id,label:t.label,args:t.args,name:t.name,modulePath:t.modulePath})),portableHierarchy:D,activePortableStoryId:R.id,onPortableStoryApplied:t=>{const u=(t?O.get(t):null)??R;at(n,e.worldId,u.id);const h=F;F=null,l.activate(u.id,h===null||h==="zoom")},onPortableStoryArgsChanged:(t,u)=>{const h=O.get(t);h&&G(h,u).catch(a=>{E.error(`[design-time-layers] React root "${e.worldId}" failed updating portable story "${h.name}" args: ${Y(a)}`,"authoring")})}}),d&&requestAnimationFrame(()=>H(d)),{adapter:M,dispose:()=>{k=!0,M.disposeReactRootAdapter();for(const t of T.values())t.unmount();T.clear(),l.dispose()}}}if(!p.ok)throw p.error instanceof Error?p.error:new Error(String(p.error));E.warn(`[design-time-layers] React root "${e.worldId}" has no portable CSF preview — the project declares no UI stories. Add a *.stories.tsx; give it a \`meta.component\` of this root's entry component${m?` (${m}, ${e.path})`:""} to make it this root’s default preview. Falling back to rendering the entry bare.`,"authoring");const Z=p.Entry,{createElement:B,createRoot:tt,flushSync:et}=await yt(),N=tt(o),ot=g=>{N.render(B(wt,{key:"__entry__",onCaught:g,children:B(Z)}))};let I=null;if(et(()=>{ot(g=>{I=g})}),I!==null)throw N.unmount(),I instanceof Error?I:new Error(String(I));const V=await L(),W=new J(o,s,{...V?{writeBackend:V}:{}});return d&&requestAnimationFrame(()=>H(d)),{adapter:W,dispose:()=>{W.disposeReactRootAdapter(),N.unmount()}}}function K(){return $().map(e=>e.ok?e.stories.map(o=>o.id).join(","):`!${e.modulePath}`).join("|")}function we(e){let o=U()?$():null,r=o===null?null:K(),n=null;const s=ct(()=>{if(!U())return;const d=$(),c=K();if(o===null){o=d,r=c;return}const i=c!==r;o=d,r=c,i&&(n!==null&&clearTimeout(n),n=setTimeout(()=>{n=null,x=!0,e(),setTimeout(()=>{x=!1},0)},250))});return()=>{n!==null&&clearTimeout(n),n=null,s()}}export{be as mountReactDesignLayer,we as reprojectWhenStoriesRepublish};
@@ -1 +0,0 @@
1
- import{Q as e,Y as r,bB as i,bC as a,bD as p,bE as m}from"./index-iW3HFEJB.js";import{bF as It,bG as Ot,bH as Ht,bI as Ut,bJ as qt,bK as Bt,bL as Jt,b1 as Mt,bM as Qt,bN as Vt,bO as Yt,bP as _t,bQ as Kt,a_ as Nt,bR as Xt,bS as Zt,bT as zt,bU as te,bV as ee,bW as re,bX as oe,bY as se,bZ as ie,b_ as ae,b$ as pe,c0 as me,c1 as ne,c2 as ce,c3 as le,c4 as de,c5 as be,c6 as ge,c7 as ue,c8 as Ee,c9 as Se,ca as ye,cb as Pe,cc as je,cd as ve,ce as fe,cf as he,cg as Ae,ch as ke,ci as we,cj as Ce,ck as Re,cl as Fe,cm as Te,cn as xe,co as Le,cp as De,a$ as Ge,cq as We,cr as $e,cs as Ie,ct as Oe,cu as He,cv as Ue,cw as qe}from"./index-iW3HFEJB.js";import{o as Je,q as Me,t as Qe}from"./game-network-CU3Yp0oN.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-Cofo9dCU.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-BUPLu5EA.js";import"./contract-system-adapters-D9Gcb7R7.js";import"./game-contract-seams-DOwrbA13.js";import"./seeded-random-BIdiJ8w9.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-CayyA6Tc.js";import"./capability-coverage-6I_iG0kk.js";import"./edit-mode-authoring-Du1CaTkH.js";import"./json-history-resource-82d2z68R.js";import"./binding-resolver-aDFCbAcG.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-C8OlRuJ5.js";import"./canvas-entry-runtime-BQdfSw1B.js";import"./three-ingest-runtime-Bqwv-JsZ.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-CHE8woWv.js";import"./ingest-source-persistence-2MRBPgo0.js";import"./pixi-story-model-DNkfnWUV.js";import"./surface-content-Dg9Kkazf.js";import"./viewport-root-presentation-DPtVohIT.js";import"./mounted-authoring-30zCcxeV.js";import"./entity-object-BeRdaaqQ.js";import"./user-data-BGLBYiFw.js";import"./workspace-arrangement-6V8ZwB2d.js";import"./three-contract-Dkt6PmWY.js";import"./three-wsMw8Ifj.js";import"./editor-layers-qlgroPbE.js";import"./component-instance-root-9MmHwMal.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-DctJX96k.js";import"./source-persistence-backend-I5wxqQgh.js";import"./three-projection-core-rOK39WmJ.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-mLmXPi7n.js";import"./deferred-ingest-play-DVLTxYCk.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-DgsCzOTj.js";import"./board-guides-BVkDJqat.js";import"./relative-import-specifier-CPCtuEhc.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-CUNyIUii.js";import"./inference-diagnostics-PcfFN6SD.js";import"./writer-tw6EcuVO.js";import"./three-state-Cu8xEils.js";import"./editor-shell-store-Di0waLQj.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-B7DJhMPS.js";async function Lt(){try{const t=await fetch(`${e}/examples`);return(await r(t,`GET ${e}/examples failed`)).examples}catch{return[]}}function Dt(t){return t.startsWith("/")?t:`${e}/learn-thumbnail?file=${encodeURIComponent(t)}`}async function Gt(){const t=await fetch(`${e}/templates`);return(await r(t,`GET ${e}/templates failed`)).templates}export{It as AssetDeliveryError,m as abortGameplayRecordingSink,Ot as adaptProjectFolder,Ht as appendGameplayRecordingAsset,a as appendGameplayRecordingChunk,Ut as appendGameplayRecordingDomEvents,qt as archiveEditorWorktree,Bt as assetDeliveryIssueMessage,i as beginGameplayRecordingSink,Jt as browseFolder,Mt as captureProjectAssetHistory,Qt as connectEvents,Vt as connectTabPresence,Yt as createEditorWorktree,_t as createProject,Kt as delegateEditorTask,Nt as downloadOnlineAsset,Je as endLogSession,p as finishGameplayRecordingSink,Me as flushLogEntries,Xt as getAssetLibraryCategories,Zt as getCurrentServerProject,zt as getDownloadUrl,te as getDownloadedAssetPath,ee as getEditorCompatibility,re as getEditorRepositoryPresence,oe as getEditorSessionWorktreeIdentity,se as getLauncherSettings,ie as getOnlineAssetFiles,ae as getOnlineAssetPreview,pe as getServerValidationLog,me as inspectProjectFolder,Dt as learnThumbnailUrl,ne as listAssets,ce as listDelegateHarnesses,le as listEditorWorktrees,Lt as listExamples,de as listProjectComponents,be as listProjectSourceFiles,ge as listRecentProjects,Gt as listTemplates,ue as loadDownloadedAssets,Ee as loadEditorState,Se as onAssetDownloaded,ye as openEditorWorktree,Pe as openProjectOnServer,je as pollEditorLeaseIdentity,ve as probeCurrentServerProject,fe as probeProjectFile,he as projectFileExists,Ae as readProjectSourceText,ke as readProjectTextFile,we as removeRecentProject,Ce as reportCommandListener,Re as reportCommandReceived,Fe as reportCommandResult,Te as reportEditorState,xe as reportPlayBootPhase,Le as reportTabRoute,De as requireEditorCompatibility,Ge as restoreProjectAssetHistory,We as revealInFinder,$e as saveEditorState,Ie as saveFile,Oe as saveThumbnail,He as searchOnlineAssets,Qe as startLogSession,Ue as stopEditorWorktreeSession,qe as updateLauncherSettings};
@@ -1 +0,0 @@
1
- import{kW as ht,kX as be,kY as gt,cM as vt,K,kZ as xt,k_ as we,k$ as yt,l0 as Se,a0 as L,a1 as ue,l1 as bt,l2 as wt,cR as Z,cS as G,l3 as St,l4 as jt,a5 as de,l5 as Et,aK as $e,l6 as Mt,l7 as It,ev as Te,aw as ze,f_ as Rt,f$ as Ct,g0 as Dt,g1 as Pt,r as oe,af as h,O as At,gN as _t,gO as je,gQ as kt,gj as Ft,eF as Ne,l8 as $t,dj as Tt,l9 as zt,p as Oe}from"./index-iW3HFEJB.js";import{a as s}from"./jsx-runtime-DPjLkJKQ.js";import{r as i}from"./index-nmcBqr7Y.js";import"./index-CtzuWnCS.js";import{u as Nt,d as Ot,c as Gt}from"./frame-debugger-store-CCm_jyhx.js";import{m as Vt}from"./audio-meter-Cddyq1vI.js";import{p as Ge}from"./utility-view-state-y2PTWZuT.js";import{P as Lt}from"./PlayBar-DvpDIJXg.js";import{a as Ee,r as Ht,f as Bt,R as Wt}from"./presentation-DPddUHCg.js";import{setUserData as Ve}from"./user-data-CODoGZqA.js";import{I as pe,J as Ut,K as ne,L as qt,M as Le,O as He,P as Be,Q as We,w as Kt,x as Xt,R as me,v as Y,S as Yt,T as Qt,U as Zt,V as se,W as Ue,X as Me,Y as qe,Z as Jt,_ as Ke,a as en,$ as tn,a0 as Ie,a1 as nn,b as Xe,a2 as sn}from"./game-network-CU3Yp0oN.js";import{aq as on,cp as Ye,aI as rn,bX as an,ey as ln,bh as fe,co as Re,s as cn,fo as W,bV as un,N as Qe,M as Ce,dg as dn,df as pn}from"./three.core-3arARmh6.js";import{e as mn,S as fn}from"./surface-state-BUmVXUJj.js";import{d as hn}from"./surface-content-Dg9Kkazf.js";import{a as gn,R as Ze}from"./active-ingest-CHE8woWv.js";import"./index-FUuS4qwW.js";import"./client-DNXj_opT.js";import"./_commonjsHelpers-D6-XlEtG.js";import"./index-D_NuPfjr.js";import"./index-CinJrH5C.js";import"./configurations-CACHqi7T.js";import"./run-selection-8wjzFzVg.js";import"./ingest-source-persistence-2MRBPgo0.js";import"./capability-coverage-6I_iG0kk.js";import"./game-contract-seams-DOwrbA13.js";import"./object-marks-BnvSuCTt.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-Cofo9dCU.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-BUPLu5EA.js";import"./contract-system-adapters-D9Gcb7R7.js";import"./seeded-random-BIdiJ8w9.js";import"./game-audio-BeCyd0Ha.js";import"./rapier-physics-adapter-CaZqWLu0.js";import"./events-156d8d12.esm-CYeuVCYr.js";import"./three.module-BLhyNg0e.js";import"./index-bQE2NA0D.js";import"./live-project-verbs-CayyA6Tc.js";import"./edit-mode-authoring-Du1CaTkH.js";import"./json-history-resource-82d2z68R.js";import"./binding-resolver-aDFCbAcG.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-C8OlRuJ5.js";import"./canvas-entry-runtime-BQdfSw1B.js";import"./three-ingest-runtime-Bqwv-JsZ.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"./viewport-root-presentation-DPtVohIT.js";import"./mounted-authoring-30zCcxeV.js";import"./entity-object-BeRdaaqQ.js";import"./user-data-BGLBYiFw.js";import"./workspace-arrangement-6V8ZwB2d.js";import"./three-contract-Dkt6PmWY.js";import"./three-wsMw8Ifj.js";import"./editor-layers-qlgroPbE.js";import"./component-instance-root-9MmHwMal.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-DctJX96k.js";import"./source-persistence-backend-I5wxqQgh.js";import"./three-projection-core-rOK39WmJ.js";import"./body-marks-C1LxJtQb.js";import"./structural-ids-BOo2BRoY.js";import"./object3d-authoring-subject-XccsO0xG.js";import"./r3f-physics-binding-mLmXPi7n.js";import"./deferred-ingest-play-DVLTxYCk.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-DgsCzOTj.js";import"./board-guides-BVkDJqat.js";import"./relative-import-specifier-CPCtuEhc.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-CUNyIUii.js";import"./inference-diagnostics-PcfFN6SD.js";import"./writer-tw6EcuVO.js";import"./three-state-Cu8xEils.js";import"./editor-shell-store-Di0waLQj.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-B7DJhMPS.js";const Je=8,re=1e3/60;function vn(e,t=Je){return!(e>0)||t<=0?0:Math.min(t,Math.max(1,Math.round(Vt(e)/100*t)))}function De(e,t){const n=e.filter(a=>a.id>t),r=n.at(-1)?.id??t,o=n.map(a=>a.intervalMs).filter(a=>Number.isFinite(a)&&a>0).sort((a,m)=>a-m);if(o.length===0)return{frameId:r,intervalMs:null};const l=Math.floor((o.length-1)*.95);return{frameId:r,intervalMs:o[l]??null}}function xn(e){const t=e.slice(-3);return t.slice(-2).length===2&&t.slice(-2).every(n=>n>=50)?"danger":t.length===3&&t.every(n=>n>re*1.05)?"warning":"normal"}function yn(e,t,n,r=50){if(e.length===0||t<=0||n<=0)return"";const o=Math.max(1,e.length-1);return e.map((l,a)=>{const m=a/o*t,d=Math.min(1,Math.max(0,l/r)),g=n-d*n;return`${m.toFixed(1)},${g.toFixed(1)}`}).join(" ")}const et="muted",Pe={enabled:!1,recording:!1,fps:0,cpuMs:0,p95Ms:0,p99Ms:0,frames:[],phases:[],systems:[],components:[],render:{gpuMs:null,drawCalls:0,triangles:0,geometries:0,textures:0,renderPasses:0}};function Ae(){return St(et)===!0}function bn(e){jt(et,e)}function wn(e,t){const n=t.find(o=>o.id==="master")?.level;if(!e.isMuted()&&n!==void 0)return n;const r=t.filter(o=>o.id!=="master").map(o=>o.level);return r.length>0?Math.max(...r):n??0}function Sn(){const e=K();i.useSyncExternalStore(e.subscribe,e.getShellSnapshot??e.getSnapshot);const t=e.playState==="playing",[n,r]=i.useState(!1),[o,l]=i.useState(0),[a,m]=i.useState(!1),[d,g]=i.useState(!1),[u,T]=i.useState(Ae),R=i.useRef(Ae()),E=i.useRef(new WeakMap),y=i.useRef(null),C=i.useSyncExternalStore(xt,we,we),v=yt();i.useEffect(()=>{const p=R.current||!t;for(const f of Se())E.current.get(f)!==p&&(f.setMuted(p),E.current.set(f,p))},[C,t]),i.useEffect(()=>{if(!v){l(0),m(!1),g(!1);return}const p=v.acquireMeters?.()??null;g(p!==null);const f=()=>{m(v.isMuted()),l(p?wn(v,p.read()):0)};f();const A=setInterval(f,100);return()=>{clearInterval(A),p?.dispose()}},[v]);const M=()=>{const p=!R.current,f=p||!t;for(const A of Se())A.resume?.(),A.setMuted(f),E.current.set(A,f);R.current=p,T(p),bn(p),m(f)},D=vn(o),z=v&&a&&!u&&!t?" (not playing)":"",P=v?a?"Audio muted":o>0?"Audio playing":"Audio quiet":"Audio unavailable";return s.jsxs("div",{className:"volter-header-audio","data-muted":a||void 0,"data-available":!!v,children:[s.jsxs(L,{ref:y,type:"button",variant:"ghost",size:"compact",className:"volter-header-telemetry-button","data-testid":"header-audio-telemetry","aria-label":`${P}; open audio controls`,"aria-haspopup":"menu","aria-expanded":n,title:`${P}${z}${d?"":" · level metering unavailable"}`,onClick:()=>r(p=>!p),children:[s.jsx(ue,{icon:a?bt:wt,size:"sm"}),s.jsx("span",{className:"volter-audio-vu","aria-hidden":"true",children:Array.from({length:Je},(p,f)=>s.jsx("i",{"data-filled":f<D||void 0},f))})]}),n&&s.jsx(Z,{anchorRef:y,onDismiss:()=>r(!1),gap:3,children:s.jsx(G,{onClick:()=>{M(),r(!1)},children:u?"Unmute audio":"Mute audio"})})]})}function jn(){const e=Nt(),t=e?.profiler??null,[n,r]=i.useState(Pe),[o,l]=i.useState([]);i.useEffect(()=>{if(!t){r(Pe),l([]);return}const R=t.telemetryEnabled;t.telemetryEnabled=!0;const E=t.getSnapshot(),y=De(E.frames,0);let C=y.frameId;r(E),l(y.intervalMs===null?[]:[y.intervalMs]);let v=null;const M=()=>{v=null;const z=t.getSnapshot(),P=De(z.frames,C);C=P.frameId,r(z);const p=P.intervalMs;p!==null&&l(f=>[...f,p].slice(-24))},D=t.subscribe(()=>{v===null&&(v=setTimeout(M,500))});return()=>{D(),v!==null&&clearTimeout(v),R||(t.telemetryEnabled=!1)}},[t]);const a=o.at(-1)??null,m=yn(o,72,18),d=a?Math.round(1e3/a):n.fps>0?Math.round(n.fps):null,g=a??(n.fps>0?1e3/n.fps:null),u=xn(o),T=e?`${e.label}: ${d??"—"} FPS · ${g?.toFixed(1)??"—"} ms frame time · open Profiler`:"The active document has no live render loop to profile";return s.jsxs(L,{type:"button",variant:"ghost",size:"compact",className:"volter-header-telemetry-button volter-header-performance","data-testid":"header-performance-telemetry","data-performance-tone":u,disabled:!e,"aria-label":T,title:T,onClick:()=>Ge.open("profiler"),children:[s.jsxs("svg",{className:"volter-performance-graph","aria-hidden":"true",viewBox:"0 0 72 18",width:"72",height:"18",children:[s.jsx("line",{className:"volter-performance-budget",x1:"0",x2:"72",y1:18-re/50*18,y2:18-re/50*18}),m&&s.jsx("polyline",{className:"volter-performance-sparkline",points:m})]}),s.jsxs("span",{className:"volter-performance-readout",children:[s.jsxs("strong",{className:"volter-header-fps",children:[d??"—"," FPS"]}),s.jsxs("span",{className:"volter-header-frame-ms",children:[g?.toFixed(1)??"—"," ms"]})]})]})}function En(){return i.useSyncExternalStore(ht,be,be),gt().telemetry==="hidden"?null:s.jsxs(vt,{className:"volter-header-telemetry volter-chrome-island volter-glass-island","data-island-scale":"compact",align:"center",gap:1,children:[s.jsx(Sn,{}),s.jsx(jn,{})]})}let Q=!1,ie=0,w=null,N=null;const Mn=new on(1,1,1,16,1,!0),In=new Ye({color:2280686,transparent:!0,opacity:.45,side:rn,depthWrite:!1}),Rn=new an({color:16755200,transparent:!0,opacity:.9}),Cn=new ln(.12,12,8),Dn=new Ye({color:16755200,depthWrite:!1}),Pn=16724804,An=2280686;let $=[];function _e(){return Q}function _n(e){e!==Q&&(Q=e,e?ie=requestAnimationFrame(tt):(cancelAnimationFrame(ie),$n()))}function tt(){if(!Q)return;ie=requestAnimationFrame(tt);const e=pe(),t=e?de().navigation?.crowdAgents?.()??[]:[];if(e!==N&&(N&&w&&N.remove(w),N=e,e&&(w||(w=new fe,w.name="crowd-debug-draw",Ve(w,"editorHelper",!0)),e.add(w))),!(!w||!e)){kn(w,t.length);for(let n=0;n<t.length;n++)Fn($[n],t[n])}}function kn(e,t){for(;$.length<t;){const n=new fe,r=In.clone(),o=new Re(Mn,r),l=new cn(new W(1,0,0),new W,1,16755200),a=new un(new Qe,Rn),m=new Re(Cn,Dn);n.add(o),n.add(l),e.add(n),e.add(a),e.add(m),$.push({root:n,cylinder:o,cylinderMaterial:r,arrow:l,path:a,target:m})}for(;$.length>t;){const n=$.pop();e.remove(n.root),e.remove(n.path),e.remove(n.target),n.arrow.dispose(),n.path.geometry.dispose(),n.cylinderMaterial.dispose()}}function Fn(e,t){e.root.position.set(t.position.x,t.position.y,t.position.z),e.cylinder.scale.set(t.radius,t.height,t.radius),e.cylinder.position.y=t.height/2,e.cylinderMaterial.color.setHex(t.state==="invalid"?Pn:An);const n=t.corners??[];n.length>0?(e.path.visible=!0,e.path.geometry.setFromPoints([new W(t.position.x,t.position.y+.05,t.position.z),...n.map(o=>new W(o.x,o.y+.05,o.z))])):e.path.visible=!1,t.target&&n.length>0?(e.target.visible=!0,e.target.position.set(t.target.x,t.target.y+.05,t.target.z)):e.target.visible=!1;const r=Math.hypot(t.velocity.x,t.velocity.y,t.velocity.z);r>.01?(e.arrow.visible=!0,e.arrow.position.y=t.height/2,e.arrow.setDirection(new W(t.velocity.x/r,t.velocity.y/r,t.velocity.z/r)),e.arrow.setLength(Math.max(r*.5,.2))):e.arrow.visible=!1}function $n(){if(w){N?.remove(w);for(const e of $)e.arrow.dispose();w.clear()}$=[],w=null,N=null}function Tn({onPresetChange:e}){const[t,n]=i.useState(!1),r=i.useRef(null),o=Le(),l=o.kind==="fit";return s.jsxs("div",{className:"volter-playbar-popover-anchor",children:[s.jsxs(L,{ref:r,variant:"ghost",size:"comfortable","aria-haspopup":"menu","aria-expanded":t,"aria-controls":t?"volter-device-preset-menu":void 0,"data-testid":"device-preset-picker",onClick:()=>n(a=>!a),title:"Device preview — constrain the game to a device resolution + DPR. Phone/tablet presets show the safe area, set --volter-safe-area-inset-top/right/bottom/left CSS vars on the game mount, and send mouse input as touch.",children:[s.jsx(ue,{icon:Et,size:"md"}),s.jsx($e,{variant:"code",children:l?"Device":`${o.width}×${o.height}`})]}),t&&s.jsxs(Z,{id:"volter-device-preset-menu",anchorRef:r,className:"volter-resolution-menu",gap:4,onDismiss:()=>n(!1),children:[Ut.map(a=>s.jsx(G,{role:"menuitemradio","aria-checked":a.id===o.id,"data-testid":`device-preset-${a.id}`,onSelect:()=>{e(a),n(!1)},children:a.label},a.id)),s.jsxs(G,{role:"menuitemcheckbox","aria-checked":ne(),"data-testid":"device-touch-toggle",onSelect:()=>qt(!ne()),children:[ne()?"✓ ":" ","Pointer as touch"]})]})]})}function zn(){const e=Mt(()=>It()??null),n=Ot(e)?.capture===!0;return s.jsx(L,{type:"button",size:"compact",variant:"ghost","data-testid":"game-capture-frame",className:"volter-frame-capture-game-button",disabled:!n,title:n?"Capture one rendered frame and open the Frame debugger":"No render-debug adapter registered for this world — frame capture is unavailable",onClick:()=>{Gt(e),Ge.open("frame")},children:"Capture frame"})}let nt={label:"Fill",width:null,height:null},ae=1,st=0;const le=new Set;function V(){st++;for(const e of le)e()}function ot(e){return le.add(e),()=>{le.delete(e)}}const rt=()=>st;function it(){return nt}function at(e){nt=e,V()}function lt(e,t){return e.width!==null||!t?e:{label:`Project — ${t.width}×${t.height}`,width:t.width,height:t.height}}function Nn(e){return e?[lt({label:"Fill",width:null,height:null},e),...Ee.filter(t=>t.width!==null)]:Ee}function ct(e){He(e.id),at(e.width===null||e.height===null?{label:"Fill",width:null,height:null}:{label:e.label,width:e.width,height:e.height})}function On(e){e!==ae&&(ae=e,V())}function Gn(){return ae}function ut(e){return Array.from(e.children).filter(t=>t.dataset?.volterRootSurface==="true")}function Vn(e,t,n){for(const r of t)r.contains(e)||e.appendChild(r);if(n)for(const r of ut(n))e.appendChild(r)}function Ln({name:e}){return s.jsx("div",{"data-testid":"game-instance-name",style:{flex:"0 0 auto",padding:"3px 10px",background:h.surface.chrome,color:h.content.primary,borderBottom:`1px solid ${h.boundary.default}`,fontSize:11,fontWeight:600,userSelect:"none"},children:e})}function dt({name:e,testId:t,borderLeft:n,focused:r,onFocus:o,children:l}){return s.jsxs("div",{"data-testid":t,"data-focused":r||void 0,onPointerDownCapture:o,style:{flex:1,minWidth:0,height:"100%",display:"flex",flexDirection:"column",overflow:"hidden",position:"relative",cursor:o&&!r?"pointer":void 0,...n?{borderLeft:`1px solid ${h.boundary.default}`}:{}},children:[s.jsx(Ln,{name:e}),s.jsx("div",{style:{flex:1,minHeight:0,position:"relative",display:"flex",alignItems:"center",justifyContent:"center"},children:l}),r&&s.jsx("div",{"aria-hidden":!0,style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:40,border:`2px solid ${h.accent.default}`,boxShadow:`inset 0 0 0 1px ${h.accent.default}`}})]})}function Hn({index:e}){const t=i.useRef(null),n=qe(e+1),r=i.useSyncExternalStore(Ke,en),[o,l]=i.useState(null),a=i.useSyncExternalStore(me,Y);return i.useEffect(()=>{const m=t.current;if(!m||!r)return;let d=null,g=!1;return tn(m,n).then(u=>{g?Ie(u):(d=u,l(u))},u=>{At.error(`Failed to mount ${n}: ${u}`,"play-mode")}),()=>{g=!0,l(null),d&&Ie(d)}},[e,r]),s.jsx(dt,{name:n,testId:`game-instance-slot-${e+1}`,borderLeft:!0,focused:o!=null&&a===o,onFocus:o?()=>Ue(o):void 0,children:s.jsx("div",{ref:t,"data-volter-instance-viewport":"",style:{position:"absolute",inset:0}})})}function Bn({style:e}){const t=i.useSyncExternalStore(Te,ze),r=K().playState!=="stopped",o=i.useRef(null);i.useSyncExternalStore(ot,rt),i.useSyncExternalStore(Be,We);const l=i.useSyncExternalStore(Kt,Xt),a=l>0,m=i.useSyncExternalStore(me,Y),d=Le(),g=it(),[u,T]=i.useState({width:0,height:0}),[R,E]=i.useState(0),y=i.useRef(null),C=i.useSyncExternalStore(Rt,Ct),v=i.useSyncExternalStore(Dt,Pt),M=Jt(),D=gn(),z=M.length>0?M.map(c=>c.rootId):D?[D.worldId]:C.filter(c=>c.mechanism==="host-mount").map(c=>c.rootId),P=!!(y.current&&hn(y.current)),p=M.length>0?M.some(c=>c.hasRenderableContent):P,f=M.length>0||D!==null,A=r?mn({surface:"Game",rootIds:z,phase:f?"ready":"loading",content:f?p?"present":"empty":"unknown",readiness:C,failures:v}):null;i.useEffect(()=>{if(!r||!f||p)return;const c=window.setTimeout(()=>E(x=>x+1),250);return()=>window.clearTimeout(c)},[R,p,r,f]),i.useEffect(()=>{const c=o.current;if(!c||typeof MutationObserver>"u")return;const x=new MutationObserver(()=>E(I=>I+1));return x.observe(c,{childList:!0,subtree:!0,characterData:!0}),()=>x.disconnect()},[]),i.useEffect(()=>{const c=Yt();c.width!==null&&(ct(c),V())},[]);const J=i.useRef([]),he=i.useCallback(c=>{if(c===y.current)return;!c&&y.current&&(J.current=ut(y.current)),c&&(Vn(c,J.current,y.current),J.current=[]);const x=y.current;y.current=c,c?oe().workspace.liveDocument.setContainer(c):x&&oe().workspace.liveDocument.releaseContainer(x),c?Qt(c):x&&Zt(x)},[]);i.useEffect(()=>{const c=o.current;if(!c)return;const x=new ResizeObserver(([I])=>{if(!I)return;const{width:X,height:ye}=I.contentRect;T(te=>te.width===X&&te.height===ye?te:{width:X,height:ye})});return x.observe(c),()=>x.disconnect()},[]);const mt=t?.config.resolution,_=Ht(g,mt),ge=_.kind==="fill",ft=ge||a,H=_.kind==="logical"?_.width:null,B=_.kind==="logical"?_.height:null,ve=d.dpr;i.useEffect(()=>{const c=ve??nn();a?u.width>0&&u.height>0&&se(u.width/(l+1),u.height,c):H===null||B===null?u.width>0&&u.height>0&&se(u.width,u.height,c):se(H,B,c)},[H,B,u.width,u.height,ve,r,a,l]);const ee=Bt(u,{width:H??0,height:B??0},{allowUpscale:_.kind==="logical"&&_.allowUpscale}),k=ge?1:ee.scale;i.useEffect(()=>{On(k)},[k]);const b=d.safeArea,xe={"--volter-safe-area-inset-top":`${b?.top??0}px`,"--volter-safe-area-inset-right":`${b?.right??0}px`,"--volter-safe-area-inset-bottom":`${b?.bottom??0}px`,"--volter-safe-area-inset-left":`${b?.left??0}px`};return s.jsx("div",{style:{overflow:"hidden",position:"relative",flexDirection:"column",...e},children:s.jsxs("div",{ref:o,style:{flex:1,overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"center",position:"relative"},children:[(()=>{const c=ft?s.jsx("div",{ref:he,"data-testid":"game-runtime-container","aria-hidden":"true",style:{position:"absolute",inset:0,...r?{}:{visibility:"hidden"},...xe}},"game-mount-fill"):s.jsxs("div",{style:{position:"relative",width:ee.width,height:ee.height,overflow:"hidden",...r?{}:{visibility:"hidden"}},children:[s.jsx("div",{ref:he,"data-testid":"game-runtime-container","aria-hidden":"true",style:{width:H??0,height:B??0,transformOrigin:"top left",transform:`scale(${k})`,...xe}}),b&&s.jsx("div",{"data-testid":"device-safe-area-overlay",style:{position:"absolute",inset:0,pointerEvents:"none",zIndex:2},children:[["top",b.top,{top:0,left:0,right:0,height:b.top*k}],["bottom",b.bottom,{bottom:0,left:0,right:0,height:b.bottom*k}],["left",b.left,{top:0,bottom:0,left:0,width:b.left*k}],["right",b.right,{top:0,bottom:0,right:0,width:b.right*k}]].map(([x,I,X])=>I>0?s.jsx("div",{"data-testid":`device-safe-area-${x}`,style:{position:"absolute",...X,background:h.semantic.dangerFaint,boxShadow:`inset 0 0 0 1px ${h.semantic.dangerMuted}`}},x):null)})]},"game-mount-device");return a?s.jsxs(s.Fragment,{children:[s.jsx(dt,{name:qe(0),testId:"game-instance-slot-0",focused:m===Me(),onFocus:()=>Ue(Me()),children:c}),Array.from({length:l},(x,I)=>s.jsx(Hn,{index:I},I))]}):c})(),!r&&s.jsxs("div",{"data-testid":"game-stopped-placeholder",style:{position:"absolute",inset:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:6,background:h.surface.shell,color:h.content.dim,fontSize:11,pointerEvents:"none"},children:[s.jsx("span",{style:{color:h.content.primary,fontSize:13},children:"Game is stopped"}),s.jsx("span",{children:"Press Play to start the composed runtime."})]}),r&&s.jsx(fn,{explanation:A,testId:"game-surface-status",style:{zIndex:30,background:h.surface.shell}})]})})}function ke(){return Xe().map(({id:e,name:t})=>`${e}\0${t}`).join("")}function Wn({instanceId:e}){const t=K();i.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot);const n=i.useSyncExternalStore(me,Y,Y),[,r]=i.useState(0);i.useEffect(()=>{const g=window.setInterval(()=>r(u=>u+1),250);return()=>window.clearInterval(g)},[]);const o=Ze(e),l=zt(),a=o?(o.loop.activeTimeouts??0)+(o.loop.activeIntervals??0)+(o.loop.activeAnimationFrames??0)+o.loop.pending:0,m=o?o.listeners.window+o.listeners.document:0,d=[["Mount",e],["Simulation",t.playState==="paused"?"Paused":"Running"],["Input",n===e?"Keyboard focus":"Inactive"],["Input events",o?`${o.loop.input??0} observed · ${o.loop.inputBlocked??0} blocked`:"Not measured"],["Network",l?l.getConnectionState?.()??"Not reported by this adapter":"Not registered"],["Owned callbacks",String(a)],["Owned listeners",String(m)],["Realm globals",String(o?.globals??0)],["Browser storage",o?`Shared origin · ${o.storage.local.reads+o.storage.session.reads} reads · ${o.storage.local.writes+o.storage.session.writes} writes`:"Shared origin"]];return s.jsx("div",{role:"none",style:{display:"grid",gridTemplateColumns:"112px minmax(120px, 1fr)",gap:"4px 12px",padding:"8px 10px",fontSize:10,lineHeight:"15px"},children:d.map(([g,u])=>s.jsxs("div",{style:{display:"contents"},children:[s.jsx("span",{style:{color:h.content.dim},children:g}),s.jsx("span",{style:{color:h.content.primary,fontFamily:g==="Mount"?h.typography.mono:void 0,overflow:"hidden",textOverflow:"ellipsis"},children:u})]},g))})}function Un(){i.useSyncExternalStore(Ke,ke,ke),i.useSyncExternalStore(_t,je,je);const e=Xe(),t=kt(),n=e.find(d=>d.id===t)??e[0],[r,o]=i.useState(!1),l=i.useRef(null);if(e.length<2||!n)return null;const m=(Ze(n.id)?.loop.firedWhileHeld??0)>0;return s.jsxs("div",{className:"volter-playbar-popover-anchor",children:[s.jsxs(L,{ref:l,variant:"ghost",size:"compact","aria-haspopup":"menu","aria-expanded":r,onClick:()=>o(d=>!d),title:`Runtime instruments inspect ${n.name}; agent-addressed commands are unchanged`,children:[s.jsx(ue,{icon:Ft,size:"sm",style:{color:m?h.semantic.warning:void 0}}),s.jsxs($e,{variant:"code",children:["Inspect ",n.name]}),s.jsx(Ne,{direction:"down"})]}),r&&s.jsxs(Z,{anchorRef:l,gap:3,onDismiss:()=>o(!1),style:{minWidth:270},children:[e.map(d=>s.jsxs(G,{role:"menuitemradio","aria-checked":d.id===n.id,onSelect:()=>$t(d.id),children:[d.id===n.id?"✓ ":" ",d.name]},d.id)),s.jsx(Tt,{}),s.jsx(Wn,{instanceId:n.id})]})]})}let q=!1,ce=0,S=null,O=null,U=null,j=null,F=0;function Fe(){return q}function qn(e){e!==q&&(q=e,e?ce=requestAnimationFrame(pt):(cancelAnimationFrame(ce),U?.setDebugDrawEnabled?.(!1),Qn()))}function pt(){if(!q)return;ce=requestAnimationFrame(pt);const e=pe(),t=e?Oe(de().physics):null;if(t!==U&&(U?.setDebugDrawEnabled?.(!1),U=t,t?.setDebugDrawEnabled?.(!0)),Kn(e),!S||!e)return;const n=t?.contactPoints?.()??null;Xn(S,n)}function Kn(e){e!==O&&(O&&S&&O.remove(S),O=e,e&&(S||(S=new fe,S.name="physics-debug-draw",Ve(S,"editorHelper",!0)),e.add(S)))}function Xn(e,t){const n=t?t.length/3:0;if(!j){F=64;const l=new Qe;l.setAttribute("position",new Ce(new Float32Array(F*3),3));const a=new dn({color:16724821,size:10,sizeAttenuation:!1,depthTest:!1,transparent:!0,opacity:.95});j=new pn(l,a),j.renderOrder=999,j.frustumCulled=!1,e.add(j)}const r=j.geometry;if(n>F){for(;F<n;)F*=2;r.setAttribute("position",new Ce(new Float32Array(F*3),3))}const o=r.getAttribute("position");t&&n>0&&o.array.set(t),o.needsUpdate=!0,r.setDrawRange(0,n),j.visible=n>0}function Yn(){const e=pe(),n=(e?Oe(de().physics):null)?.debugDraw?.()??null;let r=!1;n&&e&&e.traverse(a=>{a===n&&(r=!0)});const o=n?.geometry.getAttribute("position"),l=j?.geometry.drawRange.count??0;return{enabled:q,wireframeInScene:r,wireframeVisible:n?.visible??!1,wireframeVertexCount:o?.count??0,contactMarkerCount:j?.visible&&Number.isFinite(l)?l:0}}typeof window<"u"&&(window.__volterPhysicsDebug=Yn);function Qn(){S&&(O?.remove(S),j&&(j.geometry.dispose(),j.material.dispose()),S.clear()),j=null,F=0,S=null,O=null,U=null}function Zn(){const[e,t]=i.useState(!1),n=i.useRef(null);return s.jsxs("div",{style:{position:"relative"},children:[s.jsxs(L,{ref:n,type:"button",variant:"outline",size:"compact","data-testid":"game-debug-menu","aria-haspopup":"menu","aria-expanded":e,"aria-controls":e?"volter-game-debug-menu":void 0,onClick:()=>t(r=>!r),children:[s.jsx("span",{children:"Debug"}),s.jsx(Ne,{direction:"down"})]}),e&&s.jsxs(Z,{id:"volter-game-debug-menu",anchorRef:n,gap:3,onDismiss:()=>t(!1),style:{minWidth:190},children:[s.jsxs(G,{onClick:()=>{_n(!_e()),V()},children:[_e()?"✓ ":" ","Crowd debug draw"]}),s.jsxs(G,{onClick:()=>{qn(!Fe()),V()},children:[Fe()?"✓ ":" ","Physics debug draw"]})]})]})}function Jn(e){const t=i.useSyncExternalStore(Te,ze),n=K();return i.useSyncExternalStore(n.subscribe,n.getShellSnapshot??n.getSnapshot),i.useSyncExternalStore(ot,rt),i.useSyncExternalStore(Be,We),s.jsxs("div",{"data-testid":"game-doc-toolbar",style:{display:"grid",alignItems:"center",gridTemplateColumns:"minmax(0, 1fr) auto minmax(0, 1fr)",width:"100%",gap:6,padding:"2px 8px"},children:[s.jsxs("div",{style:{display:"flex",alignItems:"center",minWidth:0,overflow:"auto"},children:[s.jsx(Un,{}),s.jsx(Tn,{onPresetChange:r=>{ct(r),V()}}),s.jsx(Wt,{resolution:lt(it(),t?.config.resolution),options:Nn(t?.config.resolution),onResolutionChange:r=>{He(sn),at(r)},scale:Gn(),title:"Change game resolution"}),s.jsx(Zn,{}),n.playState!=="stopped"&&s.jsx(zn,{})]}),s.jsx(Lt,{placement:"runtime"}),s.jsx("div",{style:{display:"flex",justifyContent:"flex-end",minWidth:0},children:s.jsx(En,{})})]})}function es(e){const t=K();i.useSyncExternalStore(t.subscribe,t.getShellSnapshot??t.getSnapshot);const n=t.playState!=="stopped";return s.jsxs("div",{style:{flex:1,position:"relative",display:"flex",flexDirection:"column"},children:[s.jsx(Bn,{style:{flex:1,position:"relative",display:"flex",flexDirection:"column",pointerEvents:"auto",...t.playState==="playing"?{outline:`2px solid ${h.semantic.success}`,outlineOffset:-2}:n?{outline:`2px solid ${h.semantic.warning}`,outlineOffset:-2}:{}}}),t.playState==="paused"&&s.jsx("div",{"data-testid":"game-paused-notice",style:{position:"absolute",left:"50%",top:12,transform:"translateX(-50%)",padding:"6px 12px",borderRadius:6,background:"rgba(0,0,0,.72)",color:h.content.primary,fontSize:12,letterSpacing:".04em",pointerEvents:"none",zIndex:2},children:"Paused by the editor — press ▶ Play to resume (Escape pauses)"})]})}const $o="workspace.service";function To(){return oe().workspace.liveDocument.register({Content:es,Toolbar:Jn})}export{$o as point,To as start};
@@ -1,2 +0,0 @@
1
- import{createGameModuleResolver as k,setFocusedInstanceProvider as M}from"./game-module-access-gOlo85at.js";import{n as d}from"./command-results-CUQD49AB.js";import{i as g}from"./active-ingest-CHE8woWv.js";import{a as y,u as h,v as w}from"./game-network-CU3Yp0oN.js";import"./index-iW3HFEJB.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-DOwrbA13.js";import"./capability-coverage-6I_iG0kk.js";import"./ingest-source-persistence-2MRBPgo0.js";import"./contract-system-adapters-D9Gcb7R7.js";import"./index-OZVqp6xS.js";import"./index-Da9JhEvW.js";import"./native-debug-module-Cofo9dCU.js";import"./native-entry-surface-BE8LJNdu.js";import"./debug-registry-BUPLu5EA.js";import"./seeded-random-BIdiJ8w9.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-CayyA6Tc.js";import"./edit-mode-authoring-Du1CaTkH.js";import"./json-history-resource-82d2z68R.js";import"./binding-resolver-aDFCbAcG.js";import"./adapter-surface-Y37Nzcyw.js";import"./structural-signature-Dc7skRiy.js";import"./webgl-frame-capture-DdJkM2mi.js";import"./realm-services-C8OlRuJ5.js";import"./canvas-entry-runtime-BQdfSw1B.js";import"./three-ingest-runtime-Bqwv-JsZ.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-DPtVohIT.js";import"./mounted-authoring-30zCcxeV.js";import"./entity-object-BeRdaaqQ.js";import"./user-data-BGLBYiFw.js";import"./workspace-arrangement-6V8ZwB2d.js";import"./three-contract-Dkt6PmWY.js";import"./three-wsMw8Ifj.js";import"./editor-layers-qlgroPbE.js";import"./component-instance-root-9MmHwMal.js";import"./viewport-editor-controls-BYaAZ_Ku.js";import"./three-authoring-adapter-DctJX96k.js";import"./source-persistence-backend-I5wxqQgh.js";import"./three-projection-core-rOK39WmJ.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-mLmXPi7n.js";import"./deferred-ingest-play-DVLTxYCk.js";import"./rrweb-Cd2ifIRP.js";import"./react-world-authoring-adapter-DgsCzOTj.js";import"./board-guides-BVkDJqat.js";import"./relative-import-specifier-CPCtuEhc.js";import"./story-arg-descriptors-Ek86ExX7.js";import"./inspect-CUNyIUii.js";import"./inference-diagnostics-PcfFN6SD.js";import"./writer-tw6EcuVO.js";import"./three-state-Cu8xEils.js";import"./editor-shell-store-Di0waLQj.js";import"./output-pass-HurwNl0G.js";import"./viewport-door-B7DJhMPS.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-game/src/host/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};