@volter/cyclotron 0.5.212 → 0.5.213
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BUNDLED_NOTICES +375 -2995
- package/README.md +9 -5
- package/dist/.vite/manifest.json +529 -1764
- package/dist/assets/AudioViewer-B5pkIGXS.js +1 -0
- package/dist/assets/ImageViewer-BPVLEEQ2.js +1 -0
- package/dist/assets/JsonAssetDocument-DuVW9del.js +2 -0
- package/dist/assets/ProjectAuthoringBootstrap-CZJz4Svb.js +2 -0
- package/dist/assets/SourceAssetViewer-LwHBW53R.js +1 -0
- package/dist/assets/VideoViewer-Bfjjp4zH.js +1 -0
- package/dist/assets/{client-Dj2xr2fw.js → client-BLXKEWrR.js} +1 -1
- package/dist/assets/{index-Bc73pJIv.js → index-BKjLHm6K.js} +131 -131
- package/dist/assets/index-CJcVFJ-l.css +1 -0
- package/dist/assets/product-CaIfLQVS.js +1 -0
- package/dist/assets/story-capture-C3xmgE62.js +1 -0
- package/dist/assets/volter-sdk-DT0xmh2J.js +1407 -0
- package/dist/assets/volter-sdk-activation-events-B-WERmWU.js +1 -0
- package/dist/assets/volter-sdk-active-project-DvEsy8Q6.js +1 -0
- package/dist/assets/volter-sdk-adapter-editor-config-CQ5V6W-o.js +1 -0
- package/dist/assets/volter-sdk-animation-animation-clock-Cy7j_2qF.js +1 -0
- package/dist/assets/volter-sdk-animation-stage-transport-DoUDq6Gb.js +1 -0
- package/dist/assets/volter-sdk-api-base-Dr1bx5e0.js +1 -0
- package/dist/assets/volter-sdk-api-project-open-D4nPvIPU.js +1 -0
- package/dist/assets/volter-sdk-api-project-source-DoO7WBwQ.js +1 -0
- package/dist/assets/volter-sdk-api-settings-BEHgO5wf.js +1 -0
- package/dist/assets/volter-sdk-asset-capabilities-CGkNwaAe.js +1 -0
- package/dist/assets/volter-sdk-asset-document-write-policy-CzWM1HhK.js +1 -0
- package/dist/assets/volter-sdk-asset-editor-context-BkSK1vL1.js +1 -0
- package/dist/assets/volter-sdk-asset-thumbnails-zSmJgI_x.js +1 -0
- package/dist/assets/volter-sdk-asset-viewers-B-ICvlkR.js +1 -0
- package/dist/assets/volter-sdk-asset-workflow-project-content-C6Ow0R-F.js +1 -0
- package/dist/assets/volter-sdk-authoring-active-adapter-CKuWwxgH.js +1 -0
- package/dist/assets/volter-sdk-authoring-boundary-authoring-adapter-DTwFKBkS.js +1 -0
- package/dist/assets/volter-sdk-authoring-composite-authoring-adapter-iRSbSHpV.js +1 -0
- package/dist/assets/volter-sdk-authoring-consumer-actions-DK9-B-wg.js +1 -0
- package/dist/assets/volter-sdk-authoring-design-time-mount-registry-BQnWcBVe.js +1 -0
- package/dist/assets/volter-sdk-authoring-design-time-roots-BKSmkD7_.js +1 -0
- package/dist/assets/volter-sdk-authoring-layered-pick-C-YvuxEG.js +1 -0
- package/dist/assets/volter-sdk-authoring-no-authoring-adapter-Cv9DD6G0.js +1 -0
- package/dist/assets/volter-sdk-authoring-panel-authoring-BLOrFs8L.js +1 -0
- package/dist/assets/volter-sdk-authoring-react-design-canvas-style-Dr9i31o5.js +1 -0
- package/dist/assets/{volter-sdk-authoring-react-story-board-aeiEUlbU.js → volter-sdk-authoring-react-story-board-BlCQQM-8.js} +1 -1
- package/dist/assets/volter-sdk-authoring-seam-evidence-CjetY_ZG.js +1 -0
- package/dist/assets/volter-sdk-authoring-selection-scope-BxmbC71H.js +1 -0
- package/dist/assets/volter-sdk-authoring-shell-document-ops-DDb8oGx9.js +1 -0
- package/dist/assets/volter-sdk-authoring-stage-root-B50LLhnJ.js +1 -0
- package/dist/assets/volter-sdk-authoring-story-board-chrome-fit-BVV9fbcw.js +1 -0
- package/dist/assets/{volter-sdk-authoring-viewport-tool-context-DzsD6JQH.js → volter-sdk-authoring-viewport-tool-context-cQafPSkT.js} +1 -1
- package/dist/assets/volter-sdk-authoring-viewport-tool-owner-BppqL4f_.js +1 -0
- package/dist/assets/volter-sdk-authoring-world-session-state-BlpdiKod.js +1 -0
- package/dist/assets/volter-sdk-bitmap-label-BbtGPWgP.js +1 -0
- package/dist/assets/{volter-sdk-breakpoint-state-BPnDN_XU.js → volter-sdk-breakpoint-state-DCFuSvgm.js} +1 -1
- package/dist/assets/volter-sdk-bytes-codec-CrNeVT4e.js +1 -0
- package/dist/assets/volter-sdk-cancellation-reason-ByOH3mlF.js +1 -0
- package/dist/assets/volter-sdk-canvas-frames-BU8Rqr4J.js +1 -0
- package/dist/assets/volter-sdk-capture-size-D4cNT2XC.js +1 -0
- package/dist/assets/volter-sdk-chrome-registry-qHUiDauw.js +1 -0
- package/dist/assets/volter-sdk-command-result-text-2wzEhQ5t.js +1 -0
- package/dist/assets/volter-sdk-commands-C4RgHEOa.js +1 -0
- package/dist/assets/volter-sdk-component-board-registry-6gFZBkTP.js +1 -0
- package/dist/assets/volter-sdk-components-AssetEditorShell-CQVLedvW.js +1 -0
- package/dist/assets/volter-sdk-components-InspectorCanvasPreview-CN5ROhNT.js +1 -0
- package/dist/assets/volter-sdk-components-SurfaceStateOverlay-Cc9Ov1Ol.js +1 -0
- package/dist/assets/{volter-sdk-components-AssetEditorShell-BJL1am3b.js → volter-sdk-components-Toolbar-ZoV9Yq_A.js} +1 -1
- package/dist/assets/volter-sdk-components-TransientHint-BML2V3uu.js +1 -0
- package/dist/assets/volter-sdk-components-inspector-preview-section-BhDjhUyz.js +1 -0
- package/dist/assets/volter-sdk-components-use-after-paint-BVSO4qjV.js +1 -0
- package/dist/assets/volter-sdk-components-workspace-history-CThvGfsY.js +1 -0
- package/dist/assets/volter-sdk-content-entry-source-registry-CJLVq3tC.js +1 -0
- package/dist/assets/volter-sdk-contribution-surfaces-CeEDmriM.js +1 -0
- package/dist/assets/volter-sdk-contributions-x6j41XZp.js +1 -0
- package/dist/assets/volter-sdk-coverage-design-time-surfaces-D-tNGazo.js +1 -0
- package/dist/assets/volter-sdk-creation-site-registry-64gyrZPD.js +1 -0
- package/dist/assets/volter-sdk-css-numeric-style-CXeWqAoG.js +1 -0
- package/dist/assets/volter-sdk-declared-tools-BAzHxyUW.js +1 -0
- package/dist/assets/{volter-sdk-document-areas-x47hqeuC.js → volter-sdk-document-areas-4DXjy0el.js} +1 -1
- package/dist/assets/volter-sdk-document-layer-B4VYMPZ9.js +1 -0
- package/dist/assets/volter-sdk-document-open-registry-BLDMaEoN.js +1 -0
- package/dist/assets/volter-sdk-document-play-extension-Dv3fyS6K.js +1 -0
- package/dist/assets/volter-sdk-document-probe-drBhAyza.js +1 -0
- package/dist/assets/volter-sdk-document-stage-sessions-CtI9anAf.js +1 -0
- package/dist/assets/volter-sdk-document-viewports-BO0N7VyN.js +1 -0
- package/dist/assets/volter-sdk-editor-commands-BJ9Otxzu.js +1 -0
- package/dist/assets/volter-sdk-editor-console-BaGgfWmH.js +1 -0
- package/dist/assets/volter-sdk-editor-document-probe-D0ZhaXHx.js +1 -0
- package/dist/assets/volter-sdk-editor-mode-B07FDozS.js +1 -0
- package/dist/assets/volter-sdk-editor-runtime-D00Du7hG.js +1 -0
- package/dist/assets/volter-sdk-editor-server-response-C6kOPAsW.js +1 -0
- package/dist/assets/volter-sdk-editor-session-attribution-CggpIFb4.js +1 -0
- package/dist/assets/volter-sdk-editor-view-DEMsxlaT.js +1 -0
- package/dist/assets/volter-sdk-environment-images-OQtFG1kA.js +1 -0
- package/dist/assets/volter-sdk-extension-script-DanTHcyo.js +1 -0
- package/dist/assets/volter-sdk-eyedropper-session-BfVXtjzc.js +1 -0
- package/dist/assets/volter-sdk-files-file-provider-CXL6oCMd.js +1 -0
- package/dist/assets/volter-sdk-files-project-files-SBAE37py.js +1 -0
- package/dist/assets/volter-sdk-framed-document-capture-7TnE8pn1.js +1 -0
- package/dist/assets/volter-sdk-framed-document-driver-C0K3-SRt.js +1 -0
- package/dist/assets/volter-sdk-hierarchy-component-marks-BmJEMvvO.js +1 -0
- package/dist/assets/volter-sdk-hierarchy-kind-icon-CrwdpecY.js +1 -0
- package/dist/assets/{volter-sdk-hierarchy-node-rows-CNCdvWZM.js → volter-sdk-hierarchy-node-rows-FcK7_ULi.js} +1 -1
- package/dist/assets/{volter-sdk-hierarchy-projection-BXet4MmW.js → volter-sdk-hierarchy-projection-CKzUOZUa.js} +1 -1
- package/dist/assets/volter-sdk-hierarchy-row-media-Czg40Ddi.js +1 -0
- package/dist/assets/volter-sdk-hierarchy-row-model-BGzmcywF.js +1 -0
- package/dist/assets/volter-sdk-hierarchy-rows-VAI0psTR.js +1 -0
- package/dist/assets/volter-sdk-hierarchy-walk-CaVqG7v2.js +1 -0
- package/dist/assets/volter-sdk-history-history-delegate-DH_xBvdh.js +1 -0
- package/dist/assets/volter-sdk-history-history-service-D0n0Gl5Z.js +1 -0
- package/dist/assets/volter-sdk-history-persistence-coordinator-CcywAFdm.js +1 -0
- package/dist/assets/volter-sdk-history-resource-registry-DMTlnwGv.js +1 -0
- package/dist/assets/volter-sdk-history-snapshot-store-BVh1DtBp.js +1 -0
- package/dist/assets/volter-sdk-history-source-history-backend-ulJ-65tX.js +1 -0
- package/dist/assets/volter-sdk-hmr-registration-group-DvMQVKyO.js +1 -0
- package/dist/assets/volter-sdk-hmr-stable-react-context-BMVr5YVk.js +1 -0
- package/dist/assets/volter-sdk-host-D765Py2w.js +1 -0
- package/dist/assets/{volter-sdk-hotkeys-D8xO5kx0.js → volter-sdk-hotkeys-TesTKdAZ.js} +1 -1
- package/dist/assets/{volter-sdk-index-CTFkHN4C.js → volter-sdk-index-BABXozHr.js} +1 -1
- package/dist/assets/volter-sdk-inference-diagnostics-CsDbQ0M5.js +1 -0
- package/dist/assets/volter-sdk-inspection-document-subject-BMRD77Va.js +1 -0
- package/dist/assets/volter-sdk-inspection-group-icons-Wpz-YhkE.js +1 -0
- package/dist/assets/volter-sdk-inspection-model-BVOyStdc.js +1 -0
- package/dist/assets/volter-sdk-inspection-node-media-B8AL8_3F.js +1 -0
- package/dist/assets/volter-sdk-inspection-null-subject-d5bQZCbS.js +1 -0
- package/dist/assets/volter-sdk-inspector-property-grouping-BqrZkwo4.js +1 -0
- package/dist/assets/volter-sdk-inspector-section-registry-C6U15zvC.js +1 -0
- package/dist/assets/volter-sdk-js-heap-CcOnY0kf.js +1 -0
- package/dist/assets/{volter-sdk-keymap-presets-Vq8J3DoG.js → volter-sdk-keymap-presets-CSM-jVcZ.js} +1 -1
- package/dist/assets/volter-sdk-layout-arrangements-DHA3uifx.js +1 -0
- package/dist/assets/volter-sdk-layouts-4v9ECCn9.js +1 -0
- package/dist/assets/volter-sdk-light-explorer-model-CPuZjpiR.js +1 -0
- package/dist/assets/volter-sdk-live-seam-evidence-B_RyDaOp.js +1 -0
- package/dist/assets/volter-sdk-live-session-registry-C6gHroaH.js +1 -0
- package/dist/assets/{volter-sdk-manifest-project-DIThdJ0z.js → volter-sdk-manifest-project-CVVUDDuL.js} +1 -1
- package/dist/assets/volter-sdk-mount-css-scope-DaJoEo3v.js +1 -0
- package/dist/assets/volter-sdk-mount-failure-report-Cm92oiGJ.js +1 -0
- package/dist/assets/volter-sdk-native-selection-style-Bp4IBnA4.js +1 -0
- package/dist/assets/volter-sdk-photograph-notice-C6_gZGpW.js +1 -0
- package/dist/assets/volter-sdk-play-camera-flight-SwlYhOxW.js +1 -0
- package/dist/assets/volter-sdk-product-command-G8kKVJ-i.js +1 -0
- package/dist/assets/volter-sdk-progress-4GGmPvZn.js +1 -0
- package/dist/assets/volter-sdk-project-module-changes-DIrDIHeD.js +1 -0
- package/dist/assets/volter-sdk-project-module-url-BuAUWpus.js +1 -0
- package/dist/assets/volter-sdk-project-output-roots-BON7FOwQ.js +1 -0
- package/dist/assets/{volter-sdk-project-tab-census-Cos8L4lu.js → volter-sdk-project-tab-census-CO06UOh-.js} +1 -1
- package/dist/assets/volter-sdk-renderer-resource-counts-2kLiD8_S.js +1 -0
- package/dist/assets/volter-sdk-scoped-project-css-DA63CYkM.js +1 -0
- package/dist/assets/volter-sdk-selection-CSUq7EiY.js +1 -0
- package/dist/assets/volter-sdk-served-url-B_MypeId.js +1 -0
- package/dist/assets/volter-sdk-settings-settings-provider-CJuWxTB5.js +1 -0
- package/dist/assets/volter-sdk-settings-store-CEFKDj0h.js +1 -0
- package/dist/assets/volter-sdk-shell-store-Cl4sX9p4.js +1 -0
- package/dist/assets/volter-sdk-shell-store-door-DGjybg0J.js +1 -0
- package/dist/assets/volter-sdk-source-conflict-CV8Gk053.js +1 -0
- package/dist/assets/volter-sdk-stage-context-Cb0SaYhi.js +1 -0
- package/dist/assets/volter-sdk-stage-invalidation-VlBciYA0.js +1 -0
- package/dist/assets/volter-sdk-stage-store-registry-BpIy_QKq.js +1 -0
- package/dist/assets/{volter-sdk-startup-failure-CtJyTS-2.js → volter-sdk-startup-failure-C_8H4xuP.js} +1 -1
- package/dist/assets/{volter-sdk-stories-StoryPreviewMount-DjhZUmf-.js → volter-sdk-stories-StoryPreviewMount-BUX42gIR.js} +1 -1
- package/dist/assets/volter-sdk-stories-compose-project-stories-CkSd4Si5.js +1 -0
- package/dist/assets/volter-sdk-stories-scope-Dndn7MD8.js +1 -0
- package/dist/assets/volter-sdk-stories-story-declared-medium-Byi4XWeJ.js +1 -0
- package/dist/assets/volter-sdk-stories-story-dom-runtime-BS1VPvJ6.js +1 -0
- package/dist/assets/volter-sdk-stories-story-grouping-CpNh4cUf.js +1 -0
- package/dist/assets/{volter-sdk-story-document-openers-Df7Tcu2n.js → volter-sdk-story-document-openers-Ba5jQqay.js} +1 -1
- package/dist/assets/volter-sdk-surface-state-BhQ45ars.js +1 -0
- package/dist/assets/volter-sdk-tab-census-D0r0s37y.js +1 -0
- package/dist/assets/volter-sdk-tool-contribution-convention-JCXL6f2w.js +1 -0
- package/dist/assets/volter-sdk-transform-mode-request-Cwk_Kyty.js +1 -0
- package/dist/assets/volter-sdk-transient-hint-BOfFzAV8.js +1 -0
- package/dist/assets/{volter-sdk-types-BOfYN_tN.js → volter-sdk-types-CkT8l5N_.js} +1 -1
- package/dist/assets/volter-sdk-ui-source-file-region-resolver-Cfza3eEl.js +1 -0
- package/dist/assets/{volter-sdk-ui-source-inspect-gofMOHNR.js → volter-sdk-ui-source-inspect-CEjmAN75.js} +1 -1
- package/dist/assets/{volter-sdk-ui-source-source-write-backend-BgVis1yZ.js → volter-sdk-ui-source-source-write-backend-0njgRdI6.js} +1 -1
- package/dist/assets/volter-sdk-ui-source-tier-source-write-backend-CpsxorYU.js +1 -0
- package/dist/assets/volter-sdk-viewport-activation-timings-B3hRTu3A.js +1 -0
- package/dist/assets/volter-sdk-viewport-editor-controls-DDBd-VqO.js +1 -0
- package/dist/assets/volter-sdk-viewport-presentation-DRhiAH1h.js +1 -0
- package/dist/assets/volter-sdk-volter-contributions-nlGXjgJZ.js +1 -0
- package/dist/assets/volter-sdk-wait-until-CMvYQmO8.js +1 -0
- package/dist/assets/volter-sdk-widgets-design-system-BJOyO8sO.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-appearance-eVtkxsIm.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-material-BoQP_5SK.js +1 -0
- package/dist/assets/volter-sdk-widgets-icon-set-registry-CP0D74kc.js +1 -0
- package/dist/assets/volter-sdk-widgets-index-De34FpYu.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-_GjMjIGb.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-B7vN7BEd.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-E2J8cpyT.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-D6TERGKs.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-CXR8n-CA.js +1 -0
- package/dist/assets/{volter-sdk-widgets-inspector-widgets-FilterEditor-DKkdim3n.js → volter-sdk-widgets-inspector-widgets-FilterEditor-CDvfWY4Q.js} +1 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-BgpW8FW8.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-DOOBkXjY.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-1NXWR_gB.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-Cd2-HwFn.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-C4HuSjFu.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-DUU2CCtc.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-D5kwrOUQ.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-CkFN2SUn.js +1 -0
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-DynpKMMZ.js +1 -0
- package/dist/assets/{volter-sdk-widgets-palette-colors-Byzw9YHf.js → volter-sdk-widgets-palette-colors-DhL1I42R.js} +1 -1
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-EUtcZi0Y.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Fields-Bl_eaBej.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-List--NE_1N5-.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-BHXpv7qi.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-BdKa5HGV.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-sFV7f1UP.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-CIr5Cs49.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tree-C2YHfddf.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-DCclspnW.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Button-B0YxR4ea.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-B1_SLTuc.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-CpHzPdt8.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-Dw4knhya.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-BAbRanmE.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-Cj7jKNd4.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-C0DCI5bE.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Layout-gT4Z6mtt.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Menu-9EESAp9m.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-Dk-5zqJ8.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Panel-BQWJF-Pb.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-DXvmafCK.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Text-yBrdWK2w.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-CRhefpUL.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-D5Kcb-ZC.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-DiG6PEIe.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-DhnSxXVK.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-e65mgyAk.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-BVL0mN8g.js +1 -0
- package/dist/assets/volter-sdk-widgets-theme-C-_RU9Ov.js +1 -0
- package/dist/assets/volter-sdk-widgets-z-index-CrJJXeKL.js +1 -0
- package/dist/assets/volter-sdk-worker-call-metrics-BTfmngck.js +1 -0
- package/dist/assets/{volter-sdk-workspace-core-utilities-BaAh2Ei8.js → volter-sdk-workspace-core-utilities-DtHGK9PF.js} +1 -1
- package/dist/assets/volter-sdk-workspace-document-ids-COULA7c6.js +1 -0
- package/dist/assets/volter-sdk-workspace-document-registry-6m5csVP7.js +1 -0
- package/dist/assets/volter-sdk-workspace-document-restore-M8ifJMou.js +1 -0
- package/dist/assets/{volter-sdk-workspace-host-commands-72RdJeW4.js → volter-sdk-workspace-host-commands-8Qzej--P.js} +1 -1
- package/dist/assets/volter-sdk-workspace-static-panels-Ckk7qUuS.js +1 -0
- package/dist/assets/volter-sdk-workspace-status-registry-BdU0dZAt.js +1 -0
- package/dist/assets/volter-sdk-workspace-utility-registry-BHxymD2l.js +1 -0
- package/dist/assets/volter-sdk-world-canvas-viewport-state-CHO8s9gE.js +1 -0
- package/dist/assets/volter-sdk-world-pan-state-C-9xgzAh.js +1 -0
- package/dist/assets/volter-sdk-write-pipe-CJHg7J4i.js +1 -0
- package/dist/assets/{volter-shared-fontawesome-B-OhfZs4.js → volter-shared-fontawesome-BEv9WEZj.js} +1 -1
- package/dist/assets/{volter-shared-jsx-dev-runtime-akPt_-OI.js → volter-shared-jsx-dev-runtime-domcKDU3.js} +1 -1
- package/dist/assets/{volter-shared-jsx-runtime-CKQtDN6l.js → volter-shared-jsx-runtime-Cu7pVW-1.js} +1 -1
- package/dist/assets/{volter-shared-react-STQK0zHl.js → volter-shared-react-BLHga76C.js} +1 -1
- package/dist/assets/volter-shared-react-dom-client-vi6WsWu2.js +1 -0
- package/dist/assets/{volter-shared-react-dom-2aA0eyQg.js → volter-shared-react-dom-kzJVGsQd.js} +1 -1
- package/dist/assets/volter-shared-three-BWbOWtM5.js +4220 -0
- package/dist/volter-shared-modules.json +225 -225
- package/dist/volter-shared-react.json +6 -6
- package/dist/volter-shared-three.json +1 -1
- package/dist-node/cli.js +182 -127
- package/dist-node/create.js +18 -21
- package/package.json +16 -16
- package/src/index.ts +1 -2
- package/src/product-id.d.ts +4 -0
- package/starter/AGENTS.md +132 -157
- package/starter/game/levels/MainLevel.tsx +24 -0
- package/starter/game/prefabs/ground/Ground.tsx +24 -0
- package/starter/game/{levels → prefabs/ground}/ground.blend +0 -0
- package/starter/game/prefabs/ground/ground.glb +0 -0
- package/starter/game/prefabs/ground/ground.py +106 -0
- package/dist/assets/AudioViewer-EMpvKC-X.js +0 -1
- package/dist/assets/BVHLoader-CpdLvOHd.js +0 -1
- package/dist/assets/ColladaLoader-D1GMlAA9.js +0 -3
- package/dist/assets/EntityModelDocument-rYF-p8Fo.js +0 -1
- package/dist/assets/EnvironmentAssetDocument-DfykWLLS.js +0 -1
- package/dist/assets/FBXLoader-DKZ0UD3F.js +0 -1
- package/dist/assets/ImageViewer-B0OqXrVU.js +0 -1
- package/dist/assets/InspectorObjectPreview-CwCqdv76.js +0 -1
- package/dist/assets/JsonAssetDocument-PzzxK-v9.js +0 -2
- package/dist/assets/LiveModuleDocument-Bq9J5nMx.js +0 -1
- package/dist/assets/LutAssetDocument-CyzgDCYJ.js +0 -1
- package/dist/assets/MTLLoader-BOaPmAvY.js +0 -2
- package/dist/assets/ModelAssetDocument-8he5iZqV.js +0 -1
- package/dist/assets/OBJLoader-BLg7dmPe.js +0 -5
- package/dist/assets/Object3DDocumentToolbar-CLfEn5i-.js +0 -1
- package/dist/assets/Object3DDocumentToolbar-WK1RY6Gg.css +0 -1
- package/dist/assets/OrbitControls-DxYDYiEc.js +0 -1
- package/dist/assets/PLYLoader-bAg6lYzP.js +0 -2
- package/dist/assets/ProjectAuthoringBootstrap-FVTj-Ag9.js +0 -2
- package/dist/assets/QuarksAssetDocument-DBJQXZ9u.js +0 -2
- package/dist/assets/RectAreaLightUniformsLib-CQLblkbI.js +0 -1
- package/dist/assets/STLLoader-C8jImL_t.js +0 -1
- package/dist/assets/ShaderAssetDocument-C3QolcYl.js +0 -12
- package/dist/assets/SourceAssetViewer-xB9kAyPa.js +0 -1
- package/dist/assets/StageHost-BZBLHaPe.css +0 -1
- package/dist/assets/StageHost-xYvmzMBo.js +0 -1231
- package/dist/assets/TDSLoader-DLNvOc6c.js +0 -1
- package/dist/assets/ToolObject3DPreview-4XgGyXTu.js +0 -2
- package/dist/assets/VideoViewer-BruuQyu3.js +0 -1
- package/dist/assets/ViewportShadingMenu-amXbnRtl.js +0 -1
- package/dist/assets/animation-mixers.service-Ce1JMqA2.js +0 -1
- package/dist/assets/animation-timeline.utility-CzsUvu3v.js +0 -1
- package/dist/assets/asset-preview-CtqauM13.js +0 -4
- package/dist/assets/basis_transcoder-VXdx5NbI.wasm +0 -0
- package/dist/assets/basis_transcoder-o4Hde_L7.js +0 -19
- package/dist/assets/blender-base64-Cxqc4R5f.js +0 -1
- package/dist/assets/blender-display-shaders-BPmHILFy.lut +0 -0
- package/dist/assets/blender-emscripten-engine-Bl_j9xEY.js +0 -26
- package/dist/assets/blender-motion-worker-CtT2cV3V.js +0 -1
- package/dist/assets/blender-node-editor.document-lj1qK5Vu.js +0 -1
- package/dist/assets/blender-outliner-model-BqLWEXta.js +0 -7359
- package/dist/assets/blender-properties-model-DD-2sMKx.js +0 -1
- package/dist/assets/blender-properties-tab-BmudfsC3.js +0 -3
- package/dist/assets/blender-runtime.document-IVSATTnk.js +0 -13
- package/dist/assets/blender-screenshot.service-BRgdtDQC.js +0 -1
- package/dist/assets/blender-timeline.document-8jLaNF31.js +0 -1
- package/dist/assets/blender-uv-editor.document-BVcA7mi2.js +0 -1
- package/dist/assets/blender-version.status-B43F7DzT.js +0 -2
- package/dist/assets/blender-wali-engine-xLHhm0KZ.js +0 -2
- package/dist/assets/blender.environment-CG-pC7sk.js +0 -1
- package/dist/assets/blender.keymap-pRN8nlCs.js +0 -1
- package/dist/assets/blender.page-BYbkmFDE.js +0 -3
- package/dist/assets/blender.status-CcKJxsZ1.js +0 -1
- package/dist/assets/blender.style-DuFonR-j.js +0 -1
- package/dist/assets/chat.page-DzuAKPGP.js +0 -1
- package/dist/assets/city-EkhAOo5s.exr +0 -0
- package/dist/assets/courtyard-DqlebbpC.exr +0 -0
- package/dist/assets/draco_decoder-C32yEggz.wasm +0 -0
- package/dist/assets/draco_decoder-Z1_iN-Ht.wasm +0 -0
- package/dist/assets/draco_decoder-fzg4nYZr.js +0 -34
- package/dist/assets/draco_wasm_wrapper-DxJM36Ib.js +0 -117
- package/dist/assets/draco_wasm_wrapper-fZCQGLGb.js +0 -116
- package/dist/assets/editor-presentation-activity-CqJH4G9t.js +0 -1
- package/dist/assets/forest-P_CQY3b_.exr +0 -0
- package/dist/assets/index-C4uuH2ZE.css +0 -1
- package/dist/assets/index-DlAJXb_f.js +0 -952
- package/dist/assets/interior-Bo_lba15.exr +0 -0
- package/dist/assets/linear-resolve-B-MA5O31.js +0 -400
- package/dist/assets/live-mixers-B-bwLZ7c.js +0 -1
- package/dist/assets/maya.style-C3zx8RC5.js +0 -1
- package/dist/assets/model-inspection-_SFE7cp7.js +0 -1
- package/dist/assets/model.layout-CX-vaeBh.js +0 -1
- package/dist/assets/models.finder-DcOx-jsM.js +0 -1
- package/dist/assets/mtoon0-BNRZGBf8.blend +0 -0
- package/dist/assets/mtoon1-EgrxQlCc.blend +0 -0
- package/dist/assets/mtoon1_outline-xuubMJ8J.blend +0 -0
- package/dist/assets/mtoon_auto_setup-BF1c8USg.blend +0 -0
- package/dist/assets/night-CvV4Gybt.exr +0 -0
- package/dist/assets/object3d-document-session-registry-DvgzaByQ.js +0 -2
- package/dist/assets/output-pass-Bw2FZb8e.js +0 -85
- package/dist/assets/play-mode-BGq1Hn-c.js +0 -1
- package/dist/assets/play.page-DB2UjY0o.js +0 -1
- package/dist/assets/product-OBHh_Udv.js +0 -1
- package/dist/assets/properties-bone-constraints.inspector-NWLfoFX1.js +0 -1
- package/dist/assets/properties-bone.inspector-DybmNdBB.js +0 -1
- package/dist/assets/properties-collection.inspector-Cg7Jq6yG.js +0 -1
- package/dist/assets/properties-constraints.inspector-DY--pvLo.js +0 -1
- package/dist/assets/properties-data.inspector-CP1lurLb.js +0 -1
- package/dist/assets/properties-material.inspector-K8Qx5wr9.js +0 -1
- package/dist/assets/properties-modifiers.inspector-DOfP-8mX.js +0 -1
- package/dist/assets/properties-object.inspector-sqx6qMyu.js +0 -1
- package/dist/assets/properties-output.inspector-CUYUEC6S.js +0 -1
- package/dist/assets/properties-particles.inspector-oAWorORY.js +0 -1
- package/dist/assets/properties-physics.inspector-CQIHdcOy.js +0 -1
- package/dist/assets/properties-render.inspector-XTzdYo4u.js +0 -1
- package/dist/assets/properties-scene.inspector-BytOBuw9.js +0 -1
- package/dist/assets/properties-texture.inspector-2WNelhHG.js +0 -1
- package/dist/assets/properties-view-layer.inspector-DVSdqosc.js +0 -1
- package/dist/assets/properties-world.inspector-CHHm7g3j.js +0 -1
- package/dist/assets/regions-BlV6hTFd.js +0 -1
- package/dist/assets/sculpt.layout-BkvEflSA.js +0 -1
- package/dist/assets/session-addons-KcG0o7Xc.js +0 -76898
- package/dist/assets/shading.layout-V9LTFaVk.js +0 -1
- package/dist/assets/sky-precompute-worker-CPGW9t_C.js +0 -1
- package/dist/assets/spark.module-Cc-ZVx5e.js +0 -12120
- package/dist/assets/stage-keyboard-Rgvt63qI.js +0 -1
- package/dist/assets/stage-overlay-set-juTRuk99.js +0 -1
- package/dist/assets/stage-presence-markers-XsGUs3S-.js +0 -1
- package/dist/assets/stage-transform-tools-BE7m4omf.js +0 -1
- package/dist/assets/standard-viewport-dressing-asIXnD-w.js +0 -24
- package/dist/assets/std-scene-level-DeiReu6Z.js +0 -13
- package/dist/assets/std-scene.document-DyWMJhxA.js +0 -1
- package/dist/assets/story-capture-Y8_YS5DC.js +0 -1
- package/dist/assets/studio-CysTBGIb.exr +0 -0
- package/dist/assets/substance.style-CoQdG-kF.js +0 -1
- package/dist/assets/sunrise-Dj0psFrf.exr +0 -0
- package/dist/assets/sunset-Bw3x2Bot.exr +0 -0
- package/dist/assets/texture.layout-DASpHVht.js +0 -1
- package/dist/assets/three.module-JoAAxMWl.js +0 -4220
- package/dist/assets/three.page-Dy2q5JEV.js +0 -2
- package/dist/assets/transparent_z_write-xIRcVb2w.blend +0 -0
- package/dist/assets/transport-strip-cKO8FHd1.js +0 -1
- package/dist/assets/uv-editing.layout-CF_54oSA.js +0 -1
- package/dist/assets/volter-sdk-D8o6TU4A.js +0 -1407
- package/dist/assets/volter-sdk-activation-events-DVerKSly.js +0 -1
- package/dist/assets/volter-sdk-active-project-f6toeBI4.js +0 -1
- package/dist/assets/volter-sdk-adapter-editor-config-DpARQ4TT.js +0 -1
- package/dist/assets/volter-sdk-animation-animation-clock-BGyYYQu-.js +0 -1
- package/dist/assets/volter-sdk-animation-stage-transport-DWmyow46.js +0 -1
- package/dist/assets/volter-sdk-api-base-jDs2XVgE.js +0 -1
- package/dist/assets/volter-sdk-api-project-open-BAXokZLA.js +0 -1
- package/dist/assets/volter-sdk-api-project-source-D6FB4SmO.js +0 -1
- package/dist/assets/volter-sdk-api-settings-DqgndoPA.js +0 -1
- package/dist/assets/volter-sdk-asset-capabilities-B5mXIYBM.js +0 -1
- package/dist/assets/volter-sdk-asset-document-write-policy-B5aaFAwu.js +0 -1
- package/dist/assets/volter-sdk-asset-editor-context-BjtZQVgF.js +0 -1
- package/dist/assets/volter-sdk-asset-thumbnails-CROlpqPM.js +0 -1
- package/dist/assets/volter-sdk-asset-viewers-BejvElAX.js +0 -1
- package/dist/assets/volter-sdk-asset-workflow-project-content-D8h-TsJc.js +0 -1
- package/dist/assets/volter-sdk-authoring-active-adapter-DhKlZbyW.js +0 -1
- package/dist/assets/volter-sdk-authoring-boundary-authoring-adapter-xlppcGid.js +0 -1
- package/dist/assets/volter-sdk-authoring-composite-authoring-adapter-BfalSuB8.js +0 -1
- package/dist/assets/volter-sdk-authoring-consumer-actions-Hl6xkGAq.js +0 -1
- package/dist/assets/volter-sdk-authoring-design-time-mount-registry-2ZssbtYd.js +0 -1
- package/dist/assets/volter-sdk-authoring-design-time-roots-BNNZdEog.js +0 -1
- package/dist/assets/volter-sdk-authoring-layered-pick-AsUoH85M.js +0 -1
- package/dist/assets/volter-sdk-authoring-no-authoring-adapter-BX6sVPQX.js +0 -1
- package/dist/assets/volter-sdk-authoring-panel-authoring-BRs7fYSJ.js +0 -1
- package/dist/assets/volter-sdk-authoring-react-design-canvas-style-CdjO9_22.js +0 -1
- package/dist/assets/volter-sdk-authoring-seam-evidence-D58d2whR.js +0 -1
- package/dist/assets/volter-sdk-authoring-selection-scope-tqpilIPR.js +0 -1
- package/dist/assets/volter-sdk-authoring-shell-document-ops-ryosWWqt.js +0 -1
- package/dist/assets/volter-sdk-authoring-stage-root-yn7zP1QC.js +0 -1
- package/dist/assets/volter-sdk-authoring-story-board-chrome-fit-DgAAtVo8.js +0 -1
- package/dist/assets/volter-sdk-authoring-viewport-tool-owner-zIgbNhiQ.js +0 -1
- package/dist/assets/volter-sdk-authoring-world-session-state-DriMgIzp.js +0 -1
- package/dist/assets/volter-sdk-bitmap-label-Cwzw278F.js +0 -1
- package/dist/assets/volter-sdk-bytes-codec-CF2kvi68.js +0 -1
- package/dist/assets/volter-sdk-cancellation-reason-BQvS02ja.js +0 -1
- package/dist/assets/volter-sdk-canvas-frames-BkjDC0or.js +0 -1
- package/dist/assets/volter-sdk-capture-size-B3uOMPdw.js +0 -1
- package/dist/assets/volter-sdk-chrome-registry-Be1q89aJ.js +0 -1
- package/dist/assets/volter-sdk-command-result-text-DdPWoVLu.js +0 -1
- package/dist/assets/volter-sdk-commands-DI54EGoY.js +0 -1
- package/dist/assets/volter-sdk-component-board-registry-DtTf1V5m.js +0 -1
- package/dist/assets/volter-sdk-components-InspectorCanvasPreview-DpOxql_B.js +0 -1
- package/dist/assets/volter-sdk-components-SurfaceStateOverlay-BQ9KTVV1.js +0 -1
- package/dist/assets/volter-sdk-components-Toolbar-C6bwDRIc.js +0 -1
- package/dist/assets/volter-sdk-components-TransientHint-D3wtJ4fg.js +0 -1
- package/dist/assets/volter-sdk-components-inspector-preview-section-D1DnmKLE.js +0 -1
- package/dist/assets/volter-sdk-components-use-after-paint-ZgZgfmSR.js +0 -1
- package/dist/assets/volter-sdk-components-workspace-history-IZTWOoYh.js +0 -1
- package/dist/assets/volter-sdk-content-entry-source-registry-DV4a0g9R.js +0 -1
- package/dist/assets/volter-sdk-contribution-surfaces-BAzaKN1S.js +0 -1
- package/dist/assets/volter-sdk-contributions-D2D_badr.js +0 -1
- package/dist/assets/volter-sdk-coverage-design-time-surfaces-WtyoVY81.js +0 -1
- package/dist/assets/volter-sdk-creation-site-registry-DEJua1VB.js +0 -1
- package/dist/assets/volter-sdk-css-numeric-style-D1aEQUuP.js +0 -1
- package/dist/assets/volter-sdk-declared-tools-bEg2ZQju.js +0 -1
- package/dist/assets/volter-sdk-document-open-registry-BUdLp-BZ.js +0 -1
- package/dist/assets/volter-sdk-document-play-extension-BdtD2FcX.js +0 -1
- package/dist/assets/volter-sdk-document-probe-CvSMoXNj.js +0 -1
- package/dist/assets/volter-sdk-document-stage-sessions-BHE1T4gT.js +0 -1
- package/dist/assets/volter-sdk-document-viewports-BJqFXfe4.js +0 -1
- package/dist/assets/volter-sdk-editor-commands-CsYQVabs.js +0 -1
- package/dist/assets/volter-sdk-editor-console-lUTMRzeI.js +0 -1
- package/dist/assets/volter-sdk-editor-document-probe-BHRNXR9L.js +0 -1
- package/dist/assets/volter-sdk-editor-mode-BgYsrjin.js +0 -1
- package/dist/assets/volter-sdk-editor-runtime-CTy0Dw7-.js +0 -1
- package/dist/assets/volter-sdk-editor-server-response-oN9Horql.js +0 -1
- package/dist/assets/volter-sdk-editor-session-attribution-Ddoo0-e6.js +0 -1
- package/dist/assets/volter-sdk-editor-view-DEdcNl3N.js +0 -1
- package/dist/assets/volter-sdk-environment-images-Cbyno2vh.js +0 -1
- package/dist/assets/volter-sdk-extension-script-eemVEaFY.js +0 -1
- package/dist/assets/volter-sdk-eyedropper-session-BL5ceME-.js +0 -1
- package/dist/assets/volter-sdk-files-file-provider-D1vbGyMw.js +0 -1
- package/dist/assets/volter-sdk-files-project-files-CP9k503M.js +0 -1
- package/dist/assets/volter-sdk-framed-document-capture-DmqG4gUx.js +0 -1
- package/dist/assets/volter-sdk-framed-document-driver-B1ZAcb9l.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-component-marks-DjtdLv04.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-kind-icon-Dwlq9_xw.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-row-media-CnFXPw4O.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-row-model-TWxtUUdN.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-rows-3Hl6K3Br.js +0 -1
- package/dist/assets/volter-sdk-hierarchy-walk-DvIomDWH.js +0 -1
- package/dist/assets/volter-sdk-history-history-delegate-RfZBUw9Y.js +0 -1
- package/dist/assets/volter-sdk-history-history-service-BWYajIYW.js +0 -1
- package/dist/assets/volter-sdk-history-persistence-coordinator-CmebAufQ.js +0 -1
- package/dist/assets/volter-sdk-history-resource-registry-CgjY-ErS.js +0 -1
- package/dist/assets/volter-sdk-history-snapshot-store-6Cq4Qau6.js +0 -1
- package/dist/assets/volter-sdk-history-source-history-backend-CilZiNDq.js +0 -1
- package/dist/assets/volter-sdk-hmr-registration-group-idNaexWq.js +0 -1
- package/dist/assets/volter-sdk-hmr-stable-react-context-DhY9rjD6.js +0 -1
- package/dist/assets/volter-sdk-host-BcQCyyIe.js +0 -1
- package/dist/assets/volter-sdk-inference-diagnostics-c4Aju1Jg.js +0 -1
- package/dist/assets/volter-sdk-inspection-document-subject-i64BmR5X.js +0 -1
- package/dist/assets/volter-sdk-inspection-group-icons-CWwhjZWt.js +0 -1
- package/dist/assets/volter-sdk-inspection-model-BgZVa_7l.js +0 -1
- package/dist/assets/volter-sdk-inspection-node-media-DNYb7ZDG.js +0 -1
- package/dist/assets/volter-sdk-inspection-null-subject-hK6kZbB7.js +0 -1
- package/dist/assets/volter-sdk-inspector-property-grouping-B-4_nVMm.js +0 -1
- package/dist/assets/volter-sdk-inspector-section-registry-DIYAa_rQ.js +0 -1
- package/dist/assets/volter-sdk-js-heap-DDws540T.js +0 -1
- package/dist/assets/volter-sdk-layout-arrangements-DdjnA7ET.js +0 -1
- package/dist/assets/volter-sdk-layouts-DcV6NQNu.js +0 -1
- package/dist/assets/volter-sdk-light-explorer-model-BoB1GjBo.js +0 -1
- package/dist/assets/volter-sdk-live-seam-evidence-BOvNn-o8.js +0 -1
- package/dist/assets/volter-sdk-live-session-registry--ftGWuRg.js +0 -1
- package/dist/assets/volter-sdk-mount-css-scope-BTi-3JA9.js +0 -1
- package/dist/assets/volter-sdk-mount-failure-report-BeR90-6n.js +0 -1
- package/dist/assets/volter-sdk-native-selection-style-70aZpb0m.js +0 -1
- package/dist/assets/volter-sdk-photograph-notice-BwuWgyiq.js +0 -1
- package/dist/assets/volter-sdk-play-camera-flight-CaSiTxDt.js +0 -1
- package/dist/assets/volter-sdk-product-command-Cf1utO0M.js +0 -1
- package/dist/assets/volter-sdk-project-module-changes-CIKyvjy2.js +0 -1
- package/dist/assets/volter-sdk-project-module-url-XzZmS9zs.js +0 -1
- package/dist/assets/volter-sdk-project-output-roots-B4bC82T9.js +0 -1
- package/dist/assets/volter-sdk-renderer-resource-counts-S3R39qoy.js +0 -1
- package/dist/assets/volter-sdk-scoped-project-css-Ch7LkU2q.js +0 -1
- package/dist/assets/volter-sdk-selection-C2gFhPip.js +0 -1
- package/dist/assets/volter-sdk-served-url-DxzhEpXR.js +0 -1
- package/dist/assets/volter-sdk-serving-engine-BclAA7ZZ.js +0 -1
- package/dist/assets/volter-sdk-settings-settings-provider-DGc5Xf46.js +0 -1
- package/dist/assets/volter-sdk-settings-store-Bmx-a8f0.js +0 -1
- package/dist/assets/volter-sdk-shell-store-door-CQlHDF_i.js +0 -1
- package/dist/assets/volter-sdk-shell-store-e-X3-CSz.js +0 -1
- package/dist/assets/volter-sdk-source-conflict-DEn0Z5Vq.js +0 -1
- package/dist/assets/volter-sdk-stage-context-CwBngGWz.js +0 -1
- package/dist/assets/volter-sdk-stage-invalidation-Bt1Gs-b2.js +0 -1
- package/dist/assets/volter-sdk-stage-store-registry-DtSMhopZ.js +0 -1
- package/dist/assets/volter-sdk-stories-compose-project-stories-DfgTy2Bp.js +0 -1
- package/dist/assets/volter-sdk-stories-scope-4lTT6I0H.js +0 -1
- package/dist/assets/volter-sdk-stories-story-declared-medium-BFcKINTP.js +0 -1
- package/dist/assets/volter-sdk-stories-story-dom-runtime-wAz1MhyJ.js +0 -1
- package/dist/assets/volter-sdk-stories-story-grouping-bVoaiX0-.js +0 -1
- package/dist/assets/volter-sdk-surface-keyboard-5u3olsPL.js +0 -1
- package/dist/assets/volter-sdk-surface-state-F5vfsPyq.js +0 -1
- package/dist/assets/volter-sdk-tab-census-B95O0nem.js +0 -1
- package/dist/assets/volter-sdk-tool-contribution-convention-k_AVbxWl.js +0 -1
- package/dist/assets/volter-sdk-transform-mode-request-CKhq0gIu.js +0 -1
- package/dist/assets/volter-sdk-transient-hint-DQMQ2_Y5.js +0 -1
- package/dist/assets/volter-sdk-ui-source-file-region-resolver-2Gw755Lw.js +0 -1
- package/dist/assets/volter-sdk-ui-source-tier-source-write-backend-BsEnWjJv.js +0 -1
- package/dist/assets/volter-sdk-viewport-activation-timings--7x_AkVR.js +0 -1
- package/dist/assets/volter-sdk-viewport-editor-controls-CFuNGxo6.js +0 -1
- package/dist/assets/volter-sdk-viewport-presentation-CoiYwzFE.js +0 -1
- package/dist/assets/volter-sdk-volter-contributions-DjgbZdIJ.js +0 -1
- package/dist/assets/volter-sdk-wait-until-DRdtM37d.js +0 -1
- package/dist/assets/volter-sdk-widgets-design-system-CPmOMXke.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-appearance-B4Q93899.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-material-C6dqUruc.js +0 -1
- package/dist/assets/volter-sdk-widgets-icon-set-registry-BOtjeU-M.js +0 -1
- package/dist/assets/volter-sdk-widgets-index-C2FSk2KK.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-ClaWmFsj.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-DIoRDT6D.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-BcsoJNaT.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-p_xfUT04.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-RbGdt95N.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-DxdmydaC.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-DZ0Z3l2P.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-Byy_M7hB.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-C9aPdbrZ.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-BJStispK.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-C_5eRE_F.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-BA3S0eIV.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-DHHUQexs.js +0 -1
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-CjuUPrEv.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-CQggdCbk.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Fields-D38At0E9.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-List-ewRDByTO.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-C8YqnN-5.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-BjFrm6Mc.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-JZq1ce4h.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-Bf61fc1T.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tree-CwuVbaxj.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-Ch2ujeLH.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Button-d2WNMADR.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-DP0WkwNs.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-D1g1A89b.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-DAjALCvl.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-KBDCYHsT.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-D2qUt6_z.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-DLs3kN1L.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Layout-DshSsm_4.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Menu-Ch-3iDys.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-pdAN4aF3.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Panel-BNFSUDwP.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-5Hv-rso1.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Text-CtWC8t_L.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-h0iinIvj.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-Cllx19nM.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-CurGarFa.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-0YxAdd5O.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-ExQE8_SP.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-DGmxyx4E.js +0 -1
- package/dist/assets/volter-sdk-widgets-theme-DOfZnIVM.js +0 -1
- package/dist/assets/volter-sdk-widgets-z-index-BpB2pf-w.js +0 -1
- package/dist/assets/volter-sdk-worker-call-metrics-Cdo-WjAp.js +0 -1
- package/dist/assets/volter-sdk-workspace-document-ids-CWVlaP7n.js +0 -1
- package/dist/assets/volter-sdk-workspace-document-registry-DoKaj8Fe.js +0 -1
- package/dist/assets/volter-sdk-workspace-document-restore-BOPAH61D.js +0 -1
- package/dist/assets/volter-sdk-workspace-static-panels-DZr1Q4n1.js +0 -1
- package/dist/assets/volter-sdk-workspace-status-registry-pIvpW3QR.js +0 -1
- package/dist/assets/volter-sdk-workspace-utility-registry-BRzyLcLs.js +0 -1
- package/dist/assets/volter-sdk-world-canvas-viewport-state-DeMws4Bu.js +0 -1
- package/dist/assets/volter-sdk-world-pan-state-Dpul1S4k.js +0 -1
- package/dist/assets/volter-sdk-write-pipe-vbjHAGKf.js +0 -1
- package/dist/assets/volter-shared-react-dom-client-B6uCXsbq.js +0 -1
- package/dist/assets/volter-shared-three-DSLGcAKx.js +0 -1
- package/dist/assets/worker-DeeaIXW_.js +0 -10
- package/src/contributions.d.ts +0 -9
- package/starter/game/client/index.tsx +0 -52
- package/starter/game/levels/GroundEnvironment.tsx +0 -15
- package/starter/game/levels/GroundLevel.tsx +0 -35
- package/starter/game/levels/ground.canvas.ts +0 -11
- package/starter/game/levels/ground.glb +0 -0
- package/starter/game/levels/ground.py +0 -142
package/dist-node/cli.js
CHANGED
|
@@ -815,7 +815,7 @@ __export(blender_mcp_exports, {
|
|
|
815
815
|
});
|
|
816
816
|
import { randomUUID } from "node:crypto";
|
|
817
817
|
import { mkdirSync as mkdirSync6, readFileSync as readFileSync7, writeFileSync as writeFileSync5 } from "node:fs";
|
|
818
|
-
import { delimiter, dirname as dirname7, isAbsolute as isAbsolute3, relative as relative7, sep as
|
|
818
|
+
import { delimiter, dirname as dirname7, isAbsolute as isAbsolute3, relative as relative7, sep as sep5 } from "node:path";
|
|
819
819
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
820
820
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
821
821
|
import {
|
|
@@ -825,8 +825,9 @@ import {
|
|
|
825
825
|
ListToolsRequestSchema
|
|
826
826
|
} from "@modelcontextprotocol/sdk/types.js";
|
|
827
827
|
import { EditorClient as EditorClient4 } from "@volter/live/client";
|
|
828
|
+
import { sessionFetch as sessionFetch4 } from "@volter/live/registry-format";
|
|
828
829
|
function projectRelative(project, absolute) {
|
|
829
|
-
const rel = relative7(project, absolute).split(
|
|
830
|
+
const rel = relative7(project, absolute).split(sep5).join("/");
|
|
830
831
|
if (rel === "" || rel.startsWith("../")) return null;
|
|
831
832
|
return rel;
|
|
832
833
|
}
|
|
@@ -1026,7 +1027,7 @@ var init_blender_mcp = __esm({
|
|
|
1026
1027
|
const shipped = projectPath !== null && projectOutputRootOf(projectPath) === "public" ? projectPath : null;
|
|
1027
1028
|
const transferId = randomUUID();
|
|
1028
1029
|
await tab.commandHeld("blender-read-file", { path: entry.path, transferId });
|
|
1029
|
-
const spooled = await
|
|
1030
|
+
const spooled = await sessionFetch4(`${await tab.origin()}/__editor/blender-file?id=${transferId}`);
|
|
1030
1031
|
if (!spooled.ok) throw new Error(`Transfer of ${entry.path} failed: ${spooled.status}`);
|
|
1031
1032
|
const bytes = Buffer.from(await spooled.arrayBuffer());
|
|
1032
1033
|
if (shipped === null) {
|
|
@@ -1050,7 +1051,7 @@ var init_blender_mcp = __esm({
|
|
|
1050
1051
|
});
|
|
1051
1052
|
if (typeof listing.document === "string" && listing.document !== "")
|
|
1052
1053
|
query.append("inputs", listing.document);
|
|
1053
|
-
const recorded = await
|
|
1054
|
+
const recorded = await sessionFetch4(`${await tab.origin()}/__editor/blender-output?${query}`, {
|
|
1054
1055
|
method: "POST",
|
|
1055
1056
|
body: new Uint8Array(bytes)
|
|
1056
1057
|
});
|
|
@@ -1132,12 +1133,12 @@ __export(render_movie_exports, {
|
|
|
1132
1133
|
});
|
|
1133
1134
|
import { randomUUID as randomUUID2 } from "node:crypto";
|
|
1134
1135
|
import { copyFileSync, mkdirSync as mkdirSync7, unlinkSync } from "node:fs";
|
|
1135
|
-
import { dirname as dirname8, isAbsolute as isAbsolute4, join as join11, relative as relative8, sep as
|
|
1136
|
+
import { dirname as dirname8, isAbsolute as isAbsolute4, join as join11, relative as relative8, sep as sep6 } from "node:path";
|
|
1136
1137
|
import { connect as connect6 } from "@volter/live";
|
|
1137
1138
|
async function renderProjectMovie(projectRoot, options) {
|
|
1138
1139
|
const within = relative8(projectRoot, options.out);
|
|
1139
1140
|
const inProject = within !== "" && !within.startsWith("..") && !isAbsolute4(within);
|
|
1140
|
-
const written = inProject ? within.split(
|
|
1141
|
+
const written = inProject ? within.split(sep6).join("/") : `.volter/renders/${randomUUID2()}.webm`;
|
|
1141
1142
|
const from = frameOrMarker(options.from);
|
|
1142
1143
|
const to = frameOrMarker(options.to);
|
|
1143
1144
|
if (options.composition !== void 0 && (typeof from === "string" || typeof to === "string"))
|
|
@@ -1216,7 +1217,7 @@ var package_default = {
|
|
|
1216
1217
|
name: "@volter/cyclotron",
|
|
1217
1218
|
publisher: "volter",
|
|
1218
1219
|
author: "Volter AI, Inc.",
|
|
1219
|
-
version: "0.5.
|
|
1220
|
+
version: "0.5.213",
|
|
1220
1221
|
publishConfig: {
|
|
1221
1222
|
access: "public"
|
|
1222
1223
|
},
|
|
@@ -1284,31 +1285,31 @@ var package_default = {
|
|
|
1284
1285
|
adapterRequired: true,
|
|
1285
1286
|
workbench: {
|
|
1286
1287
|
"darwin-arm64": {
|
|
1287
|
-
release: "cyclotron-
|
|
1288
|
-
tarballSha256: "
|
|
1288
|
+
release: "cyclotron-624490512f0c-0ba7394f05b2-darwin-arm64",
|
|
1289
|
+
tarballSha256: "4b752c3abd5595e2e4f7ae4d750b78d2f3c1a0da98140a8ee04c89893689a836"
|
|
1289
1290
|
},
|
|
1290
1291
|
"linux-x64": {
|
|
1291
|
-
release: "cyclotron-
|
|
1292
|
-
tarballSha256: "
|
|
1292
|
+
release: "cyclotron-624490512f0c-0ba7394f05b2-linux-x64",
|
|
1293
|
+
tarballSha256: "6028c6d71df09bbb67ee90b936fc80fdc429d5ef0b1c78db07a6c39d9a4b2e1c"
|
|
1293
1294
|
},
|
|
1294
1295
|
"win32-x64": {
|
|
1295
|
-
release: "cyclotron-
|
|
1296
|
-
tarballSha256: "
|
|
1296
|
+
release: "cyclotron-624490512f0c-0ba7394f05b2-win32-x64",
|
|
1297
|
+
tarballSha256: "57e8fa6dbc439de5fba7da35fa17c710644d465842bd967c8ba7f1e73fcbee2f"
|
|
1297
1298
|
}
|
|
1298
1299
|
}
|
|
1299
1300
|
}
|
|
1300
1301
|
}
|
|
1301
1302
|
},
|
|
1302
1303
|
dependencies: {
|
|
1303
|
-
"@volter/editor-core": "0.5.
|
|
1304
|
-
"@volter/editor-blender": "0.1.
|
|
1305
|
-
"@volter/editor-threejs": "0.5.
|
|
1306
|
-
"@volter/chat": "0.5.
|
|
1307
|
-
"@volter/blender-engine": "0.1.
|
|
1308
|
-
"@volter/project": "0.5.
|
|
1309
|
-
"@volter/sdk": "0.5.
|
|
1310
|
-
"@volter/live": "0.5.
|
|
1311
|
-
"@volter/play": "0.5.
|
|
1304
|
+
"@volter/editor-core": "0.5.213",
|
|
1305
|
+
"@volter/editor-blender": "0.1.152",
|
|
1306
|
+
"@volter/editor-threejs": "0.5.213",
|
|
1307
|
+
"@volter/chat": "0.5.213",
|
|
1308
|
+
"@volter/blender-engine": "0.1.150",
|
|
1309
|
+
"@volter/project": "0.5.213",
|
|
1310
|
+
"@volter/sdk": "0.5.213",
|
|
1311
|
+
"@volter/live": "0.5.213",
|
|
1312
|
+
"@volter/play": "0.5.213",
|
|
1312
1313
|
three: "^0.186.1",
|
|
1313
1314
|
"@modelcontextprotocol/sdk": "1.32.1",
|
|
1314
1315
|
typescript: "5.9.3",
|
|
@@ -15290,6 +15291,9 @@ function run(program, args, cwd, what) {
|
|
|
15290
15291
|
function stdNew(std, folder, name) {
|
|
15291
15292
|
return run(process.execPath, [std, "new", folder, "--name", name], dirname(folder), "std new");
|
|
15292
15293
|
}
|
|
15294
|
+
function stdUpgrade(std, folder) {
|
|
15295
|
+
return run(process.execPath, [std, "upgrade", folder], folder, "std upgrade");
|
|
15296
|
+
}
|
|
15293
15297
|
function gameStd(project, args) {
|
|
15294
15298
|
const std = join2(project, "node_modules", "@volter-ai", "std-dev", "bin", "std.js");
|
|
15295
15299
|
if (!existsSync2(std)) throw new Error(`${project} has no @volter-ai/std-dev installed (node_modules/@volter-ai/std-dev): run \`pnpm install\` there.`);
|
|
@@ -15339,8 +15343,8 @@ var EXAMPLES = {
|
|
|
15339
15343
|
dependencies: { i18next: "~26.7.2" },
|
|
15340
15344
|
/** The goal the game's `play` scripts name in place of the starter's. */
|
|
15341
15345
|
goal: "win",
|
|
15342
|
-
/** std's starter files the example has no use for: its
|
|
15343
|
-
removes: ["levels/
|
|
15346
|
+
/** std's starter files the example has no use for: its main level, its walking characters and its chat. */
|
|
15347
|
+
removes: ["levels/MainLevel.tsx", "client/characters.tsx", "client/chat.tsx"]
|
|
15344
15348
|
}
|
|
15345
15349
|
};
|
|
15346
15350
|
var isExample = (id) => Object.hasOwn(EXAMPLES, id);
|
|
@@ -15606,7 +15610,7 @@ async function startupProject(create, { cwd = process.cwd(), home = homedir() }
|
|
|
15606
15610
|
|
|
15607
15611
|
// node/chat.ts
|
|
15608
15612
|
import { connect } from "@volter/live";
|
|
15609
|
-
import {
|
|
15613
|
+
import { sessionFetch } from "@volter/live/registry-format";
|
|
15610
15614
|
var CHAT_USAGE = "chat status | chat send <prompt> | chat stop";
|
|
15611
15615
|
var SEND_CONFIRM_MS = 8e3;
|
|
15612
15616
|
async function chat(args) {
|
|
@@ -15630,15 +15634,10 @@ async function chat(args) {
|
|
|
15630
15634
|
throw new Error("Chat is waiting on an approval in the editor. Answer it there (or use chat stop), then send.");
|
|
15631
15635
|
}
|
|
15632
15636
|
if (action === "send" && state.busy) {
|
|
15633
|
-
const entry = readLiveRegisteredSessions().find((s) => s.port === session.port);
|
|
15634
15637
|
const origin = `http://127.0.0.1:${session.port}`;
|
|
15635
|
-
const response = await
|
|
15638
|
+
const response = await sessionFetch(`${origin}/__editor/harness-chat/steer`, {
|
|
15636
15639
|
method: "POST",
|
|
15637
|
-
headers: {
|
|
15638
|
-
"Content-Type": "application/json",
|
|
15639
|
-
Origin: origin,
|
|
15640
|
-
...entry?.controlSecret ? { "x-volter-editor-control": entry.controlSecret } : {}
|
|
15641
|
-
},
|
|
15640
|
+
headers: { "Content-Type": "application/json", Origin: origin },
|
|
15642
15641
|
body: JSON.stringify({ text: prompt })
|
|
15643
15642
|
});
|
|
15644
15643
|
const said2 = await response.json().catch(() => null);
|
|
@@ -15693,14 +15692,13 @@ async function chat(args) {
|
|
|
15693
15692
|
|
|
15694
15693
|
// node/play-log.ts
|
|
15695
15694
|
import { connect as connect2 } from "@volter/live";
|
|
15696
|
-
var PLAY_LOG_USAGE = "play-log [--since <simTime>] [--kind <kind>] [--
|
|
15695
|
+
var PLAY_LOG_USAGE = "play-log [--since <simTime>] [--kind <kind>] [--json]";
|
|
15697
15696
|
async function playLog(options) {
|
|
15698
15697
|
const since = options.since === void 0 ? void 0 : Number(options.since);
|
|
15699
15698
|
if (since !== void 0 && !Number.isFinite(since))
|
|
15700
15699
|
throw new Error(`--since takes simulation seconds, a number; it was given ${options.since}.`);
|
|
15701
15700
|
const live = await connect2();
|
|
15702
|
-
const { ok: _ok, ...reading } = await live.editor.contributedVerb("
|
|
15703
|
-
...options.document === void 0 ? {} : { documentId: options.document },
|
|
15701
|
+
const { ok: _ok, ...reading } = await live.editor.contributedVerb("play-log", {
|
|
15704
15702
|
...since === void 0 ? {} : { since },
|
|
15705
15703
|
...options.kind === void 0 ? {} : { kind: options.kind }
|
|
15706
15704
|
});
|
|
@@ -15709,11 +15707,10 @@ async function playLog(options) {
|
|
|
15709
15707
|
return;
|
|
15710
15708
|
}
|
|
15711
15709
|
if (reading.script === null) {
|
|
15712
|
-
console.log(
|
|
15710
|
+
console.log("Nothing has played since the editor page loaded.");
|
|
15713
15711
|
return;
|
|
15714
15712
|
}
|
|
15715
15713
|
const kept = reading.total - reading.dropped;
|
|
15716
|
-
if (reading.documents.length > 1) console.log(`Logs: ${reading.documents.join(", ")}; this is ${reading.documentId}'s (--document picks another).`);
|
|
15717
15714
|
console.log(`Play log of ${reading.script}: ${reading.playing ? "playing" : "stopped"} at ${reading.simT.toFixed(3)}s, tick ${reading.tick}; ${kept} of ${reading.total} entries kept${reading.dropped ? ` (the oldest ${reading.dropped} dropped)` : ""}, ${reading.entries.length} shown.`);
|
|
15718
15715
|
for (const entry of reading.entries)
|
|
15719
15716
|
console.log(`${entry.simT.toFixed(3).padStart(10)}s #${String(entry.tick).padEnd(6)} ${entry.kind}${entry.facts ? ` ${JSON.stringify(entry.facts)}` : ""}`);
|
|
@@ -15726,6 +15723,7 @@ import { join as join5, relative as relative3, resolve as resolve4 } from "node:
|
|
|
15726
15723
|
var ADD_PLAY_USAGE = "add-play [folder] # make this project a volter-ai/std game: std new into it, its models moved to levels/";
|
|
15727
15724
|
var MERGED = ["package.json", ".gitignore", "tsconfig.json"];
|
|
15728
15725
|
var ASIDE = join5(".volter", "add-play");
|
|
15726
|
+
var LEVEL_FINDER = "{ finder: 'stdLevelDocuments', include: ['levels/**/*.tsx', 'levels/**/*.blend'] }";
|
|
15729
15727
|
function projectOf(folder) {
|
|
15730
15728
|
let dir = resolve4(folder);
|
|
15731
15729
|
while (!existsSync5(join5(dir, MANIFEST_FILENAME))) {
|
|
@@ -15799,11 +15797,11 @@ ${missing.join("\n")}
|
|
|
15799
15797
|
const adapterPath = join5(project, "editor", "volter.adapter.ts");
|
|
15800
15798
|
if (existsSync5(adapterPath)) {
|
|
15801
15799
|
const adapter = await readFile3(adapterPath, "utf8");
|
|
15802
|
-
const next = adapter.replace(/include: \['src\/models\/\*\*\/\*\.blend'\]/,
|
|
15803
|
-
if (next.includes(
|
|
15800
|
+
const next = adapter.replace(/include: \['src\/models\/\*\*\/\*\.blend'\] \}/, `include: ['levels/**/*.blend', 'prefabs/**/*.blend'] }, ${LEVEL_FINDER}`).replace(/default: 'model:src\/models\/[^'/]+\.blend', /, "");
|
|
15801
|
+
if (next.includes(LEVEL_FINDER)) {
|
|
15804
15802
|
await writeFile2(adapterPath, next);
|
|
15805
|
-
said2.push("editor/volter.adapter.ts: its documents are levels/**/*.blend
|
|
15806
|
-
} else said2.push(
|
|
15803
|
+
said2.push("editor/volter.adapter.ts: its documents are levels/**/*.blend, prefabs/**/*.blend and each level, and it opens on the main level");
|
|
15804
|
+
} else said2.push(`editor/volter.adapter.ts has a shape this command does not edit: make its modelsFromBlendFiles finder include ['levels/**/*.blend', 'prefabs/**/*.blend'], add ${LEVEL_FINDER}, and drop its default`);
|
|
15807
15805
|
}
|
|
15808
15806
|
const nodeModules = join5(project, "node_modules");
|
|
15809
15807
|
if (existsSync5(nodeModules) && lstatSync(nodeModules).isSymbolicLink()) await unlink(nodeModules);
|
|
@@ -15874,9 +15872,9 @@ function joinNegativeValues(args, options) {
|
|
|
15874
15872
|
|
|
15875
15873
|
// node/play.ts
|
|
15876
15874
|
import { connect as connect4 } from "@volter/live";
|
|
15877
|
-
var PLAY_USAGE = "play [state] | play play|stop|pause|resume|restart | play step [count] | play speed <0.25|0.5|1|2|4> | play mode [game|animation] | play autoplay on [<goal>] | play autoplay off
|
|
15875
|
+
var PLAY_USAGE = "play [state] | play play|stop|pause|resume|restart | play step [count] | play speed <0.25|0.5|1|2|4> | play players [1-8] | play mode [game|animation] | play autoplay on [<goal>] | play autoplay off";
|
|
15878
15876
|
var BARE = /* @__PURE__ */ new Set(["state", "play", "stop", "pause", "resume", "restart"]);
|
|
15879
|
-
async function play(args
|
|
15877
|
+
async function play(args) {
|
|
15880
15878
|
const [verb = "state", value, ...rest] = args;
|
|
15881
15879
|
const usage = () => {
|
|
15882
15880
|
throw new Error(`Usage: ${COMMAND} ${PLAY_USAGE}`);
|
|
@@ -15891,78 +15889,68 @@ async function play(args, document) {
|
|
|
15891
15889
|
} else if (verb === "speed") {
|
|
15892
15890
|
if (value === void 0) usage();
|
|
15893
15891
|
commandArgs = { speed: value };
|
|
15892
|
+
} else if (verb === "players") {
|
|
15893
|
+
if (value !== void 0) commandArgs = { players: value };
|
|
15894
15894
|
} else if (verb === "autoplay") {
|
|
15895
15895
|
if (value !== "on" && value !== "off") usage();
|
|
15896
15896
|
commandArgs = { on: value === "on", ...goal !== void 0 ? { goal } : {} };
|
|
15897
15897
|
} else if (verb === "mode") {
|
|
15898
15898
|
if (value !== void 0) commandArgs = { mode: value };
|
|
15899
15899
|
} else usage();
|
|
15900
|
-
if (document !== void 0) commandArgs = { ...commandArgs, document };
|
|
15901
15900
|
const { editor } = await connect4();
|
|
15902
|
-
|
|
15903
|
-
|
|
15904
|
-
throw new Error(`Play cannot bring ${document} forward to play it: ${error50 instanceof Error ? error50.message : String(error50)}`);
|
|
15905
|
-
});
|
|
15906
|
-
if (opened.documentId !== document) throw new Error(`Play cannot bring ${document} forward to play it: opening it brought ${opened.documentId} forward.`);
|
|
15907
|
-
}
|
|
15908
|
-
const state = (args2) => editor.command("volter.model-play.state", args2);
|
|
15909
|
-
const answer = await onceOnScreen(() => editor.command(`volter.model-play.${verb}`, commandArgs)).catch((error50) => afterLostAnswer(error50, verb, commandArgs, state));
|
|
15901
|
+
const state = () => editor.command("volter.play.state");
|
|
15902
|
+
const answer = await editor.command(`volter.play.${verb}`, commandArgs).catch((error50) => afterLostAnswer(error50, verb, state));
|
|
15910
15903
|
if (verb === "stop") return stopped(answer, state);
|
|
15904
|
+
if (verb === "autoplay" && value === "on") return goalEnded(answer, state);
|
|
15911
15905
|
if (verb !== "play" && verb !== "restart") return answer;
|
|
15912
15906
|
return startedOrRefused(answer, state);
|
|
15913
15907
|
}
|
|
15914
15908
|
function stopped(first, state) {
|
|
15915
15909
|
return untilState(first, state, (current) => current.playing !== true, "Stop asked; waiting for Play to end");
|
|
15916
15910
|
}
|
|
15911
|
+
function goalEnded(first, state) {
|
|
15912
|
+
return untilState(
|
|
15913
|
+
first,
|
|
15914
|
+
state,
|
|
15915
|
+
(current) => !/: playing$/.test(current.autoplay?.state ?? ""),
|
|
15916
|
+
"Autoplay is on; waiting for std to say how the goal ended",
|
|
15917
|
+
`each bot's end is in \`${COMMAND} play-log --kind outcome\` as it comes`
|
|
15918
|
+
);
|
|
15919
|
+
}
|
|
15917
15920
|
var IDEMPOTENT = /* @__PURE__ */ new Set(["state", "play", "stop"]);
|
|
15918
|
-
async function afterLostAnswer(error50, verb,
|
|
15921
|
+
async function afterLostAnswer(error50, verb, state) {
|
|
15919
15922
|
const said2 = error50 instanceof Error ? error50.message : String(error50);
|
|
15920
15923
|
if (!/never reached the editor/.test(said2) || !IDEMPOTENT.has(verb)) throw error50;
|
|
15921
|
-
const read = await state(
|
|
15924
|
+
const read = await state();
|
|
15922
15925
|
if (verb === "play" && read.playing === true || verb === "stop" && read.playing === false || verb === "state") return read;
|
|
15923
15926
|
throw error50;
|
|
15924
15927
|
}
|
|
15925
|
-
var OPENING_LIMIT_MS = 6e5;
|
|
15926
|
-
async function onceOnScreen(ask) {
|
|
15927
|
-
const began = Date.now();
|
|
15928
|
-
for (; ; ) {
|
|
15929
|
-
try {
|
|
15930
|
-
return await ask();
|
|
15931
|
-
} catch (error50) {
|
|
15932
|
-
const said2 = error50 instanceof Error ? error50.message : String(error50);
|
|
15933
|
-
const opening = / is still opening: /.exec(said2);
|
|
15934
|
-
if (opening === null || Date.now() - began > OPENING_LIMIT_MS) throw error50;
|
|
15935
|
-
console.error(`${said2.slice(0, opening.index).replace(/^.*\s(?=\S+$)/, "")} is still opening; waiting for it to be on screen (${Math.round((Date.now() - began) / 1e3)}s).`);
|
|
15936
|
-
}
|
|
15937
|
-
}
|
|
15938
|
-
}
|
|
15939
15928
|
var PROGRESS_EVERY_MS = 1e4;
|
|
15940
15929
|
function startedOrRefused(first, state) {
|
|
15941
|
-
const documentId = first.document;
|
|
15942
15930
|
return untilState(first, state, (current) => {
|
|
15943
15931
|
const failure = current.clock?.failure;
|
|
15944
15932
|
if (typeof failure === "string" && failure !== "")
|
|
15945
15933
|
throw new Error(
|
|
15946
15934
|
`Play did not start: ${failure}
|
|
15947
|
-
The play log has the entry: ${COMMAND} play-log --kind script-error
|
|
15935
|
+
The play log has the entry: ${COMMAND} play-log --kind script-error`
|
|
15948
15936
|
);
|
|
15949
15937
|
if (current.playing === false) throw new Error(`Play switched itself off before a game started; \`${COMMAND} console\` says why.`);
|
|
15950
15938
|
return current.clock?.running === true;
|
|
15951
15939
|
}, "Play is on; waiting for a player's page to join");
|
|
15952
15940
|
}
|
|
15953
|
-
|
|
15941
|
+
var FRAMES_HINT = "The tab draws frames only while it is visible \u2014 is it hidden or minimised?";
|
|
15942
|
+
async function untilState(first, state, done, waiting, hint = FRAMES_HINT) {
|
|
15954
15943
|
let current = first;
|
|
15955
|
-
const args = current.document === void 0 ? {} : { document: current.document };
|
|
15956
15944
|
const began = Date.now();
|
|
15957
15945
|
let saidAt = began;
|
|
15958
15946
|
while (!done(current)) {
|
|
15959
15947
|
const now = Date.now();
|
|
15960
15948
|
if (now - saidAt >= PROGRESS_EVERY_MS) {
|
|
15961
15949
|
saidAt = now;
|
|
15962
|
-
console.error(`${waiting} (${Math.round((now - began) / 1e3)}s).
|
|
15950
|
+
console.error(`${waiting} (${Math.round((now - began) / 1e3)}s). ${hint}`);
|
|
15963
15951
|
}
|
|
15964
15952
|
await new Promise((resolve10) => setTimeout(resolve10, 250));
|
|
15965
|
-
current = await state(
|
|
15953
|
+
current = await state();
|
|
15966
15954
|
}
|
|
15967
15955
|
return current;
|
|
15968
15956
|
}
|
|
@@ -16204,7 +16192,7 @@ var __export2 = (target, all) => {
|
|
|
16204
16192
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
16205
16193
|
};
|
|
16206
16194
|
|
|
16207
|
-
// ../editor-core/dist/server/chunk-
|
|
16195
|
+
// ../editor-core/dist/server/chunk-APPU5D4H.js
|
|
16208
16196
|
import { existsSync as existsSync8, readFileSync as readFileSync3, realpathSync, statSync as statSync2 } from "node:fs";
|
|
16209
16197
|
import { join as join8, sep as sep3 } from "node:path";
|
|
16210
16198
|
import {
|
|
@@ -16219,7 +16207,7 @@ import {
|
|
|
16219
16207
|
} from "@volter/live/product-locator";
|
|
16220
16208
|
import { existsSync as existsSync22 } from "node:fs";
|
|
16221
16209
|
import { join as join22 } from "node:path";
|
|
16222
|
-
import {
|
|
16210
|
+
import { sessionFetch as sessionFetch2 } from "@volter/live/registry-format";
|
|
16223
16211
|
var DEFAULT_RELAY_COMMAND_TIMEOUT_MS = 5e3;
|
|
16224
16212
|
var noDerivedRefresh = (timeoutMs = DEFAULT_RELAY_COMMAND_TIMEOUT_MS) => ({
|
|
16225
16213
|
timeoutMs,
|
|
@@ -30014,7 +30002,8 @@ var DocumentEntrySchema = external_exports2.object({
|
|
|
30014
30002
|
authorable: external_exports2.boolean(),
|
|
30015
30003
|
reach: SceneReachSchema,
|
|
30016
30004
|
source: SceneSourceSchema.optional(),
|
|
30017
|
-
finder: external_exports2.string().min(1).optional()
|
|
30005
|
+
finder: external_exports2.string().min(1).optional(),
|
|
30006
|
+
opensUnwritten: external_exports2.boolean().optional()
|
|
30018
30007
|
}).strict();
|
|
30019
30008
|
var AdapterDocumentTableSchema = external_exports2.object({
|
|
30020
30009
|
entries: external_exports2.array(DocumentEntrySchema).optional(),
|
|
@@ -30153,7 +30142,7 @@ async function waitForOwnEditorServer(opts) {
|
|
|
30153
30142
|
intervalMs = 300,
|
|
30154
30143
|
progressIntervalMs = 2e4,
|
|
30155
30144
|
onProgress,
|
|
30156
|
-
fetchImpl =
|
|
30145
|
+
fetchImpl = sessionFetch2
|
|
30157
30146
|
} = opts;
|
|
30158
30147
|
const startedAt = Date.now();
|
|
30159
30148
|
const deadline = startedAt + timeoutMs;
|
|
@@ -30197,7 +30186,6 @@ function describeEditorBootFailure(outcome, ctx) {
|
|
|
30197
30186
|
}
|
|
30198
30187
|
return `The editor for ${ctx.project} has not answered ${ctx.serverUrl}/ within ${Math.round(ctx.timeoutMs / 1e3)}s, and its process is still running.${occupied} A project's FIRST editor boot is the slow one \u2014 it pays Vite's cold dependency optimization into ${ctx.project}/node_modules/.vite-editor, and later boots reuse it. From ${ctx.project}, re-run \`${npx} edit .\`: the retry starts from whatever that first boot already cached.${logs}`;
|
|
30199
30188
|
}
|
|
30200
|
-
var CONTROLLER_DISCONNECTED_MESSAGE = "The editor tab controlling this command disconnected before reporting a result.";
|
|
30201
30189
|
|
|
30202
30190
|
// ../editor-core/dist/server/chunk-DWXQPOKZ.js
|
|
30203
30191
|
var HOSTED_ATTACHMENT_PATH = "/__editor-hosted";
|
|
@@ -30329,8 +30317,8 @@ import { createRequire as createRequire2 } from "node:module";
|
|
|
30329
30317
|
import { closeSync, existsSync as existsSync9, mkdirSync as mkdirSync3, openSync, readFileSync as readFileSync32, realpathSync as realpathSync2, rmSync as rmSync2 } from "node:fs";
|
|
30330
30318
|
import { join as join32, resolve as resolve22 } from "node:path";
|
|
30331
30319
|
import { resolveProductForProject as resolveProductForProject3 } from "@volter/live/product-locator";
|
|
30332
|
-
import { resolveWorkbenchForProject
|
|
30333
|
-
import { announceEditorLaunch, waitForPendingEditorLaunch } from "@volter/live/registry-format";
|
|
30320
|
+
import { resolveWorkbenchForProject } from "@volter/live/workbench-locator";
|
|
30321
|
+
import { announceEditorLaunch, registeredConnectionToken, sessionFetch as sessionFetch22, waitForPendingEditorLaunch } from "@volter/live/registry-format";
|
|
30334
30322
|
import { createHash as createHash2 } from "node:crypto";
|
|
30335
30323
|
import { mkdirSync, readFileSync as readFileSync4, renameSync, rmdirSync, statSync as statSync3, writeFileSync } from "node:fs";
|
|
30336
30324
|
import { homedir as homedir2 } from "node:os";
|
|
@@ -30341,16 +30329,20 @@ import { realpathSync as realpathSync3 } from "node:fs";
|
|
|
30341
30329
|
import { isAbsolute, relative as relative6, resolve as resolve7 } from "node:path";
|
|
30342
30330
|
import {
|
|
30343
30331
|
pidAlive,
|
|
30344
|
-
readLiveRegisteredSessions
|
|
30345
|
-
servedProjectAnswer
|
|
30332
|
+
readLiveRegisteredSessions,
|
|
30333
|
+
servedProjectAnswer,
|
|
30334
|
+
sessionFetch as sessionFetch3
|
|
30346
30335
|
} from "@volter/live/registry-format";
|
|
30347
30336
|
import { execFileSync as execFileSync22 } from "node:child_process";
|
|
30348
30337
|
import { createServer } from "node:net";
|
|
30349
30338
|
import { execFileSync as execFileSync3 } from "node:child_process";
|
|
30350
30339
|
import { mkdirSync as mkdirSync2, readFileSync as readFileSync22, rmSync, writeFileSync as writeFileSync2 } from "node:fs";
|
|
30351
30340
|
import { join as join23 } from "node:path";
|
|
30341
|
+
import { CONNECTION_TOKEN_COOKIE } from "@volter/live/registry-format";
|
|
30342
|
+
import { projectKey } from "@volter/live/workbench-locator";
|
|
30352
30343
|
import { connect as connect5, NO_SESSION_FOR_PROJECT, SESSION_MANIFEST_UNREADABLE, unconnectedBindings, withEditorMemberHints } from "@volter/live";
|
|
30353
30344
|
import { EditorClient as EditorClient2 } from "@volter/live/client";
|
|
30345
|
+
import { installedPackageDir as installedPackageDir2 } from "@volter/live/installed-package";
|
|
30354
30346
|
import { createHash as createHash32 } from "node:crypto";
|
|
30355
30347
|
import { mkdirSync as mkdirSync4, readFileSync as readFileSync5, writeFileSync as writeFileSync3, rmSync as rmSync3, existsSync as existsSync32 } from "node:fs";
|
|
30356
30348
|
import { homedir as homedir3 } from "node:os";
|
|
@@ -30366,6 +30358,7 @@ import { basename, dirname as dirname32, join as join62, resolve as resolve52 }
|
|
|
30366
30358
|
import { setTimeout as delay } from "node:timers/promises";
|
|
30367
30359
|
import { resolveSession } from "@volter/live";
|
|
30368
30360
|
import { EditorClient as EditorClient3 } from "@volter/live/client";
|
|
30361
|
+
import { sessionFetch as sessionFetch32 } from "@volter/live/registry-format";
|
|
30369
30362
|
import { isAbsolute as isAbsolute2, join as join52, relative as relative22, resolve as resolve42 } from "node:path";
|
|
30370
30363
|
function hash3(value) {
|
|
30371
30364
|
return createHash3("sha256").update(value).digest("hex").slice(0, 24);
|
|
@@ -30588,11 +30581,11 @@ function resolveFramePorts(projectRoot, session, registryFile) {
|
|
|
30588
30581
|
};
|
|
30589
30582
|
}
|
|
30590
30583
|
function liveSessions() {
|
|
30591
|
-
return
|
|
30584
|
+
return readLiveRegisteredSessions();
|
|
30592
30585
|
}
|
|
30593
30586
|
async function fetchEditorSession(port) {
|
|
30594
30587
|
try {
|
|
30595
|
-
const res = await
|
|
30588
|
+
const res = await sessionFetch3(`http://127.0.0.1:${port}/__editor/project`, {
|
|
30596
30589
|
signal: AbortSignal.timeout(5e3)
|
|
30597
30590
|
});
|
|
30598
30591
|
if (!res.ok) return void 0;
|
|
@@ -30622,7 +30615,7 @@ async function fetchEditorSession(port) {
|
|
|
30622
30615
|
}
|
|
30623
30616
|
async function fetchSessionWorkbench(serverUrl) {
|
|
30624
30617
|
try {
|
|
30625
|
-
const res = await
|
|
30618
|
+
const res = await sessionFetch3(`${serverUrl}/__editor/state`, {
|
|
30626
30619
|
signal: AbortSignal.timeout(3e3)
|
|
30627
30620
|
});
|
|
30628
30621
|
if (!res.ok) return null;
|
|
@@ -30657,7 +30650,7 @@ async function waitForSessionWorkbench(serverUrl) {
|
|
|
30657
30650
|
}
|
|
30658
30651
|
async function fetchEditorState(serverUrl) {
|
|
30659
30652
|
try {
|
|
30660
|
-
const res = await
|
|
30653
|
+
const res = await sessionFetch3(`${serverUrl}/__editor/state`, {
|
|
30661
30654
|
signal: AbortSignal.timeout(3e3)
|
|
30662
30655
|
});
|
|
30663
30656
|
if (!res.ok) return EMPTY_EDITOR_STATE;
|
|
@@ -30671,7 +30664,8 @@ async function fetchEditorState(serverUrl) {
|
|
|
30671
30664
|
commandListener: typeof tab["commandListener"] === "string" ? tab["commandListener"] : null,
|
|
30672
30665
|
unresponsive: tab["unresponsive"] === true,
|
|
30673
30666
|
route: typeof tab["route"] === "string" ? tab["route"] : null,
|
|
30674
|
-
state: typeof tab["state"] === "string" ? tab["state"] : null
|
|
30667
|
+
state: typeof tab["state"] === "string" ? tab["state"] : null,
|
|
30668
|
+
recovery: parseRecovery(tab["recovery"])
|
|
30675
30669
|
};
|
|
30676
30670
|
})
|
|
30677
30671
|
};
|
|
@@ -30679,20 +30673,30 @@ async function fetchEditorState(serverUrl) {
|
|
|
30679
30673
|
return EMPTY_EDITOR_STATE;
|
|
30680
30674
|
}
|
|
30681
30675
|
}
|
|
30676
|
+
function parseRecovery(raw) {
|
|
30677
|
+
if (raw === null || typeof raw !== "object") return null;
|
|
30678
|
+
const record3 = raw;
|
|
30679
|
+
return typeof record3["state"] === "string" && typeof record3["because"] === "string" ? { state: record3["state"], because: record3["because"] } : null;
|
|
30680
|
+
}
|
|
30682
30681
|
var EMPTY_EDITOR_STATE = {
|
|
30683
30682
|
editorsConnected: 0,
|
|
30684
30683
|
lastIndexRequestAt: null,
|
|
30685
30684
|
tabs: []
|
|
30686
30685
|
};
|
|
30687
30686
|
function commandReadyTabs(snapshot) {
|
|
30688
|
-
return snapshot.tabs.filter((tab) => tab.commandListener === "ready").length;
|
|
30687
|
+
return snapshot.tabs.filter((tab) => tab.commandListener === "ready" && tab.recovery?.state !== "reloading").length;
|
|
30689
30688
|
}
|
|
30690
30689
|
function unresponsiveTab(snapshot) {
|
|
30691
|
-
return snapshot.tabs.find(
|
|
30690
|
+
return snapshot.tabs.find(
|
|
30691
|
+
(tab) => tab.unresponsive && tab.recovery?.state !== "reloading" || tab.recovery?.state === "unanswered" && tab.commandListener !== "ready"
|
|
30692
|
+
) ?? null;
|
|
30693
|
+
}
|
|
30694
|
+
function unansweredRecovery(snapshot) {
|
|
30695
|
+
return snapshot.tabs.find((tab) => tab.recovery?.state === "unanswered" && tab.commandListener !== "ready")?.recovery?.because ?? null;
|
|
30692
30696
|
}
|
|
30693
30697
|
async function requestEditorTabEnsure(serverUrl, open) {
|
|
30694
30698
|
try {
|
|
30695
|
-
const res = await
|
|
30699
|
+
const res = await sessionFetch3(`${serverUrl}/__editor/tab/ensure`, {
|
|
30696
30700
|
method: "POST",
|
|
30697
30701
|
headers: { "Content-Type": "application/json" },
|
|
30698
30702
|
body: JSON.stringify({ open }),
|
|
@@ -30728,6 +30732,7 @@ async function waitForVerifiedEditorOpen(serverUrl, opts) {
|
|
|
30728
30732
|
let browserArrived = false;
|
|
30729
30733
|
let toldSlow = false;
|
|
30730
30734
|
let lastProgressAt = openAttemptAt;
|
|
30735
|
+
let recoveryCounted = false;
|
|
30731
30736
|
for (; ; ) {
|
|
30732
30737
|
const snapshot = await fetchEditorState(serverUrl);
|
|
30733
30738
|
const ready = commandReadyTabs(snapshot);
|
|
@@ -30739,6 +30744,10 @@ async function waitForVerifiedEditorOpen(serverUrl, opts) {
|
|
|
30739
30744
|
browserArrived = true;
|
|
30740
30745
|
}
|
|
30741
30746
|
const now = Date.now();
|
|
30747
|
+
if (!recoveryCounted && snapshot.tabs.some((tab) => tab.recovery !== null && tab.recovery.state !== "unanswered")) {
|
|
30748
|
+
recoveryCounted = true;
|
|
30749
|
+
totalDeadline = Math.max(totalDeadline, now + totalTimeoutMs - initialTimeoutMs);
|
|
30750
|
+
}
|
|
30742
30751
|
if (unresponsiveTab(snapshot) !== null) return { status: "stuck" };
|
|
30743
30752
|
if (!browserArrived && now >= initialDeadline && !toldSlow && now < arrivalDeadline) {
|
|
30744
30753
|
toldSlow = true;
|
|
@@ -30988,6 +30997,12 @@ async function reapRecordedWorkbenchServer(projectRoot, port) {
|
|
|
30988
30997
|
rmSync(recordPath(projectRoot), { force: true });
|
|
30989
30998
|
return true;
|
|
30990
30999
|
}
|
|
31000
|
+
var CONNECTION_TOKEN_QUERY = "tkn";
|
|
31001
|
+
function withConnectionToken(pageUrl, token) {
|
|
31002
|
+
const url3 = new URL(pageUrl);
|
|
31003
|
+
url3.searchParams.set(CONNECTION_TOKEN_QUERY, token);
|
|
31004
|
+
return url3.toString();
|
|
31005
|
+
}
|
|
30991
31006
|
var VIEW_BUILD_USAGE = "view build [folder] --out <dir> --workbench <vscode-web dir>";
|
|
30992
31007
|
async function viewBuild(...args) {
|
|
30993
31008
|
const specifier = new URL("./view-build.js", import.meta.resolve("@volter/editor-core/launcher")).href;
|
|
@@ -31015,11 +31030,7 @@ async function launch(folder, launching, options = {}) {
|
|
|
31015
31030
|
const serverUrl2 = `http://127.0.0.1:${verdict.session.port}`;
|
|
31016
31031
|
const running = await waitForSessionWorkbench(serverUrl2);
|
|
31017
31032
|
if (running.product !== launching.id) throw new Error(`This project is open in ${running.product}; close that session before opening ${launching.displayName}.`);
|
|
31018
|
-
const
|
|
31019
|
-
const pageUrl = state.workbenchUrl;
|
|
31020
|
-
if (typeof pageUrl !== "string" || !pageUrl) {
|
|
31021
|
-
throw new Error("The running editor did not report its workbench URL. Its server log names the page to open.");
|
|
31022
|
-
}
|
|
31033
|
+
const pageUrl = await sessionPageUrl(serverUrl2, launching.command);
|
|
31023
31034
|
console.log(pageUrl);
|
|
31024
31035
|
await refuseIncompatibleProject(serverUrl2, launching.command, !!options.noOpen);
|
|
31025
31036
|
await ensureTab(serverUrl2, !!options.noOpen, pageUrl, launching.displayName);
|
|
@@ -31067,7 +31078,7 @@ async function launch(folder, launching, options = {}) {
|
|
|
31067
31078
|
});
|
|
31068
31079
|
if (outcome.status !== "ready") throw new Error(describeEditorBootFailure(outcome, { serverUrl, project, port, timeoutMs: DEFAULT_EDITOR_BOOT_TIMEOUT_MS, logPath, command: launching.command }));
|
|
31069
31080
|
await waitForSessionWorkbench(serverUrl);
|
|
31070
|
-
const pageUrl =
|
|
31081
|
+
const pageUrl = await sessionPageUrl(serverUrl, launching.command);
|
|
31071
31082
|
console.log(`${launching.displayName}: ${pageUrl}`);
|
|
31072
31083
|
console.log(`Logs: ${logPath}`);
|
|
31073
31084
|
await refuseIncompatibleProject(serverUrl, launching.command, !!options.noOpen);
|
|
@@ -31076,6 +31087,20 @@ async function launch(folder, launching, options = {}) {
|
|
|
31076
31087
|
clearLaunch();
|
|
31077
31088
|
}
|
|
31078
31089
|
}
|
|
31090
|
+
async function sessionPageUrl(serverUrl, command) {
|
|
31091
|
+
const token = registeredConnectionToken(Number(new URL(serverUrl).port));
|
|
31092
|
+
if (token === null) {
|
|
31093
|
+
throw new Error(
|
|
31094
|
+
`The session at ${serverUrl} has no connection token in the session registry, so nothing can reach it. Run \`${command} close\` and \`${command} edit\` again.`
|
|
31095
|
+
);
|
|
31096
|
+
}
|
|
31097
|
+
const state = await sessionFetch22(`${serverUrl}/__editor/state`, { signal: AbortSignal.timeout(5e3) }).then((r) => r.json());
|
|
31098
|
+
const pageUrl = state.workbenchUrl;
|
|
31099
|
+
if (typeof pageUrl !== "string" || !pageUrl) {
|
|
31100
|
+
throw new Error("The running editor did not report its workbench URL. Its server log names the page to open.");
|
|
31101
|
+
}
|
|
31102
|
+
return withConnectionToken(pageUrl, token);
|
|
31103
|
+
}
|
|
31079
31104
|
async function startSession(entry, project, logPath, env) {
|
|
31080
31105
|
if (process.platform !== "win32") {
|
|
31081
31106
|
const log = openSync(logPath, "a", 384);
|
|
@@ -31153,7 +31178,7 @@ async function prepareSession(folder, launching) {
|
|
|
31153
31178
|
async function refuseIncompatibleProject(serverUrl, command, noOpen) {
|
|
31154
31179
|
const read = async () => {
|
|
31155
31180
|
try {
|
|
31156
|
-
const response = await
|
|
31181
|
+
const response = await sessionFetch22(`${serverUrl}/__editor/state`, { signal: AbortSignal.timeout(5e3) });
|
|
31157
31182
|
if (!response.ok) return null;
|
|
31158
31183
|
const refusal2 = (await response.json()).projectCompatibility;
|
|
31159
31184
|
return refusal2 && typeof refusal2.error === "string" ? refusal2 : null;
|
|
@@ -31226,6 +31251,8 @@ ${refused.map((message) => ` ${message}`).join("\n")}`);
|
|
|
31226
31251
|
throw new Error(`Editor page did not start:
|
|
31227
31252
|
${outcome.refused.map((message) => ` ${message}`).join("\n")}`);
|
|
31228
31253
|
if (outcome.status !== "connected") {
|
|
31254
|
+
const unanswered = outcome.status === "stuck" ? unansweredRecovery(await fetchEditorState(serverUrl)) : null;
|
|
31255
|
+
if (unanswered !== null) throw new Error(`Editor page arrived but did not become ready: ${unanswered}.`);
|
|
31229
31256
|
const said2 = outcome.status === "never-arrived" ? [] : await currentPageErrors(serverUrl);
|
|
31230
31257
|
const safariAtEnd = outcome.status === "never-arrived" ? safari : "";
|
|
31231
31258
|
throw new Error(
|
|
@@ -31239,7 +31266,7 @@ async function startupRefusals(serverUrl, since = 0) {
|
|
|
31239
31266
|
if (state.tabs.length === 0 || state.tabs.some((tab) => tab.commandListener === "ready")) return [];
|
|
31240
31267
|
if (!state.tabs.every((tab) => tab.route === "no-project")) return [];
|
|
31241
31268
|
try {
|
|
31242
|
-
const response = await
|
|
31269
|
+
const response = await sessionFetch22(new URL("/__editor/console?all=1", serverUrl), { signal: AbortSignal.timeout(3e3) });
|
|
31243
31270
|
if (!response.ok) return [];
|
|
31244
31271
|
const body = await response.json();
|
|
31245
31272
|
const newest = body.entries.filter((entry) => entry.severity === "error" && entry.message.startsWith("Startup failed") && entry.lastAt >= since).sort((a, b) => b.lastAt - a.lastAt)[0];
|
|
@@ -31250,7 +31277,7 @@ async function startupRefusals(serverUrl, since = 0) {
|
|
|
31250
31277
|
}
|
|
31251
31278
|
async function currentPageErrors(serverUrl) {
|
|
31252
31279
|
try {
|
|
31253
|
-
const response = await
|
|
31280
|
+
const response = await sessionFetch22(new URL("/__editor/console?all=1", serverUrl), { signal: AbortSignal.timeout(3e3) });
|
|
31254
31281
|
if (!response.ok) return [];
|
|
31255
31282
|
const body = await response.json();
|
|
31256
31283
|
if (!body.currentLoadId) return [];
|
|
@@ -31322,6 +31349,8 @@ var COMMON_TASKS = [
|
|
|
31322
31349
|
["Capture to a file", "const shot = await editor.captureEditorChrome({ region: 'play' }); (await import('node:fs')).writeFileSync('shot.png', Buffer.from(shot.base64, 'base64'))"],
|
|
31323
31350
|
["", "region 'document': the document as the person sees it, overlays included; 'play': the live Play frame and its UI"],
|
|
31324
31351
|
["Open a document", "return await editor.open('<document id>')"],
|
|
31352
|
+
["Find an asset to start from", "return await editor.assetLibrary.search({ source: 'local', type: 'model', q: '<words>' })"],
|
|
31353
|
+
["", "then editor.assetLibrary.files({ source, id }) and editor.assetLibrary.download({ source, id, name, url, format })"],
|
|
31325
31354
|
["Hold a key in Play", "return await editor.document.key('w', { code: 'KeyW', holdMs: 1500 })"],
|
|
31326
31355
|
["Read the running document's state", "return await editor.document.query('[aria-label]', { limit: 20 })"],
|
|
31327
31356
|
["", "the running document's DOM, its HUD included: show the state you need to read there (text or data-* attributes)"]
|
|
@@ -31343,14 +31372,16 @@ function formatSurface(command, bindings) {
|
|
|
31343
31372
|
for (const [task, code] of COMMON_TASKS) lines.push(` ${task.padEnd(width)}${task === "" ? " " : ""}${code}`);
|
|
31344
31373
|
return lines.join("\n");
|
|
31345
31374
|
}
|
|
31375
|
+
var CONTROLLER_DISCONNECTED_MESSAGE = "The editor tab controlling this command disconnected before reporting a result.";
|
|
31346
31376
|
var OPENER_STDERR_CAP_BYTES = 2048;
|
|
31347
31377
|
var OPENER_EXIT_WATCH_TIMEOUT_MS = 2e4;
|
|
31378
|
+
var redact = (text2) => text2.replace(/(https?:\/\/[^\s?#'"]*)[?#][^\s'"]*/g, "$1");
|
|
31348
31379
|
function spawnOpener(cmd, cmdArgs, fallback) {
|
|
31349
31380
|
let child;
|
|
31350
31381
|
try {
|
|
31351
31382
|
child = spawn22(cmd, cmdArgs, { windowsHide: true, stdio: ["ignore", "ignore", "pipe"], detached: true });
|
|
31352
31383
|
} catch (err) {
|
|
31353
|
-
console.error(`volter: auto-open via ${cmd} failed: ${err.message}`);
|
|
31384
|
+
console.error(redact(`volter: auto-open via ${cmd} failed: ${err.message}`));
|
|
31354
31385
|
fallback?.();
|
|
31355
31386
|
return;
|
|
31356
31387
|
}
|
|
@@ -31364,13 +31395,13 @@ function spawnOpener(cmd, cmdArgs, fallback) {
|
|
|
31364
31395
|
stderrBytes += slice.length;
|
|
31365
31396
|
});
|
|
31366
31397
|
child.on("error", (err) => {
|
|
31367
|
-
console.error(`volter: auto-open via ${cmd} failed to launch: ${err.message}`);
|
|
31398
|
+
console.error(redact(`volter: auto-open via ${cmd} failed to launch: ${err.message}`));
|
|
31368
31399
|
fallback?.();
|
|
31369
31400
|
});
|
|
31370
31401
|
child.on("exit", (code) => {
|
|
31371
31402
|
if (code !== null && code !== 0) {
|
|
31372
31403
|
const stderr = Buffer.concat(stderrChunks).toString("utf8").trim();
|
|
31373
|
-
console.error(`volter: auto-open via ${cmd} exited ${code}: ${stderr}`);
|
|
31404
|
+
console.error(redact(`volter: auto-open via ${cmd} exited ${code}: ${stderr}`));
|
|
31374
31405
|
fallback?.();
|
|
31375
31406
|
}
|
|
31376
31407
|
});
|
|
@@ -31413,6 +31444,11 @@ function macHttpsHandler(home) {
|
|
|
31413
31444
|
return void 0;
|
|
31414
31445
|
}
|
|
31415
31446
|
}
|
|
31447
|
+
var POWERSHELL_SINGLE_QUOTES = /['\u2018-\u201b]/g;
|
|
31448
|
+
function powershellStart(url3) {
|
|
31449
|
+
const command = `Start-Process '${url3.replace(POWERSHELL_SINGLE_QUOTES, (quote) => quote + quote)}'`;
|
|
31450
|
+
return ["-NoProfile", "-NonInteractive", "-ExecutionPolicy", "Bypass", "-EncodedCommand", Buffer.from(command, "utf16le").toString("base64")];
|
|
31451
|
+
}
|
|
31416
31452
|
function openBrowserUrl(browserUrl, options) {
|
|
31417
31453
|
if (process.platform === "darwin") {
|
|
31418
31454
|
const background = options?.background === true ? ["-g"] : [];
|
|
@@ -31420,20 +31456,17 @@ function openBrowserUrl(browserUrl, options) {
|
|
|
31420
31456
|
if (app) spawnOpener("open", [...background, "-a", app, browserUrl], () => spawnOpener("open", [...background, browserUrl]));
|
|
31421
31457
|
else spawnOpener("open", [...background, browserUrl]);
|
|
31422
31458
|
} else if (process.platform === "win32") {
|
|
31423
|
-
spawnOpener("
|
|
31459
|
+
spawnOpener("powershell.exe", powershellStart(browserUrl));
|
|
31424
31460
|
} else if (isWSL()) {
|
|
31425
31461
|
const interop = process.env["WSL_INTEROP"];
|
|
31426
31462
|
if (interop && !existsSync23(interop)) {
|
|
31463
|
+
const page = new URL(browserUrl);
|
|
31427
31464
|
console.error(
|
|
31428
|
-
`[volter-editor] cannot open a browser from this shell \u2014 the WSL interop socket (${interop}) is gone, so Windows executables cannot launch. Open ${
|
|
31465
|
+
`[volter-editor] cannot open a browser from this shell \u2014 the WSL interop socket (${interop}) is gone, so Windows executables cannot launch. Open ${page.origin}${page.pathname} (the full address its command printed) from any regular terminal or browser instead.`
|
|
31429
31466
|
);
|
|
31430
31467
|
return;
|
|
31431
31468
|
}
|
|
31432
|
-
spawnOpener(
|
|
31433
|
-
"explorer.exe",
|
|
31434
|
-
[browserUrl],
|
|
31435
|
-
() => spawnOpener("powershell.exe", ["-NoProfile", "-Command", `Start-Process '${browserUrl}'`])
|
|
31436
|
-
);
|
|
31469
|
+
spawnOpener("explorer.exe", [browserUrl], () => spawnOpener("powershell.exe", powershellStart(browserUrl)));
|
|
31437
31470
|
} else {
|
|
31438
31471
|
spawnOpener("xdg-open", [browserUrl]);
|
|
31439
31472
|
}
|
|
@@ -31737,7 +31770,7 @@ ${said2.map((message) => ` ${message}`).join("\n")}` : `; \`${command} console\
|
|
|
31737
31770
|
var NO_PAGE_DEAD_END_MS = 1e4;
|
|
31738
31771
|
async function currentLoadId(url3) {
|
|
31739
31772
|
try {
|
|
31740
|
-
const response = await
|
|
31773
|
+
const response = await sessionFetch32(new URL("/__editor/console?all=1", url3), { signal: AbortSignal.timeout(3e3) });
|
|
31741
31774
|
if (!response.ok) return null;
|
|
31742
31775
|
const body = await response.json();
|
|
31743
31776
|
return body.currentLoadId;
|
|
@@ -31885,9 +31918,9 @@ function jsonLayout(raw) {
|
|
|
31885
31918
|
// node/project-upgrade.ts
|
|
31886
31919
|
import { existsSync as existsSync10, lstatSync as lstatSync2, statSync as statSync4 } from "node:fs";
|
|
31887
31920
|
import { readFile as readFile4, rename as rename2, rm as rm3, writeFile as writeFile3 } from "node:fs/promises";
|
|
31888
|
-
import { dirname as dirname6, join as join10, resolve as resolve8 } from "node:path";
|
|
31921
|
+
import { dirname as dirname6, join as join10, resolve as resolve8, sep as sep4 } from "node:path";
|
|
31889
31922
|
import { EDITOR_SESSION_DISCOVERY_TIMEOUT_MS, HttpSessionDiscovery } from "@volter/live/discovery";
|
|
31890
|
-
import { readLiveRegisteredSessions as
|
|
31923
|
+
import { readLiveRegisteredSessions as readLiveRegisteredSessions2 } from "@volter/live/registry-format";
|
|
31891
31924
|
|
|
31892
31925
|
// ../project/src/semver.ts
|
|
31893
31926
|
var EXACT_SEMVER = /^(\d+)\.(\d+)\.(\d+)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;
|
|
@@ -31905,7 +31938,7 @@ function compareSemver(a, b) {
|
|
|
31905
31938
|
}
|
|
31906
31939
|
|
|
31907
31940
|
// node/project-upgrade.ts
|
|
31908
|
-
var UPGRADE_USAGE = "upgrade [version] # move this project's @volter packages and its engine pin to one release (default: latest)";
|
|
31941
|
+
var UPGRADE_USAGE = "upgrade [version] # move this project's @volter packages and its engine pin to one release (default: latest), and a std game's std to the pinned one";
|
|
31909
31942
|
function declaredVersion(spec) {
|
|
31910
31943
|
const bare = spec?.replace(/^[\^~=v]+/, "");
|
|
31911
31944
|
return bare !== void 0 && EXACT_VERSION.test(bare) ? bare : null;
|
|
@@ -31987,9 +32020,9 @@ function npmView(spec) {
|
|
|
31987
32020
|
});
|
|
31988
32021
|
});
|
|
31989
32022
|
}
|
|
31990
|
-
async function readRelease(product, requested) {
|
|
32023
|
+
async function readRelease(product, requested, own) {
|
|
31991
32024
|
const running = JSON.parse(await readFile4(join10(product.dir, "package.json"), "utf8"));
|
|
31992
|
-
if (requested === running.version) return { version: running.version, dependencies: running.dependencies ?? {} };
|
|
32025
|
+
if (own || requested === running.version) return { version: running.version, dependencies: running.dependencies ?? {} };
|
|
31993
32026
|
const spec = `${product.packageName}@${requested ?? "latest"}`;
|
|
31994
32027
|
try {
|
|
31995
32028
|
return await npmView(spec);
|
|
@@ -32010,7 +32043,7 @@ async function editorOpenOn(project) {
|
|
|
32010
32043
|
return false;
|
|
32011
32044
|
}
|
|
32012
32045
|
};
|
|
32013
|
-
const registered =
|
|
32046
|
+
const registered = readLiveRegisteredSessions2();
|
|
32014
32047
|
if (registered.length === 0) return false;
|
|
32015
32048
|
if (registered.some((session) => isHere(session.project))) return true;
|
|
32016
32049
|
const answered = await new HttpSessionDiscovery().listSessions(EDITOR_SESSION_DISCOVERY_TIMEOUT_MS);
|
|
@@ -32033,7 +32066,15 @@ async function upgradeProject(product, requested) {
|
|
|
32033
32066
|
}
|
|
32034
32067
|
const packagePath = join10(project, "package.json");
|
|
32035
32068
|
if (!existsSync10(packagePath)) throw new Error(`${project} has no package.json to upgrade.`);
|
|
32036
|
-
const
|
|
32069
|
+
const packageRaw = await readFile4(packagePath, "utf8");
|
|
32070
|
+
const pkg = JSON.parse(packageRaw);
|
|
32071
|
+
const declaredProduct = pkg.dependencies?.[product.packageName] ?? pkg.devDependencies?.[product.packageName];
|
|
32072
|
+
const onCheckout = declaredProduct?.startsWith("link:") === true;
|
|
32073
|
+
const running = checkoutRoot();
|
|
32074
|
+
const linkedTo = onCheckout ? resolve8(project, declaredProduct.slice("link:".length)) : null;
|
|
32075
|
+
if (linkedTo !== null && (requested !== void 0 || running === null || !linkedTo.startsWith(`${running}${sep4}`)))
|
|
32076
|
+
throw new Error(`${project} is on the packages of a ${product.packageName} checkout (${declaredProduct}), which move with that checkout: run ${projectLine(product.command, "upgrade")} there, with no version, so the checkout's own ${product.command} runs it.`);
|
|
32077
|
+
const release = await readRelease(product, requested, onCheckout);
|
|
32037
32078
|
const engine = release.dependencies["@volter/editor-core"];
|
|
32038
32079
|
const kit = release.dependencies["@volter/project"];
|
|
32039
32080
|
if (!engine || !kit)
|
|
@@ -32041,8 +32082,6 @@ async function upgradeProject(product, requested) {
|
|
|
32041
32082
|
const changed = [];
|
|
32042
32083
|
const kept = [];
|
|
32043
32084
|
const warnings = [];
|
|
32044
|
-
const packageRaw = await readFile4(packagePath, "utf8");
|
|
32045
|
-
const pkg = JSON.parse(packageRaw);
|
|
32046
32085
|
const previousKit = pkg.devDependencies?.["@volter/project"] ?? pkg.dependencies?.["@volter/project"];
|
|
32047
32086
|
const currentProduct = declaredVersion(pkg.dependencies?.[product.packageName] ?? pkg.devDependencies?.[product.packageName]);
|
|
32048
32087
|
for (const section of ["peerDependencies", "optionalDependencies"]) {
|
|
@@ -32054,12 +32093,13 @@ async function upgradeProject(product, requested) {
|
|
|
32054
32093
|
const members = Array.isArray(pkg.workspaces) ? pkg.workspaces : Array.isArray(pkg.workspaces.packages) ? pkg.workspaces.packages : [];
|
|
32055
32094
|
kept.push(`workspace members${members.length > 0 ? ` (${members.map(String).join(", ")})` : ""} are not upgraded: run ${projectLine(product.command, "upgrade")} in each member that is a project`);
|
|
32056
32095
|
}
|
|
32096
|
+
if (onCheckout) kept.push(`package.json keeps its link: rows: they are the checkout's own packages, at ${product.packageName}@${release.version}`);
|
|
32057
32097
|
let packagesChanged = false;
|
|
32058
32098
|
for (const section of ["dependencies", "devDependencies"]) {
|
|
32059
32099
|
const declared = pkg[section];
|
|
32060
32100
|
if (!declared) continue;
|
|
32061
32101
|
for (const [name, current] of Object.entries(declared)) {
|
|
32062
|
-
if (!name.startsWith("@volter/")) continue;
|
|
32102
|
+
if (!name.startsWith("@volter/") || current.startsWith("link:")) continue;
|
|
32063
32103
|
const target = name === product.packageName ? release.version : release.dependencies[name] ?? (current === previousKit || kitVersion(current) !== null && kitVersion(current) === kitVersion(previousKit) ? kit : void 0);
|
|
32064
32104
|
if (target === void 0) {
|
|
32065
32105
|
kept.push(`package.json keeps ${name}@${current}: ${product.packageName}@${release.version} does not name it`);
|
|
@@ -32077,7 +32117,9 @@ async function upgradeProject(product, requested) {
|
|
|
32077
32117
|
const pinned = manifest.engine?.["version"];
|
|
32078
32118
|
const pinChanged = pinned !== engine;
|
|
32079
32119
|
const backwards = currentProduct !== null ? compareSemver(release.version, currentProduct) === -1 ? `${product.packageName}@${currentProduct}` : null : typeof pinned === "string" && compareSemver(engine, pinned) === -1 ? `engine ${pinned}` : null;
|
|
32080
|
-
if (backwards !== null)
|
|
32120
|
+
if (backwards !== null && onCheckout)
|
|
32121
|
+
warnings.push(`This moves the engine pin BACKWARDS, from ${backwards} to the checkout's own engine ${engine}, the one its links run.`);
|
|
32122
|
+
else if (backwards !== null) {
|
|
32081
32123
|
if (requested === void 0)
|
|
32082
32124
|
throw new Error(
|
|
32083
32125
|
`${product.packageName}@latest is ${release.version} (engine ${engine}), older than the ${backwards} this project is on, so upgrading to it would move the project backwards. Nothing was changed. To go back on purpose, name the version: ${projectLine(product.command, `upgrade ${release.version}`)}.`
|
|
@@ -32097,23 +32139,38 @@ async function upgradeProject(product, requested) {
|
|
|
32097
32139
|
})();
|
|
32098
32140
|
const locks = packagesChanged && !linked ? (await Promise.all([join10(project, "package-lock.json"), join10(project, "node_modules", ".package-lock.json")].map(lockWithoutVolter))).filter((lock) => lock !== null) : [];
|
|
32099
32141
|
if (locks.length > 0) changed.push("package-lock.json: its @volter rows dropped, so npm install resolves the new ones");
|
|
32142
|
+
const stdGame = existsSync10(join10(project, "std.json"));
|
|
32143
|
+
const packed = stdGame && existsSync10(join10(project, "std-packages"));
|
|
32144
|
+
const std = packed && checkoutRoot() !== null ? pinnedStd("upgrade") : null;
|
|
32145
|
+
if (packed && std === null)
|
|
32146
|
+
kept.push("std-packages/ keeps its packs: this Cyclotron is installed from npm and carries no std to pack them from");
|
|
32100
32147
|
await writeAll([
|
|
32101
32148
|
...packagesChanged ? [{ path: packagePath, content: jsonLayout(packageRaw)(pkg), original: packageRaw }] : [],
|
|
32102
32149
|
...pinChanged ? [{ path: manifestPath, content: jsonLayout(manifestRaw)(manifest), original: manifestRaw }] : [],
|
|
32103
32150
|
...locks
|
|
32104
32151
|
]);
|
|
32152
|
+
if (std !== null) {
|
|
32153
|
+
try {
|
|
32154
|
+
await stdUpgrade(std, project);
|
|
32155
|
+
} catch (error50) {
|
|
32156
|
+
const written = changed.length > 0 ? ` These were written before it: ${changed.join("; ")}.` : "";
|
|
32157
|
+
throw new Error(`std's own upgrade failed, and the game keeps its std packs: ${error50 instanceof Error ? error50.message : String(error50)}.${written}`);
|
|
32158
|
+
}
|
|
32159
|
+
changed.push(`std-packages/: std's packages packed again from the std this ${product.command} pins (std upgrade)`);
|
|
32160
|
+
}
|
|
32105
32161
|
for (const line of warnings) console.warn(`! ${line}`);
|
|
32106
32162
|
console.log(changed.length > 0 ? `Upgraded ${project} to ${product.packageName}@${release.version} (engine ${engine}):` : `${project} is already on ${product.packageName}@${release.version} (engine ${engine}).`);
|
|
32107
32163
|
for (const line of changed) console.log(` + ${line}`);
|
|
32108
32164
|
if (kept.length > 0) console.log("Left as it was:");
|
|
32109
32165
|
for (const line of kept) console.log(` = ${line}`);
|
|
32110
|
-
const [npm, npx] = process.platform === "win32" ? ["npm.cmd", "npx.cmd"] : ["npm", "npx"];
|
|
32166
|
+
const [npm, npx] = process.platform === "win32" ? [stdGame ? "pnpm.cmd" : "npm.cmd", "npx.cmd"] : [stdGame ? "pnpm" : "npm", "npx"];
|
|
32167
|
+
const installs = packagesChanged || std !== null;
|
|
32111
32168
|
if (changed.length === 0) {
|
|
32112
32169
|
console.log(`If you ran this because an editor refused the project, that editor is another installation: open the project with its own, \`${npx} --no-install ${product.command} edit .\` in ${project}.`);
|
|
32113
32170
|
return;
|
|
32114
32171
|
}
|
|
32115
32172
|
console.log(`Next, in ${project}, one line at a time:`);
|
|
32116
|
-
if (
|
|
32173
|
+
if (installs) {
|
|
32117
32174
|
if (await editorOpenOn(project))
|
|
32118
32175
|
console.log(` ${npx} --no-install ${product.command} close`);
|
|
32119
32176
|
if (!linked) console.log(` ${npm} install`);
|
|
@@ -32142,7 +32199,6 @@ try {
|
|
|
32142
32199
|
"existing-session": { type: "boolean" },
|
|
32143
32200
|
since: { type: "string" },
|
|
32144
32201
|
kind: { type: "string" },
|
|
32145
|
-
document: { type: "string" },
|
|
32146
32202
|
json: { type: "boolean" },
|
|
32147
32203
|
from: { type: "string" },
|
|
32148
32204
|
to: { type: "string" },
|
|
@@ -32163,7 +32219,6 @@ try {
|
|
|
32163
32219
|
for (const key of ["since", "kind"])
|
|
32164
32220
|
if (values[key] !== void 0 && verb !== "play-log") throw new Error(`--${key} belongs to play-log.`);
|
|
32165
32221
|
if (values.json !== void 0 && verb !== "play-log" && verb !== "sessions") throw new Error("--json belongs to play-log and sessions.");
|
|
32166
|
-
if (values.document !== void 0 && verb !== "play-log" && verb !== "play") throw new Error("--document belongs to play-log and play.");
|
|
32167
32222
|
for (const [owner, options2] of [["capture", CAPTURE_OPTIONS], ["camera", CAMERA_OPTIONS]])
|
|
32168
32223
|
for (const key of Object.keys(options2))
|
|
32169
32224
|
if (values[key] !== void 0 && verb !== owner && !(key === "out" && (verb === "view" || verb === "render-movie")) && !(key === "force" && verb === "export" && (positionals[1] === "component" || positionals[1] === "level"))) throw new Error(`--${key} belongs to ${owner}.`);
|
|
@@ -32199,7 +32254,7 @@ try {
|
|
|
32199
32254
|
${PRODUCT.command} open <path>
|
|
32200
32255
|
${PRODUCT.command} blender-mcp [--existing-session] # stdio MCP; optionally refuse editor startup`);
|
|
32201
32256
|
} else if (verb === "play") {
|
|
32202
|
-
console.log(JSON.stringify(await play(positionals.slice(1)
|
|
32257
|
+
console.log(JSON.stringify(await play(positionals.slice(1)), null, 2));
|
|
32203
32258
|
} else if (verb === "chat") {
|
|
32204
32259
|
console.log(JSON.stringify(await chat(positionals.slice(1)), null, 2));
|
|
32205
32260
|
} else if (verb === "view") {
|