@volter/cyclotron 0.5.211 → 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 +232 -1964
- package/LICENSE +2 -3
- package/LICENSE-BLENDER +9 -8
- package/NOTICE +8 -3
- package/README.md +39 -30
- package/dist/.vite/manifest.json +1215 -4338
- 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-BLXKEWrR.js +25 -0
- package/dist/assets/index-BKjLHm6K.js +483 -0
- 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-BlCQQM-8.js +1 -0
- 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-cQafPSkT.js +1 -0
- 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-DCFuSvgm.js +1 -0
- 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-Toolbar-ZoV9Yq_A.js +1 -0
- 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-4DXjy0el.js +1 -0
- 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-FcK7_ULi.js +1 -0
- package/dist/assets/volter-sdk-hierarchy-projection-CKzUOZUa.js +1 -0
- 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-TesTKdAZ.js +1 -0
- package/dist/assets/volter-sdk-index-BABXozHr.js +1 -0
- 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-CSM-jVcZ.js +1 -0
- 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-CVVUDDuL.js +1 -0
- 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-CO06UOh-.js +1 -0
- 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-C_8H4xuP.js +1 -0
- package/dist/assets/volter-sdk-stories-StoryPreviewMount-BUX42gIR.js +1 -0
- 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-Ba5jQqay.js +1 -0
- 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-CkT8l5N_.js +1 -0
- package/dist/assets/volter-sdk-ui-source-file-region-resolver-Cfza3eEl.js +1 -0
- package/dist/assets/volter-sdk-ui-source-inspect-CEjmAN75.js +1 -0
- package/dist/assets/volter-sdk-ui-source-source-write-backend-0njgRdI6.js +1 -0
- 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-CDvfWY4Q.js +1 -0
- 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-DhL1I42R.js +1 -0
- 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-DtHGK9PF.js +1 -0
- 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-8Qzej--P.js +1 -0
- 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-BEv9WEZj.js +1 -0
- package/dist/assets/volter-shared-jsx-dev-runtime-domcKDU3.js +1 -0
- package/dist/assets/volter-shared-jsx-runtime-Cu7pVW-1.js +1 -0
- package/dist/assets/volter-shared-react-BLHga76C.js +1 -0
- package/dist/assets/volter-shared-react-dom-client-vi6WsWu2.js +1 -0
- package/dist/assets/volter-shared-react-dom-kzJVGsQd.js +1 -0
- package/dist/assets/volter-shared-three-BWbOWtM5.js +4220 -0
- package/dist/assets/volter-shared-three-core-DEsIwtOu.js +9 -0
- package/dist/volter-shared-modules.json +227 -0
- package/dist/volter-shared-react.json +6 -6
- package/dist/volter-shared-three.json +2 -1
- package/dist-node/cli.js +2962 -6245
- package/dist-node/create.js +350 -278
- package/package.json +51 -31
- package/src/index.ts +4 -6
- package/src/product-id.d.ts +4 -0
- package/src/styles/maya.style.ts +14 -0
- package/src/styles/substance.style.ts +15 -0
- package/starter/AGENTS.md +216 -156
- package/starter/cube.py +3 -9
- package/starter/film/boards/title.png +0 -0
- package/starter/film/cut.json +12 -0
- package/starter/film/film.json +7 -0
- package/starter/film/music/.gitkeep +0 -0
- package/starter/film/music.json +4 -0
- package/starter/film/script.fountain +16 -0
- package/starter/film/shots.json +26 -0
- package/starter/film/sounds/whoosh.wav +0 -0
- package/starter/film/src/graphics/title.css +33 -0
- package/starter/film/src/graphics/title.stories.tsx +6 -0
- package/starter/film/src/graphics/title.tsx +14 -0
- package/starter/film/src/models/opening.blend +0 -0
- package/starter/film/src/models/opening.py +87 -0
- package/starter/film/story.md +14 -0
- package/starter/film/takes/.gitkeep +0 -0
- package/starter/film/takes.json +4 -0
- package/starter/film-skills/film-cut/SKILL.md +31 -0
- package/starter/film-skills/film-shots/SKILL.md +32 -0
- package/starter/film-skills/film-story/SKILL.md +19 -0
- package/starter/game/levels/MainLevel.tsx +24 -0
- package/starter/game/prefabs/ground/Ground.tsx +24 -0
- package/starter/game/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/starter/package.json +3 -2
- package/starter/sounds/mix.json +10 -0
- package/dist/assets/BVHLoader-V9f-EnYd.js +0 -1
- package/dist/assets/ColladaLoader-Cp-E7iiV.js +0 -3
- package/dist/assets/EntityModelDocument-DxdGehCz.js +0 -1
- package/dist/assets/EnvironmentAssetDocument-DSTdQdSt.js +0 -1
- package/dist/assets/FBXLoader-CpZqH4xx.js +0 -1
- package/dist/assets/InspectorObjectPreview-De6zT2B7.js +0 -1
- package/dist/assets/LiveModuleDocument-Do5YRpzB.js +0 -2
- package/dist/assets/LutAssetDocument-BjZgLVjR.js +0 -1
- package/dist/assets/MTLLoader-JK_iLZsm.js +0 -2
- package/dist/assets/ModelAssetDocument-Bb5UYcrj.js +0 -1
- package/dist/assets/NonThreeAuthoringBootstrap-CVri610U.js +0 -1
- package/dist/assets/OBJLoader-eGO6iVw8.js +0 -5
- package/dist/assets/Object3DDocumentToolbar-C7HT5nHi.js +0 -1
- package/dist/assets/Object3DPreview-CaOEIIdC.js +0 -2
- package/dist/assets/OrbitControls-DrHRrSFA.js +0 -1
- package/dist/assets/PLYLoader-BCSN1tYw.js +0 -2
- package/dist/assets/QuarksAssetDocument-DzS5h2Bc.js +0 -2
- package/dist/assets/RectAreaLightUniformsLib-HqHjURQQ.js +0 -1
- package/dist/assets/STLLoader-vhCvZeOF.js +0 -1
- package/dist/assets/ShaderAssetDocument-DYXX7aw5.js +0 -1
- package/dist/assets/StageHost-DVnv4TcF.js +0 -1179
- package/dist/assets/TDSLoader-DbUHSEO9.js +0 -1
- package/dist/assets/ToolObject3DPreview-Dad57oap.js +0 -1
- package/dist/assets/ViewportShadingMenu-Bl8IlWGh.js +0 -1
- package/dist/assets/animation-mixers.service-qJ4SNabd.js +0 -1
- package/dist/assets/animation-timeline.utility-wNtZO_cS.js +0 -1
- package/dist/assets/anthropic-DwpKRVGM.svg +0 -1
- package/dist/assets/asset-preview-OYr2sUbO.js +0 -4
- package/dist/assets/blender-display-shaders-BpnqnkG8.lut +0 -0
- package/dist/assets/blender-emscripten-engine-CTeOMKcG.js +0 -2
- package/dist/assets/blender-motion-worker-CtT2cV3V.js +0 -1
- package/dist/assets/blender-node-editor.document-pEhp9MZH.js +0 -1
- package/dist/assets/blender-properties-model-B7O1AR0g.js +0 -1
- package/dist/assets/blender-properties-tab-CBdCQseg.js +0 -3
- package/dist/assets/blender-runtime-host-swgDAdoy.js +0 -7221
- package/dist/assets/blender-runtime.document-BbtLLRrN.js +0 -13
- package/dist/assets/blender-screenshot.menu-CD1Bg0Z-.js +0 -1
- package/dist/assets/blender-timeline.document-DT_mWXnn.js +0 -1
- package/dist/assets/blender-uv-editor.document-9j_SUkf7.js +0 -1
- package/dist/assets/blender-version.status-Z13Xgrj-.js +0 -1
- package/dist/assets/blender-wali-engine-kfyCxO_U.js +0 -2
- package/dist/assets/blender.command-zp1Oe3pY.js +0 -1
- package/dist/assets/blender.environment-CG-pC7sk.js +0 -1
- package/dist/assets/blender.keymap-BmOBRY7p.js +0 -1
- package/dist/assets/blender.status-MRiv-9Ju.js +0 -1
- package/dist/assets/blender.style--aBP5V1k.js +0 -1
- package/dist/assets/city-EkhAOo5s.exr +0 -0
- package/dist/assets/courtyard-DqlebbpC.exr +0 -0
- package/dist/assets/forest-P_CQY3b_.exr +0 -0
- package/dist/assets/icon-BkiLD9ed.png +0 -0
- package/dist/assets/index-C8BwtQGN.js +0 -952
- package/dist/assets/interior-Bo_lba15.exr +0 -0
- package/dist/assets/linear-resolve-Cuka7Ypb.js +0 -377
- package/dist/assets/live-mixers-B-bwLZ7c.js +0 -1
- package/dist/assets/model-inspection-DVE8f3Dj.js +0 -1
- package/dist/assets/model.layout-BpZE1W9V.js +0 -1
- package/dist/assets/models.finder-5z7xbsOu.js +0 -1
- package/dist/assets/night-CvV4Gybt.exr +0 -0
- package/dist/assets/object3d-document-session-registry-DDpmVmir.js +0 -2
- package/dist/assets/openai-DHNKzFtc.svg +0 -1
- package/dist/assets/output-pass-j4dAGrPY.js +0 -85
- package/dist/assets/play-live-BBkOuWQn.js +0 -1
- package/dist/assets/product-CUU4-nDZ.js +0 -14
- package/dist/assets/product-DPOIZgKM.css +0 -1
- package/dist/assets/properties-bone-constraints.inspector-D8CtPu9c.js +0 -1
- package/dist/assets/properties-bone.inspector-j9aNQrP9.js +0 -1
- package/dist/assets/properties-collection.inspector-CaMveBur.js +0 -1
- package/dist/assets/properties-constraints.inspector-DB9bBgqn.js +0 -1
- package/dist/assets/properties-data.inspector-C7dh_XTe.js +0 -1
- package/dist/assets/properties-material.inspector-DWC5NJkW.js +0 -1
- package/dist/assets/properties-modifiers.inspector-CBUxUSB0.js +0 -1
- package/dist/assets/properties-object.inspector-wvO8nuGD.js +0 -1
- package/dist/assets/properties-output.inspector-CFyAZn9F.js +0 -1
- package/dist/assets/properties-particles.inspector-zEaTW3U7.js +0 -1
- package/dist/assets/properties-physics.inspector-CO-4UZbX.js +0 -1
- package/dist/assets/properties-render.inspector-DoJ1BMKP.js +0 -1
- package/dist/assets/properties-scene.inspector-BOhaiC0_.js +0 -1
- package/dist/assets/properties-texture.inspector-1JoYUWiR.js +0 -1
- package/dist/assets/properties-view-layer.inspector-DuRkFWtq.js +0 -1
- package/dist/assets/properties-world.inspector-Csfv-x0A.js +0 -1
- package/dist/assets/react-18-Dh4gvPqw.js +0 -1
- package/dist/assets/regions-DWeEBnE2.js +0 -1
- package/dist/assets/sculpt.layout-D-K5cLw6.js +0 -1
- package/dist/assets/session-CvHLFvpx.js +0 -6056
- package/dist/assets/shading.layout-CZZHKBer.js +0 -1
- package/dist/assets/sky-precompute-worker-CPGW9t_C.js +0 -1
- package/dist/assets/spark.module-CTTm62aa.js +0 -12120
- package/dist/assets/stage-keyboard-BvTth28t.js +0 -1
- package/dist/assets/stage-overlay-set-Dt6IH1xC.js +0 -1
- package/dist/assets/stage-presence-markers-DszBO9B1.js +0 -1
- package/dist/assets/stage-transform-tools-D6H_SBLV.js +0 -1
- package/dist/assets/standard-viewport-dressing-BSYojdsQ.js +0 -24
- package/dist/assets/studio-CysTBGIb.exr +0 -0
- package/dist/assets/sunrise-Dj0psFrf.exr +0 -0
- package/dist/assets/sunset-Bw3x2Bot.exr +0 -0
- package/dist/assets/texture.layout-DASpHVht.js +0 -1
- package/dist/assets/three-integration.service-DvOyomjh.js +0 -2
- package/dist/assets/three.module-CtVjCPcj.js +0 -3840
- package/dist/assets/uv-editing.layout-A8RA-cbM.js +0 -1
- package/dist/assets/volter-sdk-account-fYMnFHfe.js +0 -1
- package/dist/assets/volter-sdk-client-JmBOIwGe.js +0 -1
- package/dist/assets/volter-sdk-contributions-l9HrPjwW.js +0 -1
- package/dist/assets/volter-sdk-css-numeric-style-ud28AcW3.js +0 -1
- package/dist/assets/volter-sdk-document-probe-C4RhslOI.js +0 -1
- package/dist/assets/volter-sdk-editor-view-B_mScT1w.js +0 -1
- package/dist/assets/volter-sdk-host-B9QOINsX.js +0 -1
- package/dist/assets/volter-sdk-http-transport.browser-6a_cUtge.js +0 -1
- package/dist/assets/volter-sdk-index-DDdgpWqc.js +0 -1
- package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-CRc93EXv.js +0 -1
- package/dist/assets/volter-sdk-kit-account-client-ByjTbat7.js +0 -1
- package/dist/assets/volter-sdk-kit-action-registry-J5l20B9X.js +0 -1
- package/dist/assets/volter-sdk-kit-active-product-BTHzjkrh.js +0 -1
- package/dist/assets/volter-sdk-kit-active-project-CgXmYhKx.js +0 -1
- package/dist/assets/volter-sdk-kit-adapter-editor-config-CcSGBUF1.js +0 -1
- package/dist/assets/volter-sdk-kit-adapter-module-CqkP49hA.js +0 -1
- package/dist/assets/volter-sdk-kit-adapter-observation-MWNd8Bmj.js +0 -1
- package/dist/assets/volter-sdk-kit-animation-animation-clock-C5QhnLuY.js +0 -1
- package/dist/assets/volter-sdk-kit-animation-stage-transport-DFbbJ80P.js +0 -1
- package/dist/assets/volter-sdk-kit-api-assets-Dtg4_1jX.js +0 -1
- package/dist/assets/volter-sdk-kit-api-base-De8oXkY8.js +0 -1
- package/dist/assets/volter-sdk-kit-api-build-Cgmw35Ng.js +0 -1
- package/dist/assets/volter-sdk-kit-api-logs-B1mQlcPQ.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-identity-DEZz1U5_.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-open-DuXZ6vyn.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-source-DMnPoTP2.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-state-6Lu0Vxdr.js +0 -1
- package/dist/assets/volter-sdk-kit-api-relay-BuCkenvE.js +0 -1
- package/dist/assets/volter-sdk-kit-api-settings-CkFO_pMP.js +0 -1
- package/dist/assets/volter-sdk-kit-api-themes-D5J6TiAR.js +0 -1
- package/dist/assets/volter-sdk-kit-api-worktrees-de1U7-9B.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-capabilities-IBJRDoU_.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-compare-core-qeWQI0-1.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-editor-context-JZ2T8xhF.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-events-wfq-jH9_.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-inspector-actions-NlF3CeMC.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-selection-BUXGqut1.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-DNj4RggW.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-thumbnails-CPp1sS_w.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-viewers-PKilU3Lm.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-DHDfKVAJ.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-Ch0TDXil.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-Cb0-daSo.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-Bznr7T6d.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-BriZZqYC.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-5K3HN4kg.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-F65PsmIZ.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-DzxVbaeb.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-B2Oxd31D.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-BmPO24SY.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-BPRq-xQf.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-CM64IwuA.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-BIKxorKS.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-7CNTmzBZ.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-project-content-C3EJl866.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-CQrbYiAp.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-active-adapter-BC9Cf4yx.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-active-systems-GZm33tOS.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-adapter-key-C4-d6xt1.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-CEEw_XEg.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-BJsS0bnj.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-1NA63Idp.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-BlbGyg38.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-D0FSf6DM.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-consumer-actions-J7MnHWK3.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-design-time-layers-CnLS2erF.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-BrmHkPuP.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-HQAxbCiB.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-CdLSRvO0.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-EWM45v6y.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-layered-pick-BX3K3GR7.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-BGatqFLR.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-CerY6qmy.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-DxZ-V-ys.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-panel-authoring-Bbv7lJc5.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-C5rP-I6e.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-provenance-BNVk0DFH.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-BqUskgSb.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-DB8S6Vfi.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-story-board-M-VqCWKu.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-seam-evidence-Qbbz8M6t.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-selection-scope-CkblMrR8.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-B9Y9p91j.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-7umaPaVS.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-three-root-M5Gj55-Z.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-CH5NA-YI.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-CzTEMmzx.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-world-session-state-BjKbimsg.js +0 -1
- package/dist/assets/volter-sdk-kit-availability-tick-C7I6Zrut.js +0 -1
- package/dist/assets/volter-sdk-kit-bitmap-label-DPmffd8g.js +0 -1
- package/dist/assets/volter-sdk-kit-boot-routing-CaKypcBx.js +0 -1
- package/dist/assets/volter-sdk-kit-breakpoint-state-5m0qTYvY.js +0 -1
- package/dist/assets/volter-sdk-kit-build-identity-HQ0VWGG8.js +0 -1
- package/dist/assets/volter-sdk-kit-bytes-codec-BJDqylNg.js +0 -1
- package/dist/assets/volter-sdk-kit-cancellation-reason-B0z-IzQ9.js +0 -1
- package/dist/assets/volter-sdk-kit-canvas-frames-BtkS3lNe.js +0 -1
- package/dist/assets/volter-sdk-kit-capture-camera-pose-CUejcTcV.js +0 -1
- package/dist/assets/volter-sdk-kit-capture-size-Uyb3uqXA.js +0 -1
- package/dist/assets/volter-sdk-kit-chrome-registry-cc3AZlnV.js +0 -1
- package/dist/assets/volter-sdk-kit-chrome-slot-registry-C4g-na11.js +0 -1
- package/dist/assets/volter-sdk-kit-collaboration-client-Cd6918QC.js +0 -1
- package/dist/assets/volter-sdk-kit-collaboration-presence-qXC7JfS2.js +0 -1
- package/dist/assets/volter-sdk-kit-command-dispatch-D07Pn7pe.js +0 -1
- package/dist/assets/volter-sdk-kit-command-listener-Bm2sgP0i.js +0 -1
- package/dist/assets/volter-sdk-kit-command-registry-CJoVRu6V.js +0 -1
- package/dist/assets/volter-sdk-kit-component-board-registry-D7xm8cFr.js +0 -1
- package/dist/assets/volter-sdk-kit-component-states-registry-DtippeT3.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AlignToolbar-BporX2iz.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ApplicationMenus-DfmKRYtb.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AssetEditorShell-B-_vx-Jb.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-CyEcoLKv.js +0 -1
- package/dist/assets/volter-sdk-kit-components-BoardRulers-CjoDr2Ak.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-Bz4W0Y2g.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-Cyd5bYha.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ChromeSlot-q_wsahlZ.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CodeView-COOHbFef.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-F5yS9e4v.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ConsolePanel-Dnnq15qj.js +0 -1
- package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-CFCva8sQ.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectionProjection-Cj0eqFPF.js +0 -1
- package/dist/assets/volter-sdk-kit-components-Inspector-DhnEEQ_5.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-ljsWq41X.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-pUp0DKhG.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-BJKmp0B3.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorToolSection-DBDxp3Ir.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-eGVZo2ph.js +0 -1
- package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-jKqvAsdL.js +0 -1
- package/dist/assets/volter-sdk-kit-components-MediaProperties-DEn9gV9T.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ProjectHeader-CtsMXibh.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-Bdu_gdRF.js +0 -1
- package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-8PYXBIYy.js +0 -1
- package/dist/assets/volter-sdk-kit-components-RootTextEditor-DFkpwNlX.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SaveStatus-BP1Q1tfu.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SurfaceCrashBoundary-C_FxlEvS.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-C_O4-zsY.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-DAoNJ2KS.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ToolHost-z-CSuvra.js +0 -1
- package/dist/assets/volter-sdk-kit-components-Toolbar-CUsODOE2.js +0 -1
- package/dist/assets/volter-sdk-kit-components-TransientHint-BsejPKYD.js +0 -1
- package/dist/assets/volter-sdk-kit-components-VersionControlSection-ldwCuasW.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-DjfcwDPM.js +0 -1
- package/dist/assets/volter-sdk-kit-components-VolterLogo-wmAjAypV.js +0 -1
- package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-JN-eaFqo.js +0 -1
- package/dist/assets/volter-sdk-kit-components-account-documents-BcgknOsj.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-documents-B2W4TjZO.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-NTgC5Ngq.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-selection-section-CLS4gJUE.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-thumbnails-CaYPgAtN.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-DbLUYMKF.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-B3ieuK68.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-DicJ06Cl.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-DRBY_95W.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-BR14tR5R.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-BI9bFeTE.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-d7Wqtjxk.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-Ykl90edA.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-BmwRhUts.js +0 -1
- package/dist/assets/volter-sdk-kit-components-board-guides-Dw7AT-AY.js +0 -1
- package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-s3AK_b58.js +0 -1
- package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-DKdXJcd9.js +0 -1
- package/dist/assets/volter-sdk-kit-components-core-utilities-C5ZKnxiW.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-preview-section-BHsR6Ljx.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-revert-label-BcItYP-3.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-selection-DnVCu9NI.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-BbWmsm9H.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-transform-BCj8sqj5.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-DmyQlGz0.js +0 -1
- package/dist/assets/volter-sdk-kit-components-kind-documents-BECHMIFC.js +0 -1
- package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-BB28QlBb.js +0 -1
- package/dist/assets/volter-sdk-kit-components-project-tool-documents-CrMMOzM5.js +0 -1
- package/dist/assets/volter-sdk-kit-components-scene-documents-B3yfDsBz.js +0 -1
- package/dist/assets/volter-sdk-kit-components-status-contributions-CDzNj8Hu.js +0 -1
- package/dist/assets/volter-sdk-kit-components-tool-documents-BpEG-ABF.js +0 -1
- package/dist/assets/volter-sdk-kit-components-tool-schema-form-BOiPCwKc.js +0 -1
- package/dist/assets/volter-sdk-kit-components-use-after-paint-AcvAjLMf.js +0 -1
- package/dist/assets/volter-sdk-kit-components-use-project-image-assets-CRFbWY4e.js +0 -1
- package/dist/assets/volter-sdk-kit-components-workspace-history-DTgNtIrO.js +0 -1
- package/dist/assets/volter-sdk-kit-components-world-documents-N9ea5nLy.js +0 -1
- package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-CvVXrTkV.js +0 -1
- package/dist/assets/volter-sdk-kit-composite-screenshot-BsiNQIxC.js +0 -1
- package/dist/assets/volter-sdk-kit-content-entry-source-registry-BX8YW40L.js +0 -1
- package/dist/assets/volter-sdk-kit-contribution-surfaces-CMblNYDG.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-BtPYs0AY.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-BCRK-uUC.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-3YuOn0LN.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-session-vitals-BpsIwBM0.js +0 -1
- package/dist/assets/volter-sdk-kit-creation-site-registry-C1_mEFTL.js +0 -1
- package/dist/assets/volter-sdk-kit-delegate-harness-registry-V07K9odj.js +0 -1
- package/dist/assets/volter-sdk-kit-document-areas-TQELDKqa.js +0 -1
- package/dist/assets/volter-sdk-kit-document-context-registry-BaPLLOGQ.js +0 -1
- package/dist/assets/volter-sdk-kit-document-open-registry-D-zxkb7y.js +0 -1
- package/dist/assets/volter-sdk-kit-document-play-extension-F8i5xdiU.js +0 -1
- package/dist/assets/volter-sdk-kit-document-preview-source-DgDf2lpD.js +0 -1
- package/dist/assets/volter-sdk-kit-document-renderer-session-YWnbpDFE.js +0 -1
- package/dist/assets/volter-sdk-kit-document-stage-sessions-BKZBGbit.js +0 -1
- package/dist/assets/volter-sdk-kit-document-viewports-DNuE6MQl.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-api-DZDj3o86.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-chrome-capture-De6DmSgV.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-commands-CImZE1nE.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-console-nzCbsR0U.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-current-view-POB-DPkt.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-document-probe-B5tRXCfR.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-git-client-SsYoNC6J.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-hotkeys-B4ocILot.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-lease-CBvYmCsH.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-lease-view-DVuaJEec.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-mode-B2vWMS-_.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-notifications-DgsalU9q.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presence-BQiXcYKf.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presentation-activity-DO7YpI0H.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presentation-notice-BZtrnX57.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-runtime-C8mqfYkM.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-server-response-qipqMDto.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-session-attribution-_PNhRyeQ.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-session-mode-BcDn3FZY.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-state-facets-3r455vYW.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-view-presentation-Dovw_-H_.js +0 -1
- package/dist/assets/volter-sdk-kit-environment-images-DNJU9lPC.js +0 -1
- package/dist/assets/volter-sdk-kit-eyedropper-session-DJMkT_IO.js +0 -1
- package/dist/assets/volter-sdk-kit-files-file-provider-BnmRHNTp.js +0 -1
- package/dist/assets/volter-sdk-kit-files-project-files-CiKUZlIY.js +0 -1
- package/dist/assets/volter-sdk-kit-finders-index-qZKU8xjn.js +0 -1
- package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-DBTnLBhQ.js +0 -1
- package/dist/assets/volter-sdk-kit-frame-frame-parts-DY-_uCea.js +0 -1
- package/dist/assets/volter-sdk-kit-framed-document-capture-CsprF9Ct.js +0 -1
- package/dist/assets/volter-sdk-kit-game-surface-defaults-Dz1sExNZ.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-export-state-BwkWHkY-.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-replay-CgF6vM6H.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-session-time-BrdLX9MN.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-sessions-0YRBcIBD.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-component-marks-pwxcueeL.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-internals-qxAC9Yyz.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-Bguy3R2P.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-CQ_dm6ZG.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-node-rows-BJliwGW1.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-panel-view-C6zK-ewB.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-projection-q1LvhfSm.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-row-media-jZ989Tvr.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-row-model-BmrBiFlP.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-rows-BMI3XBi-.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-walk-oEWRF-Iz.js +0 -1
- package/dist/assets/volter-sdk-kit-history-editor-session-CdficO7Z.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-commands-D7VwYk3h.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-delegate-DgIAPV-4.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-limit-notices-Bu07tHVz.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-service-BzbUb6oV.js +0 -1
- package/dist/assets/volter-sdk-kit-history-persistence-coordinator-DuWeeacm.js +0 -1
- package/dist/assets/volter-sdk-kit-history-project-file-history-C7m0teYF.js +0 -1
- package/dist/assets/volter-sdk-kit-history-project-root-history-backends-mip7BKbu.js +0 -1
- package/dist/assets/volter-sdk-kit-history-resource-registry-CZoZX7pJ.js +0 -1
- package/dist/assets/volter-sdk-kit-history-snapshot-store-DFlmQKjf.js +0 -1
- package/dist/assets/volter-sdk-kit-history-source-history-backend-C1tXQx-3.js +0 -1
- package/dist/assets/volter-sdk-kit-hmr-registration-group-CdWSrJkL.js +0 -1
- package/dist/assets/volter-sdk-kit-hmr-stable-react-context-B_NNyLJr.js +0 -1
- package/dist/assets/volter-sdk-kit-hotkeys-9UuVecd2.js +0 -1
- package/dist/assets/volter-sdk-kit-inference-diagnostics-Bp6UhMrh.js +0 -1
- package/dist/assets/volter-sdk-kit-initial-project-mIrJ1z4F.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-active-subject-Ci13od8C.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-active-surface-BbND9Nn7.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-compose-subject-Cruyx55P.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-display-Ckb72SDN.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-document-subject-Dd7sTsiM.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-game-subject-Zye7SfKC.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-model-B6kt5U5M.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-node-media-3WYK4mrg.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-null-subject-j5MU6Bqp.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-serialize-C5ElmYGd.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-Dqr8YOfV.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-presentation-Bxm_mJug.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-property-grouping-DGsJwl0r.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-section-registry-BTw0xKeK.js +0 -1
- package/dist/assets/volter-sdk-kit-instance-source-actions-B_SYfHzK.js +0 -1
- package/dist/assets/volter-sdk-kit-js-heap-CMHIxDFc.js +0 -1
- package/dist/assets/volter-sdk-kit-key-actions-npGWeBwX.js +0 -1
- package/dist/assets/volter-sdk-kit-keymap-presets-Dgo5jMVc.js +0 -1
- package/dist/assets/volter-sdk-kit-layout-policy-D6cqDneT.js +0 -1
- package/dist/assets/volter-sdk-kit-light-explorer-model-D9220Fr3.js +0 -1
- package/dist/assets/volter-sdk-kit-live-canvas-frame-CQvRrTp5.js +0 -1
- package/dist/assets/volter-sdk-kit-live-document-StECWB5n.js +0 -1
- package/dist/assets/volter-sdk-kit-live-gesture-lock-DpKIl8Kh.js +0 -1
- package/dist/assets/volter-sdk-kit-live-seam-evidence-WkwVMDpm.js +0 -1
- package/dist/assets/volter-sdk-kit-live-session-registry-DmaGkq5x.js +0 -1
- package/dist/assets/volter-sdk-kit-live-transition-B5jM4iFM.js +0 -1
- package/dist/assets/volter-sdk-kit-manifest-project-amCdVxUh.js +0 -1
- package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-CpTsYq8x.js +0 -1
- package/dist/assets/volter-sdk-kit-mount-failure-report-DcYXxWwN.js +0 -1
- package/dist/assets/volter-sdk-kit-native-selection-style-bMu0TkER.js +0 -1
- package/dist/assets/volter-sdk-kit-object3d-document-write-policy-DCtXUN3w.js +0 -1
- package/dist/assets/volter-sdk-kit-packaged-runtime-8FNZVNB9.js +0 -1
- package/dist/assets/volter-sdk-kit-performance-profiler-DKuyDNq0.js +0 -1
- package/dist/assets/volter-sdk-kit-performance-sources-CUq2AYlp.js +0 -1
- package/dist/assets/volter-sdk-kit-photograph-notice-CJC3RuIs.js +0 -1
- package/dist/assets/volter-sdk-kit-play-boot-phase-CvmjrYem.js +0 -1
- package/dist/assets/volter-sdk-kit-play-camera-flight-Dp3bYFl4.js +0 -1
- package/dist/assets/volter-sdk-kit-presentation-surface-DDAJLzOO.js +0 -1
- package/dist/assets/volter-sdk-kit-product-command-CevBP_kA.js +0 -1
- package/dist/assets/volter-sdk-kit-project-adapter-DZMJa9qO.js +0 -1
- package/dist/assets/volter-sdk-kit-project-asset-refresh-BlzSWFsZ.js +0 -1
- package/dist/assets/volter-sdk-kit-project-asset-roots-ByJUql0c.js +0 -1
- package/dist/assets/volter-sdk-kit-project-local-state-CzuDIgqm.js +0 -1
- package/dist/assets/volter-sdk-kit-project-manager-KiOTeJwI.js +0 -1
- package/dist/assets/volter-sdk-kit-project-module-changes-BDLfMwF6.js +0 -1
- package/dist/assets/volter-sdk-kit-project-module-split-DVZB3699.js +0 -1
- package/dist/assets/volter-sdk-kit-project-provenance-GZJY3tis.js +0 -1
- package/dist/assets/volter-sdk-kit-project-ready-EtjRqua9.js +0 -1
- package/dist/assets/volter-sdk-kit-project-shape-Jb91qwQJ.js +0 -1
- package/dist/assets/volter-sdk-kit-project-tools-n1IzvKJM.js +0 -1
- package/dist/assets/volter-sdk-kit-readiness-j18YadCv.js +0 -1
- package/dist/assets/volter-sdk-kit-renderer-resource-counts-BjvWDcz5.js +0 -1
- package/dist/assets/volter-sdk-kit-reported-play-state-BdYUBkLM.js +0 -1
- package/dist/assets/volter-sdk-kit-resolve-contributed-command-7ZIwPRlj.js +0 -1
- package/dist/assets/volter-sdk-kit-resolve-relative-specifier-BEqx2z44.js +0 -1
- package/dist/assets/volter-sdk-kit-retained-document-states-BWSvbm_C.js +0 -1
- package/dist/assets/volter-sdk-kit-scene-document-plan-B8Q6NbgU.js +0 -1
- package/dist/assets/volter-sdk-kit-scene-live-open-PVToaH1e.js +0 -1
- package/dist/assets/volter-sdk-kit-scoped-game-css-DOF-inf1.js +0 -1
- package/dist/assets/volter-sdk-kit-served-url-C3OFjtsJ.js +0 -1
- package/dist/assets/volter-sdk-kit-session-close-CfqKNfrE.js +0 -1
- package/dist/assets/volter-sdk-kit-session-tombstone-wgZaXyq-.js +0 -1
- package/dist/assets/volter-sdk-kit-settings-settings-provider-CkU3sFW7.js +0 -1
- package/dist/assets/volter-sdk-kit-settings-store-vv_SoMfR.js +0 -1
- package/dist/assets/volter-sdk-kit-shell-store-DTExcaKL.js +0 -1
- package/dist/assets/volter-sdk-kit-shell-store-door-Y-FBGkmI.js +0 -1
- package/dist/assets/volter-sdk-kit-source-conflict-CnIJpwkZ.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-context-q9FWjN1-.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-invalidation-43bhizXB.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-store-registry-BQo-SIuU.js +0 -1
- package/dist/assets/volter-sdk-kit-startup-failure-B7USi1FF.js +0 -1
- package/dist/assets/volter-sdk-kit-state-report-deferral-Cur6y3FE.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-host-files-storage-C9d8xXNc.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-http-storage-MuV46OcN.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-index-CcMXaj5N.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-mem-storage-CaZsvmox.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-path-lock-ClaJ7vSM.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-paths-Ci2ZChlj.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-OjN0fncW.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-compose-project-stories-BlKWWJmk.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-prefabs-finder-CcmeyBzg.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-CA_oKZKb.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-project-story-regions-CFAyIdjW.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-scope-XvZpLAc5.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-capture-K4eH6MMa.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-declared-medium-e8MXBoO_.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-discovery-DViKEE-J.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-DdlXu5tN.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-grouping-BbgkS2Kl.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-presentation-Bw39PGHN.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-registry-DpouLkjB.js +0 -1
- package/dist/assets/volter-sdk-kit-story-document-openers-DckbFGIr.js +0 -1
- package/dist/assets/volter-sdk-kit-story-thumbnails-ruZKvQPb.js +0 -1
- package/dist/assets/volter-sdk-kit-surface-keyboard-ChQta2gu.js +0 -1
- package/dist/assets/volter-sdk-kit-surface-state-CUbH0mE7.js +0 -1
- package/dist/assets/volter-sdk-kit-system-seam-evidence-hHuyimda.js +0 -1
- package/dist/assets/volter-sdk-kit-tab-census-BKO-Cotm.js +0 -1
- package/dist/assets/volter-sdk-kit-tab-lifecycle-client--HEzpfrP.js +0 -1
- package/dist/assets/volter-sdk-kit-theme-library-cooHZE2t.js +0 -1
- package/dist/assets/volter-sdk-kit-theme-preference-BfzIz8X4.js +0 -1
- package/dist/assets/volter-sdk-kit-three-viewport-presentation-DJQ6GD49.js +0 -1
- package/dist/assets/volter-sdk-kit-tool-contribution-play-B1vfLya9.js +0 -1
- package/dist/assets/volter-sdk-kit-tool-loader-C_B2N1As.js +0 -1
- package/dist/assets/volter-sdk-kit-transform-mode-request-tOzI-V8h.js +0 -1
- package/dist/assets/volter-sdk-kit-transient-hint-qly8UT5T.js +0 -1
- package/dist/assets/volter-sdk-kit-transport-strip-CrqMX70b.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-CjFRrSBS.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-inspect-CPbxbbEw.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-Ci45ai4Y.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-B_pwEKI_.js +0 -1
- package/dist/assets/volter-sdk-kit-user-local-state-CZtLuAED.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-activation-timings-DtO34FL_.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-editor-controls-C4eYemqw.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-presentation-D1_lvqyl.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-surface-status-BsGJAuRu.js +0 -1
- package/dist/assets/volter-sdk-kit-wait-until-DlHFfLUu.js +0 -1
- package/dist/assets/volter-sdk-kit-worker-call-metrics-FsK4U-gz.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-areas-CvTSMn-H.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-aux-commands-CrxEUAQx.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-available-documents-Cl8CigSt.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-core-utilities-rQQcVO5n.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-ids-CisQDpex.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-registry-D4w40sGe.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-restore-B0s9617k.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-host-commands-DLqH47QQ.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-persistence-gate-eeXMeNbc.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-play-utilities-sGc6TcaG.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-presets-D-OZK4QQ.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-regions-CLU4KicA.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-static-panels-BtUQumTF.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-status-registry-BlOrc7aA.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-storage-B1cvxes9.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-style-Czyy_uk2.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-utility-commands-D7ToZCgr.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-utility-registry-Czk_iMpg.js +0 -1
- package/dist/assets/volter-sdk-kit-world-adoption-CvxzEI8V.js +0 -1
- package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-CjG34H8g.js +0 -1
- package/dist/assets/volter-sdk-kit-world-document-routing-B3yT1rzx.js +0 -1
- package/dist/assets/volter-sdk-kit-world-pan-state-Co5VSMOo.js +0 -1
- package/dist/assets/volter-sdk-kit-write-pipe-GbyDlxkJ.js +0 -1
- package/dist/assets/volter-sdk-layout-arrangements-DmBix6Gx.js +0 -1
- package/dist/assets/volter-sdk-layouts-CQccgb8u.js +0 -1
- package/dist/assets/volter-sdk-mgLi8_Cw.js +0 -2364
- package/dist/assets/volter-sdk-selection-wggwzLen.js +0 -1
- package/dist/assets/volter-sdk-session-command-table-HilHgL7-.js +0 -1
- package/dist/assets/volter-sdk-session-editor-brand-CnZ3VbR-.js +0 -1
- package/dist/assets/volter-sdk-session-editor-compatibility-BOYTGttq.js +0 -1
- package/dist/assets/volter-sdk-session-editor-control-protocol-DG79HI_x.js +0 -1
- package/dist/assets/volter-sdk-session-entrypoint-selection-readers-D9FXlkS2.js +0 -1
- package/dist/assets/volter-sdk-session-game-css-scope-CZmonWfe.js +0 -1
- package/dist/assets/volter-sdk-session-limited-view-KNOq_tYc.js +0 -1
- package/dist/assets/volter-sdk-session-project-module-url-D7htWtkD.js +0 -1
- package/dist/assets/volter-sdk-session-relative-path-guard-DYa5PL0U.js +0 -1
- package/dist/assets/volter-sdk-session-tool-contribution-convention-GC2AWVch.js +0 -1
- package/dist/assets/volter-sdk-types-Couxbiwa.js +0 -1
- package/dist/assets/volter-sdk-views-D8qvTyCn.js +0 -1
- package/dist/assets/volter-sdk-widgets-design-system-DOW3sA7o.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-appearance-iH79zcxr.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-material-D-LB0zxr.js +0 -1
- package/dist/assets/volter-sdk-widgets-icon-set-registry-ylLmSwSr.js +0 -1
- package/dist/assets/volter-sdk-widgets-index-DMo0Rqvn.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-DhdNVPDu.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-BEDX8viW.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-9Vk3QrCy.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-rhGdxW0L.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-BXu0Q3-y.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-C49uoql_.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-BoRWZylN.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-GxINOtYX.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-rvCzzMDI.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-DG-MGXQX.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-Cy4AI76M.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-ncKgVdwJ.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-BtW7A1an.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-lOZ7oJLL.js +0 -1
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-BbS6qOlJ.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-BqcAE1N1.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Fields-CD2kSMcv.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-List-CZyrvaL-.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-D8L-se9D.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-sW43gM3D.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-CTEQRAHE.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-CF8cj2Xd.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tree-KffO8vo1.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-D2my2vjj.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Button-CiaR71jI.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-DAxGHgoQ.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-CCZYI-j9.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-Fn9aFuF_.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-BMxlOety.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-BzwvyU3c.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-CTc6p9EQ.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Layout-CE-beP_c.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Menu-DfNc6W9I.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-Cyjw5Lzx.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Panel-LGno17LT.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-Cljf9N48.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Text-B4gPva4d.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-CXqwIkjb.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-DjwM-P34.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-DWMZJklN.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-banner-tones-bbpLeXlG.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-DB06CYVu.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-FxdDZA6W.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-CEiBBzGS.js +0 -1
- package/dist/assets/volter-sdk-widgets-theme-BysNs-Ha.js +0 -1
- package/dist/assets/volter-sdk-widgets-z-index-CQdgvLGF.js +0 -1
- package/dist/assets/volter-shared-fontawesome-BiNKLNA8.js +0 -1
- package/dist/assets/volter-shared-jsx-dev-runtime-BgDFKHr4.js +0 -1
- package/dist/assets/volter-shared-jsx-runtime-B6IXdFn7.js +0 -1
- package/dist/assets/volter-shared-react-dom-DOBDwT0W.js +0 -1
- package/dist/assets/volter-shared-react-dom-client-DxxNJanr.js +0 -1
- package/dist/assets/volter-shared-react-wgC9wOqr.js +0 -1
- package/dist/assets/volter-shared-three-CUSZKPWM.js +0 -1
- package/dist/assets/worker-DvJ796ja.js +0 -8
- package/dist/volter-shared-sdk.json +0 -465
- package/src/contributions.d.ts +0 -4
- package/starter/add-play/game-state.ts +0 -25
- package/starter/add-play/game.tsx +0 -16
- package/starter/add-play/model.play.ts +0 -77
- package/starter/playable/src/models/canyon.blend +0 -0
- package/starter/playable/src/models/canyon.play.ts +0 -107
- package/starter/playable/src/models/canyon.py +0 -55
- package/starter/playable/src/models/circuit.py +0 -131
- package/starter/playable/src/models/complete_environment.py +0 -35
- package/starter/playable/src/models/course.ts +0 -12
- package/starter/playable/src/models/detail.py +0 -44
- package/starter/playable/src/models/driver_details.py +0 -25
- package/starter/playable/src/models/environment.py +0 -87
- package/starter/playable/src/models/finish_scene.py +0 -13
- package/starter/playable/src/models/kart_finish.py +0 -31
- package/starter/playable/src/models/polish.py +0 -75
- package/starter/playable/src/models/race-state.ts +0 -15
- package/starter/playable/src/models/refine.py +0 -69
- package/starter/playable/src/models/scene_helpers.py +0 -54
- package/starter/playable/src/models/scenery_ao.py +0 -114
- package/starter/playable/src/textures/asphalt.png +0 -0
- package/starter/playable/src/textures/generate.py +0 -16
- package/starter/playable/src/textures/sandstone.png +0 -0
- package/starter/playable/src/ui/game.stories.tsx +0 -16
- package/starter/playable/src/ui/game.tsx +0 -6
- package/starter/playable/src/ui/race-hud.tsx +0 -29
- package/starter/playable/src/ui/race-widgets.tsx +0 -29
package/dist-node/create.js
CHANGED
|
@@ -5,11 +5,11 @@ var __export = (target, all) => {
|
|
|
5
5
|
};
|
|
6
6
|
|
|
7
7
|
// node/create.ts
|
|
8
|
-
import { spawn } from "node:child_process";
|
|
9
|
-
import { constants, existsSync, symlinkSync } from "node:fs";
|
|
10
|
-
import { mkdir, writeFile, copyFile, readFile, readdir } from "node:fs/promises";
|
|
11
|
-
import { resolve, join, dirname, relative } from "node:path";
|
|
12
|
-
import { fileURLToPath } from "node:url";
|
|
8
|
+
import { spawn as spawn2 } from "node:child_process";
|
|
9
|
+
import { constants, existsSync as existsSync2, symlinkSync } from "node:fs";
|
|
10
|
+
import { appendFile, mkdir, writeFile, copyFile, readFile, readdir, rm } from "node:fs/promises";
|
|
11
|
+
import { resolve as resolve2, join as join2, dirname as dirname2, relative as relative2 } from "node:path";
|
|
12
|
+
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
13
13
|
|
|
14
14
|
// ../../node_modules/zod/v4/classic/external.js
|
|
15
15
|
var external_exports = {};
|
|
@@ -13780,99 +13780,61 @@ function date4(params) {
|
|
|
13780
13780
|
config(en_default());
|
|
13781
13781
|
|
|
13782
13782
|
// ../project/src/manifest/schema.ts
|
|
13783
|
-
var
|
|
13784
|
-
var
|
|
13785
|
-
|
|
13786
|
-
|
|
13787
|
-
|
|
13788
|
-
|
|
13789
|
-
|
|
13790
|
-
|
|
13791
|
-
|
|
13792
|
-
|
|
13793
|
-
|
|
13794
|
-
|
|
13795
|
-
|
|
13796
|
-
|
|
13797
|
-
|
|
13798
|
-
|
|
13799
|
-
|
|
13800
|
-
|
|
13801
|
-
|
|
13802
|
-
|
|
13803
|
-
|
|
13804
|
-
|
|
13805
|
-
|
|
13806
|
-
|
|
13807
|
-
ctx.addIssue({
|
|
13808
|
-
code: "custom",
|
|
13809
|
-
message: removedSpellingMessage(surface, "adapter.surface")
|
|
13810
|
-
});
|
|
13811
|
-
return external_exports.NEVER;
|
|
13812
|
-
}
|
|
13813
|
-
}
|
|
13814
|
-
return value;
|
|
13815
|
-
}
|
|
13816
|
-
var RootAdapterSchema = external_exports.preprocess(
|
|
13817
|
-
rejectRemovedRootAdapterSpelling,
|
|
13818
|
-
external_exports.union([
|
|
13819
|
-
external_exports.enum(["three", "canvas", "dom"]),
|
|
13820
|
-
external_exports.object({
|
|
13821
|
-
module: external_exports.string().describe("Game-folder-relative path to a custom adapter module (trust boundary)"),
|
|
13822
|
-
surface: external_exports.enum(["three", "canvas", "dom"]).describe("Native surface exposed by this custom adapter contract")
|
|
13823
|
-
}).strict(),
|
|
13824
|
-
external_exports.object({
|
|
13825
|
-
surface: external_exports.enum(["three", "canvas", "dom"]).describe("Native surface captured from the unmodified game"),
|
|
13826
|
-
ingest: external_exports.object({
|
|
13827
|
-
contractShim: external_exports.string().optional().describe(
|
|
13828
|
-
"Project-relative path to a HOST-ADDED ES module that declares this game's `window.volterGame` contract (adapter/ingest/game-contract.ts) WITHOUT editing a vendored byte \u2014 the pristine-copy door. The host imports it immediately BEFORE the game's own entry module, in the editor's realm. TIMING CONTRACT, which a shim author must obey: because it runs before the game`s entry, it MUST assign `window.volterGame` SYNCHRONOUSLY at top level. Anything that needs the game`s own modules must be LAZY: a dynamic `import()` INSIDE each verb/provider closure, resolved at call time. Importing a game module eagerly from the shim would evaluate it ahead of the game`s own entry and reorder its module side effects. Every such `import()` MUST take a STRING LITERAL, never a variable/table lookup. A variable specifier is not statically analyzable, so the dev server leaves it alone and it resolves at runtime against the shim`s own `/@fs/` url \u2014 while the game`s entry has had ITS relative imports rewritten to whatever url the server considers canonical for those files. Module identity is per-url, so the shim silently binds a SECOND, freshly-evaluated copy of the whole game and every provider reports a game that never started. Measured on a vendored three game: 285 world segments through the game`s own graph, 0 through the shim`s, and no error anywhere."
|
|
13829
|
-
),
|
|
13830
|
-
dataWriter: external_exports.string().optional().describe(
|
|
13831
|
-
"Project-relative path to a HOST-ADDED ES module that writes this game's own DATA file back \u2014 the sibling of a source write for a game whose authorable truth is not source. A level-based game places its enemies, pickups and objectives in binary records inside a level file, reaching no source literal, so an authored move of one is an edit to that file and nothing else can write it. The module declares two exports and the host knows nothing else about it: `dataFile` (a project-relative string \u2014 the ONE file this writer edits) and `planDataEdit(bytes, {record, property, baseline, next})`, which returns `{changed: true, bytes}` or `{changed: false, reason}` and may be async. It is loaded in the editor realm beside the game, so it may `import()` the game's own modules to resolve what only a running game knows (a level writer asks the game`s own spatial lookup which cell a moved object landed in, and refuses \"outside the level\" rather than writing data the game would read back wrong). It NEVER fabricates: a record it cannot address, or a property it does not model, is a named refusal. An object is anchored to a record by carrying `userData.volterRecordIndex` \u2014 the game declares that identity itself (a recorded patch or a shim); the host never infers one."
|
|
13832
|
-
),
|
|
13833
|
-
assets: external_exports.record(external_exports.string(), external_exports.string()).optional().describe(
|
|
13834
|
-
"Path-substring -> served-URL rewrites for this ingested game (IngestGame.assets today)"
|
|
13835
|
-
),
|
|
13836
|
-
moduleAliases: external_exports.record(external_exports.string(), external_exports.string()).optional().describe(
|
|
13837
|
-
"The game's OWN bundler path aliases, restated as a mounting fact so its source resolves unedited. A game built with its own Vite/webpack config routinely imports itself through an alias (`~/lib/config`, `@/store/x`); the editor boots Vite from the ENGINE's config and never reads a game's own, so without this every such import is an unresolvable specifier and the mount dies at transform time. Key = the specifier PREFIX exactly as the game writes it (\"~/\"); value = the repo-root-relative directory it means (\"/vendor/games/<id>/src/\"). SELF-SCOPING: the host honors an entry only for importers inside the vendored game folder the value points into, so one game's alias can never capture another module's import. Rewriting the game's own imports instead would be a large non-seam-shaped diff against unmodified source \u2014 this declares the fact rather than editing it away."
|
|
13838
|
-
),
|
|
13839
|
-
domStubs: external_exports.array(external_exports.string()).optional().describe(
|
|
13840
|
-
"DOM API stub ids this ingested game requires to run headlessly/in-realm"
|
|
13841
|
-
),
|
|
13842
|
-
captureTimeoutMs: external_exports.number().optional().describe(
|
|
13843
|
-
"How long the host waits for this game's first captured frame before the mount FAILS by name. A game that needs a long boot (streamed world assets, a menu the player must clear) raises it; the default is 10s."
|
|
13844
|
-
)
|
|
13845
|
-
}).strict().describe(
|
|
13846
|
-
"Ingest adapter configuration for an unmodified game (a repo-vendored game or your own external folder)"
|
|
13783
|
+
var PROJECT_MANIFEST_VERSION = 2;
|
|
13784
|
+
var RootAdapterSchema = external_exports.union([
|
|
13785
|
+
external_exports.enum(["stage", "canvas", "dom"]),
|
|
13786
|
+
external_exports.object({
|
|
13787
|
+
module: external_exports.string().describe("Project-folder-relative path to a custom adapter module (trust boundary)"),
|
|
13788
|
+
surface: external_exports.enum(["stage", "canvas", "dom"]).describe("Native surface exposed by this custom adapter contract")
|
|
13789
|
+
}).strict(),
|
|
13790
|
+
external_exports.object({
|
|
13791
|
+
surface: external_exports.enum(["stage", "canvas", "dom"]).describe("Native surface captured from the unmodified project"),
|
|
13792
|
+
ingest: external_exports.object({
|
|
13793
|
+
dataWriter: external_exports.string().optional().describe(
|
|
13794
|
+
"Project-relative path to a HOST-ADDED ES module that writes this project's own DATA file back \u2014 the sibling of a source write for a project whose authorable truth is not source. A level-based project places its enemies, pickups and objectives in binary records inside a level file, reaching no source literal, so an authored move of one is an edit to that file and nothing else can write it. The module declares two exports and the host knows nothing else about it: `dataFile` (a project-relative string \u2014 the ONE file this writer edits) and `planDataEdit(bytes, {record, property, baseline, next})`, which returns `{changed: true, bytes}` or `{changed: false, reason}` and may be async. It is loaded in the editor realm beside the project, so it may `import()` the project's own modules to resolve what only a running project knows (a level writer asks the project`s own spatial lookup which cell a moved object landed in, and refuses \"outside the level\" rather than writing data the project would read back wrong). It NEVER fabricates: a record it cannot address, or a property it does not model, is a named refusal. An object is anchored to a record by carrying `userData.volterRecordIndex` \u2014 the project declares that identity itself (a recorded patch or a shim); the host never infers one."
|
|
13795
|
+
),
|
|
13796
|
+
assets: external_exports.record(external_exports.string(), external_exports.string()).optional().describe(
|
|
13797
|
+
"Path-substring -> served-URL rewrites for this ingested project"
|
|
13798
|
+
),
|
|
13799
|
+
moduleAliases: external_exports.record(external_exports.string(), external_exports.string()).optional().describe(
|
|
13800
|
+
"The project's OWN bundler path aliases, restated as a mounting fact so its source resolves unedited. A project built with its own Vite/webpack config routinely imports itself through an alias (`~/lib/config`, `@/store/x`); the editor boots Vite from the ENGINE's config and never reads a project's own, so without this every such import is an unresolvable specifier and the mount dies at transform time. Key = the specifier PREFIX exactly as the project writes it (\"~/\"); value = the repo-root-relative directory it means (\"/vendor/<id>/src/\"). SELF-SCOPING: the host honors an entry only for importers inside the vendored folder the value points into, so one project's alias can never capture another module's import. Rewriting the project's own imports instead would be a large non-seam-shaped diff against unmodified source \u2014 this declares the fact rather than editing it away."
|
|
13801
|
+
),
|
|
13802
|
+
domStubs: external_exports.array(external_exports.string()).optional().describe(
|
|
13803
|
+
"DOM API stub ids this ingested project requires to run headlessly/in-realm"
|
|
13804
|
+
),
|
|
13805
|
+
captureTimeoutMs: external_exports.number().optional().describe(
|
|
13806
|
+
"How long the host waits for this project's first captured frame before the mount FAILS by name. A project that needs a long boot (streamed world assets, a menu the player must clear) raises it; the default is 10s."
|
|
13847
13807
|
)
|
|
13848
|
-
}).strict()
|
|
13849
|
-
|
|
13850
|
-
)
|
|
13851
|
-
|
|
13808
|
+
}).strict().describe(
|
|
13809
|
+
"Ingest adapter configuration for an unmodified project (a repo-vendored one or your own external folder)"
|
|
13810
|
+
)
|
|
13811
|
+
}).strict()
|
|
13812
|
+
]).describe(
|
|
13813
|
+
"Root adapter identity: built-in 'stage'/'canvas'/'dom' (what the host hands the root \u2014 'canvas' covers any canvas library or raw WebGL, 'dom' covers React/Vue/plain HTML), a custom { module, surface } adapter, or an { ingest, surface } adapter for an unmodified project."
|
|
13852
13814
|
);
|
|
13853
13815
|
var AdapterRootSchema = external_exports.object({
|
|
13854
13816
|
id: external_exports.string().describe(
|
|
13855
|
-
"Unique id for this root within the manifest (enforced-unique, D-V6 \u2014
|
|
13817
|
+
"Unique id for this root within the manifest (enforced-unique, D-V6 \u2014 ProjectManifestSchema.roots rejects duplicates)"
|
|
13856
13818
|
),
|
|
13857
13819
|
description: external_exports.string().optional().describe(
|
|
13858
|
-
"Optional one-line description of this root's
|
|
13820
|
+
"Optional one-line description of this root's content"
|
|
13859
13821
|
),
|
|
13860
13822
|
adapter: RootAdapterSchema.describe(
|
|
13861
13823
|
"This root's adapter and sole rendering/lifecycle discriminator"
|
|
13862
13824
|
),
|
|
13863
13825
|
entry: external_exports.string().optional().describe(
|
|
13864
|
-
"Module exporting a world root \u2014 a TSX
|
|
13826
|
+
"Module exporting a world root \u2014 a TSX component, which the built-in stage dialect renders, or a setup()/adapter (stage), or a React component (dom). Required for every built-in adapter root."
|
|
13865
13827
|
),
|
|
13866
13828
|
styles: external_exports.array(external_exports.string()).optional().describe(
|
|
13867
|
-
"Project-root-relative CSS files this root's mount needs \u2014 the PAGE-level stylesheet a
|
|
13829
|
+
"Project-root-relative CSS files this root's mount needs \u2014 the PAGE-level stylesheet a project written to own a browser tab keeps its layout in (an ingested project is the standing case: its own entry imported the sheet, the host shim that replaces that entry cannot, because `html`/`body`/`*` rules would restyle the editor). Declared here, the editor serves each file rewritten to apply ONLY inside the container it mounts the root's DOM in (`@scope`; packages/sdk/src/scoped-project-css.ts), so the HUD is styled on the UI board's story cards and on the play surface without the editor seeing a single one of those rules. The files themselves are never modified."
|
|
13868
13830
|
),
|
|
13869
13831
|
world: external_exports.object({
|
|
13870
|
-
entry: external_exports.string().describe("Project-relative path to the
|
|
13832
|
+
entry: external_exports.string().describe("Project-relative path to the project's OWN module exporting that component"),
|
|
13871
13833
|
export: external_exports.string().optional().describe(
|
|
13872
13834
|
"Named export to read from that module; omit when the module default-exports it"
|
|
13873
13835
|
)
|
|
13874
13836
|
}).strict().optional().describe(
|
|
13875
|
-
"The component this root's WORLD is, in the
|
|
13837
|
+
"The component this root's WORLD is, in the project's own source. Two readers, and they mount different things: the EDITOR mounts THIS component alone as the root's design-time document, while `entry` above stays what PLAY mounts (the whole project \u2014 its own composition, its own HUD, its own loop). It sits on the ROOT rather than inside any one adapter because the split it names is not about ingest: a project whose runtime entry is a SHELL over the thing an author actually edits has this shape whether the source is vendored or first-party. A project whose world is not a separate component omits this and keeps mounting through `entry` in both modes."
|
|
13876
13838
|
),
|
|
13877
13839
|
zOrder: external_exports.number().int().default(0).describe("Canvas stacking order; ties broken by array order"),
|
|
13878
13840
|
pausable: external_exports.boolean().default(true).describe("Whether play-mode pause/step applies to this root"),
|
|
@@ -13883,41 +13845,39 @@ var AdapterRootSchema = external_exports.object({
|
|
|
13883
13845
|
function rootMedium(root) {
|
|
13884
13846
|
return typeof root.adapter === "string" ? root.adapter : root.adapter.surface;
|
|
13885
13847
|
}
|
|
13886
|
-
var LearnKindSchema = external_exports.enum(["starter", "feature", "sample-
|
|
13887
|
-
"Content kind
|
|
13848
|
+
var LearnKindSchema = external_exports.enum(["starter", "feature", "sample-project", "lesson-companion"]).describe(
|
|
13849
|
+
"Content kind: starter (minimal per-genre starting point), feature (demonstrates a subsystem), sample-project (a complete project as an architectural reference), lesson-companion (exists to back a Learn-site lesson)"
|
|
13888
13850
|
);
|
|
13889
13851
|
var LearnDifficultySchema = external_exports.enum(["beginner", "intermediate", "advanced"]).describe("Learner-facing difficulty rating");
|
|
13890
13852
|
var LearnMetadataSchema = external_exports.object({
|
|
13891
13853
|
kind: LearnKindSchema,
|
|
13892
|
-
title: external_exports.string().min(1).describe("Learner-facing display title
|
|
13893
|
-
summary: external_exports.string().min(1).describe("One-sentence learner-facing summary
|
|
13854
|
+
title: external_exports.string().min(1).describe("Learner-facing display title"),
|
|
13855
|
+
summary: external_exports.string().min(1).describe("One-sentence learner-facing summary"),
|
|
13894
13856
|
difficulty: LearnDifficultySchema,
|
|
13895
|
-
features: external_exports.array(external_exports.string().regex(/^[a-z0-9]+(-[a-z0-9]+)*$/, "features tags must be kebab-case")).describe("Short kebab-case
|
|
13857
|
+
features: external_exports.array(external_exports.string().regex(/^[a-z0-9]+(-[a-z0-9]+)*$/, "features tags must be kebab-case")).describe("Short kebab-case tags describing project features"),
|
|
13896
13858
|
thumbnail: external_exports.string().optional().describe(
|
|
13897
|
-
"Optional thumbnail image reference, PROJECT-relative (canonical path: learn/thumbnail.png
|
|
13859
|
+
"Optional thumbnail image reference, PROJECT-relative (canonical path: learn/thumbnail.png)"
|
|
13898
13860
|
),
|
|
13899
13861
|
preview: external_exports.string().optional().describe(
|
|
13900
|
-
"Optional short preview video/loop reference, PROJECT-relative (canonical path: learn/preview.mp4
|
|
13862
|
+
"Optional short preview video/loop reference, PROJECT-relative (canonical path: learn/preview.mp4)"
|
|
13901
13863
|
),
|
|
13902
13864
|
lesson: external_exports.string().optional().describe(
|
|
13903
13865
|
"Optional Learn-site lesson URL that teaches this project 1:1 (e.g. https://example.com/manual/physics/joints/)"
|
|
13904
13866
|
)
|
|
13905
13867
|
}).strict().describe(
|
|
13906
|
-
"Learner-facing metadata
|
|
13868
|
+
"Learner-facing metadata carried by example project manifests."
|
|
13907
13869
|
);
|
|
13908
|
-
var
|
|
13909
|
-
id: external_exports.string().min(1).describe("Configuration id, unique in the manifest"),
|
|
13910
|
-
kind: external_exports.string().min(1).describe("A registered run kind")
|
|
13911
|
-
}).passthrough();
|
|
13912
|
-
var GameManifestSchema = external_exports.object({
|
|
13870
|
+
var ProjectManifestSchema = external_exports.object({
|
|
13913
13871
|
$schema: external_exports.string().optional().describe("Optional JSON Schema URI for editor autocomplete and validation"),
|
|
13914
|
-
manifestVersion: external_exports.
|
|
13915
|
-
|
|
13872
|
+
manifestVersion: external_exports.number().int().describe(
|
|
13873
|
+
`The manifest format version the project was written with (this editor writes ${PROJECT_MANIFEST_VERSION}); a manifest is read by its shape, never refused for its number`
|
|
13874
|
+
),
|
|
13875
|
+
name: external_exports.string().describe("Project display name"),
|
|
13916
13876
|
appId: external_exports.string().optional().describe("Stable reverse-domain application id used by packaged targets"),
|
|
13917
|
-
version: external_exports.string().describe("The
|
|
13877
|
+
version: external_exports.string().describe("The project's own version"),
|
|
13918
13878
|
engine: external_exports.object({
|
|
13919
13879
|
version: external_exports.string().describe(
|
|
13920
|
-
"Exact @volter/project semver this
|
|
13880
|
+
"Exact @volter/project semver this project was scaffolded/last upgraded against \u2014 an identity pin, not a range"
|
|
13921
13881
|
)
|
|
13922
13882
|
}).strict().describe("Engine version pin"),
|
|
13923
13883
|
roots: external_exports.array(AdapterRootSchema).superRefine((roots, ctx) => {
|
|
@@ -13928,7 +13888,7 @@ var GameManifestSchema = external_exports.object({
|
|
|
13928
13888
|
const idsText = duplicates.map((id) => `"${id}"`).join(", ");
|
|
13929
13889
|
ctx.addIssue({
|
|
13930
13890
|
code: external_exports.ZodIssueCode.custom,
|
|
13931
|
-
message: duplicates.length === 1 ? `
|
|
13891
|
+
message: duplicates.length === 1 ? `Project manifest: duplicate root id ${idsText} \u2014 root ids must be unique across the manifest (enforced-unique).` : `Project manifest: duplicate root ids: ${idsText} \u2014 root ids must be unique across the manifest (enforced-unique).`
|
|
13932
13892
|
});
|
|
13933
13893
|
}
|
|
13934
13894
|
const idsByMedium = /* @__PURE__ */ new Map();
|
|
@@ -13942,11 +13902,11 @@ var GameManifestSchema = external_exports.object({
|
|
|
13942
13902
|
if (ids.length < 2) continue;
|
|
13943
13903
|
ctx.addIssue({
|
|
13944
13904
|
code: external_exports.ZodIssueCode.custom,
|
|
13945
|
-
message: `
|
|
13905
|
+
message: `Project manifest: a project has at most one ${medium} world root \u2014 ${ids.map((id) => `"${id}"`).join(", ")} all occupy the ${medium} surface. Keep one and remove the rest, or move a root to a different medium (stage / canvas / dom); only one root per medium is ever mounted, so a second one's content would never appear.`
|
|
13946
13906
|
});
|
|
13947
13907
|
}
|
|
13948
13908
|
}).describe(
|
|
13949
|
-
"The project's explicit adapter-root composition \u2014 ZERO OR MORE roots, and no implicit root: a project with no roots mounts nothing (a library of models, a folder of documents) and the editor derives its chrome from what IS declared. Root ids are unique, and a project declares at most ONE world root per medium \u2014 one `
|
|
13909
|
+
"The project's explicit adapter-root composition \u2014 ZERO OR MORE roots, and no implicit root: a project with no roots mounts nothing (a library of models, a folder of documents) and the editor derives its chrome from what IS declared. Root ids are unique, and a project declares at most ONE world root per medium \u2014 one `stage`, one `dom`, one canvas-surface root (first-party canvas, canvas ingest and canvas module are the same medium)."
|
|
13950
13910
|
),
|
|
13951
13911
|
authoring: external_exports.object({
|
|
13952
13912
|
hierarchy: external_exports.object({
|
|
@@ -13960,62 +13920,14 @@ var GameManifestSchema = external_exports.object({
|
|
|
13960
13920
|
).optional().describe("Optional editor-only hierarchy groups")
|
|
13961
13921
|
}).strict().optional().describe("Editor projection for native adapter roots")
|
|
13962
13922
|
}).strict().optional().describe("Editor-only authoring metadata; never runtime ownership"),
|
|
13963
|
-
configurations: external_exports.array(ConfigurationEnvelopeSchema).optional().describe(
|
|
13964
|
-
"The project's run configurations \u2014 its ENTRYPOINTS beyond the host mount (`play`): each an id and a registered kind (`process`, `compound`, and whatever a capability registers) with that kind's own fields. The editor's transport and a harness start the same declaration."
|
|
13965
|
-
),
|
|
13966
13923
|
resolution: external_exports.object({
|
|
13967
13924
|
width: external_exports.number().describe("Canvas width in pixels"),
|
|
13968
13925
|
height: external_exports.number().describe("Canvas height in pixels")
|
|
13969
13926
|
}).strict().optional().describe("Canvas resolution"),
|
|
13970
|
-
rendering: external_exports.object({
|
|
13971
|
-
antialias: external_exports.boolean().describe(
|
|
13972
|
-
"Whether every three root is built with a multisampled drawing buffer. This is the ONE render property a world cannot declare for itself (adapter/renderer-config.ts): a WebGL context fixes its sample count at CREATION from this boolean, long before a world mounts, so it belongs to the PROJECT. The runtime reader is mount-manifest.ts, which threads it into createHostRenderer for each three root. WebGL exposes no sample COUNT \u2014 the implementation picks one (4x on every desktop browser measured), so a source engine that authored 8x/16x gets multisampling but not its exact count."
|
|
13973
|
-
)
|
|
13974
|
-
}).strict().optional().describe(
|
|
13975
|
-
"Construction-time renderer properties, which no world can declare after the fact. Everything a world CAN declare (tone mapping, output colour space, clear colour, shadow filter) lives on the world's own renderer config instead."
|
|
13976
|
-
),
|
|
13977
|
-
debug: external_exports.object({
|
|
13978
|
-
allowInProduction: external_exports.boolean().describe(
|
|
13979
|
-
"Allow the ?volter-debug=1 introspection bridge and debug-command invocation in production builds. Default false: the bridge only installs in dev builds. The runtime reader is the debug-bridge installer (D18)."
|
|
13980
|
-
)
|
|
13981
|
-
}).strict().optional().describe(
|
|
13982
|
-
"Debug-bridge production gating (D18) \u2014 governs whether ?volter-debug=1 installs window.__volter outside dev builds."
|
|
13983
|
-
),
|
|
13984
|
-
determinism: external_exports.object({
|
|
13985
|
-
seededRandom: external_exports.boolean().describe(
|
|
13986
|
-
"Declares that ALL gameplay RNG in this project flows through ctx.random (the named-stream seeded PRNG) rather than raw Math.random/Date.now/performance.now. Three runtime enforcers key off this flag: the boot-time seeding reader (mount-manifest.ts seeds ctx.random from defaultSeed/?volter-seed=/explicit config, in that precedence, only when true), the gameplay-rng-ban burn-down scan (test/gameplay-rng-ban.test.ts \u2014 lints this project's src/ for raw RNG/wall-clock calls), and the dev-mode Math.random phase trap (runtime/gameplay-rng-trap.ts \u2014 warns once per call site during a gameplay frame, never throws). Default false: an undeclared project gets no determinism contract at all (that IS the opt-out \u2014 no dead field)."
|
|
13987
|
-
),
|
|
13988
|
-
defaultSeed: external_exports.number().int().optional().describe(
|
|
13989
|
-
"The seed ctx.random boots from when seededRandom is true, unless overridden by ?volter-seed=<int> (the query param always wins over this manifest default) or an even higher-precedence explicit config value a host passes directly. Optional \u2014 omit to fall back to the runtime's own fixed default seed."
|
|
13990
|
-
)
|
|
13991
|
-
}).strict().optional().describe(
|
|
13992
|
-
"Seeded-RNG determinism contract (D15) \u2014 governs whether ctx.random is boot-seeded from a reproducible seed and whether the gameplay-rng-ban scan / dev-mode Math.random phase trap are active for this project."
|
|
13993
|
-
),
|
|
13994
|
-
budget: external_exports.object({
|
|
13995
|
-
frameCpuMsP95: external_exports.number().positive().optional().describe(
|
|
13996
|
-
"Maximum allowed p95 of per-frame CPU time (ms) across the measured frames of a `volter perf` seeded headless run. CPU-side only: headless runs rasterize under SwiftShader, so this is main-thread frame cost, NOT real GPU frame time. Machine-dependent \u2014 prefer the baseline-diff tolerance band for regression gating and use this as a coarse absolute ceiling."
|
|
13997
|
-
),
|
|
13998
|
-
physicsMsP95: external_exports.number().positive().optional().describe(
|
|
13999
|
-
"Maximum allowed p95 of the profiler's `physics` phase time (ms) per fixed-step frame in a `volter perf` run. Same CPU-timing caveats as frameCpuMsP95."
|
|
14000
|
-
),
|
|
14001
|
-
maxEntities: external_exports.number().int().nonnegative().optional().describe(
|
|
14002
|
-
"Maximum allowed entity-tagged scene-graph nodes (nodes carrying userData.entityId) summed across the game's three/canvas worlds at the end of a `volter perf` run. Exact and deterministic under a seed \u2014 no tolerance band."
|
|
14003
|
-
),
|
|
14004
|
-
maxDrawCalls: external_exports.number().int().positive().optional().describe(
|
|
14005
|
-
"Maximum allowed renderer draw calls in any measured frame of a `volter perf` run (the profiler's per-frame render.drawCalls, from renderer.info). Exact and deterministic under a seed."
|
|
14006
|
-
),
|
|
14007
|
-
maxTriangles: external_exports.number().int().positive().optional().describe(
|
|
14008
|
-
"Maximum allowed rendered triangles in any measured frame of a `volter perf` run (the profiler's per-frame render.triangles, from renderer.info). Exact and deterministic under a seed."
|
|
14009
|
-
)
|
|
14010
|
-
}).strict().refine((budget) => Object.values(budget).some((value) => value !== void 0), {
|
|
14011
|
-
message: "Game manifest: `budget` must set at least one metric (frameCpuMsP95, physicsMsP95, maxEntities, maxDrawCalls, maxTriangles) \u2014 an empty budget block gates nothing (the no-dead-fields policy)."
|
|
14012
|
-
}).optional().describe(
|
|
14013
|
-
"Performance budget (W3d, F11 perf regression gates) asserted by `volter perf --assert-budget`: a seeded, fixed-step headless run samples the engine profiler and fails (nonzero exit) when any metric here is exceeded. Only headlessly-measurable metrics are budgetable; real GPU frame time is not (SwiftShader)."
|
|
14014
|
-
),
|
|
14015
13927
|
learn: LearnMetadataSchema.optional().describe(
|
|
14016
|
-
"Optional learner-facing metadata
|
|
13928
|
+
"Optional learner-facing metadata for example projects."
|
|
14017
13929
|
)
|
|
14018
|
-
}).strict().describe("
|
|
13930
|
+
}).strict().describe("Project manifest (volter.project.json) \u2014 the complete v2 project configuration");
|
|
14019
13931
|
|
|
14020
13932
|
// ../project/src/manifest/filename.ts
|
|
14021
13933
|
var MANIFEST_FILENAME = "volter.project.json";
|
|
@@ -14023,14 +13935,16 @@ var MANIFEST_FILENAME = "volter.project.json";
|
|
|
14023
13935
|
// package.json
|
|
14024
13936
|
var package_default = {
|
|
14025
13937
|
name: "@volter/cyclotron",
|
|
13938
|
+
publisher: "volter",
|
|
14026
13939
|
author: "Volter AI, Inc.",
|
|
14027
|
-
version: "0.5.
|
|
13940
|
+
version: "0.5.213",
|
|
14028
13941
|
publishConfig: {
|
|
14029
13942
|
access: "public"
|
|
14030
13943
|
},
|
|
14031
13944
|
type: "module",
|
|
14032
13945
|
engines: {
|
|
14033
|
-
node: ">=
|
|
13946
|
+
node: ">=26.8.1",
|
|
13947
|
+
vscode: "*"
|
|
14034
13948
|
},
|
|
14035
13949
|
license: "AGPL-3.0-only AND GPL-3.0-or-later AND MIT",
|
|
14036
13950
|
description: "A free, open-source game editor by videogame.ai using Blender 5.2 compiled to WebAssembly, Code-OSS, three.js, TypeScript and React.",
|
|
@@ -14065,80 +13979,180 @@ var package_default = {
|
|
|
14065
13979
|
"BUNDLED_NOTICES"
|
|
14066
13980
|
],
|
|
14067
13981
|
scripts: {
|
|
14068
|
-
build: "vite build --config vite.config.ts",
|
|
13982
|
+
build: "npm run build --prefix ../play && vite build --config vite.config.ts",
|
|
14069
13983
|
"build:node": "node scripts/build-node.mjs",
|
|
14070
13984
|
typecheck: "tsc -p tsconfig.node.json",
|
|
14071
|
-
test: "npm run build:node && node --test test/first-run.test.mjs"
|
|
13985
|
+
test: "npm run build:node && node --test test/first-run.test.mjs test/cli-args.test.mjs test/play-lost-answer.test.mjs"
|
|
14072
13986
|
},
|
|
14073
|
-
|
|
14074
|
-
|
|
14075
|
-
|
|
14076
|
-
|
|
14077
|
-
|
|
14078
|
-
|
|
14079
|
-
|
|
14080
|
-
|
|
14081
|
-
|
|
14082
|
-
|
|
14083
|
-
|
|
14084
|
-
|
|
14085
|
-
|
|
14086
|
-
|
|
14087
|
-
|
|
14088
|
-
|
|
14089
|
-
|
|
14090
|
-
|
|
14091
|
-
|
|
14092
|
-
|
|
13987
|
+
contributes: {
|
|
13988
|
+
volter: {
|
|
13989
|
+
looks: [
|
|
13990
|
+
"./src/styles/maya.style.ts",
|
|
13991
|
+
"./src/styles/substance.style.ts"
|
|
13992
|
+
],
|
|
13993
|
+
product: {
|
|
13994
|
+
entry: "./src/index.ts",
|
|
13995
|
+
composes: [
|
|
13996
|
+
"@volter/editor-blender",
|
|
13997
|
+
"@volter/editor-threejs",
|
|
13998
|
+
"@volter/play",
|
|
13999
|
+
"@volter/chat"
|
|
14000
|
+
],
|
|
14001
|
+
displayName: "Volter Cyclotron",
|
|
14002
|
+
install: "npx @volter/cyclotron create my-game",
|
|
14003
|
+
colorTheme: "dark",
|
|
14004
|
+
upgrade: true,
|
|
14005
|
+
adapterRequired: true,
|
|
14006
|
+
workbench: {
|
|
14007
|
+
"darwin-arm64": {
|
|
14008
|
+
release: "cyclotron-624490512f0c-0ba7394f05b2-darwin-arm64",
|
|
14009
|
+
tarballSha256: "4b752c3abd5595e2e4f7ae4d750b78d2f3c1a0da98140a8ee04c89893689a836"
|
|
14010
|
+
},
|
|
14011
|
+
"linux-x64": {
|
|
14012
|
+
release: "cyclotron-624490512f0c-0ba7394f05b2-linux-x64",
|
|
14013
|
+
tarballSha256: "6028c6d71df09bbb67ee90b936fc80fdc429d5ef0b1c78db07a6c39d9a4b2e1c"
|
|
14014
|
+
},
|
|
14015
|
+
"win32-x64": {
|
|
14016
|
+
release: "cyclotron-624490512f0c-0ba7394f05b2-win32-x64",
|
|
14017
|
+
tarballSha256: "57e8fa6dbc439de5fba7da35fa17c710644d465842bd967c8ba7f1e73fcbee2f"
|
|
14018
|
+
}
|
|
14093
14019
|
}
|
|
14094
14020
|
}
|
|
14095
14021
|
}
|
|
14096
14022
|
},
|
|
14097
14023
|
dependencies: {
|
|
14098
|
-
"@volter/editor-core": "0.5.
|
|
14099
|
-
"@volter/editor-blender": "0.1.
|
|
14100
|
-
"@volter/editor-threejs": "0.5.
|
|
14101
|
-
"@volter/
|
|
14102
|
-
"@volter/
|
|
14103
|
-
"@volter/
|
|
14104
|
-
"@volter/
|
|
14024
|
+
"@volter/editor-core": "0.5.213",
|
|
14025
|
+
"@volter/editor-blender": "0.1.152",
|
|
14026
|
+
"@volter/editor-threejs": "0.5.213",
|
|
14027
|
+
"@volter/chat": "0.5.213",
|
|
14028
|
+
"@volter/blender-engine": "0.1.150",
|
|
14029
|
+
"@volter/project": "0.5.213",
|
|
14030
|
+
"@volter/sdk": "0.5.213",
|
|
14031
|
+
"@volter/live": "0.5.213",
|
|
14032
|
+
"@volter/play": "0.5.213",
|
|
14033
|
+
three: "^0.186.1",
|
|
14105
14034
|
"@modelcontextprotocol/sdk": "1.32.1",
|
|
14106
14035
|
typescript: "5.9.3",
|
|
14107
14036
|
undici: "7.29.1"
|
|
14108
14037
|
},
|
|
14038
|
+
devDependencies: {
|
|
14039
|
+
esbuild: "0.25.12"
|
|
14040
|
+
},
|
|
14109
14041
|
bin: {
|
|
14110
14042
|
cyclotron: "./dist-node/cli.js"
|
|
14111
14043
|
}
|
|
14112
14044
|
};
|
|
14113
14045
|
|
|
14114
|
-
// node/
|
|
14046
|
+
// node/identity.ts
|
|
14047
|
+
var COMMAND = Object.keys(package_default.bin)[0];
|
|
14048
|
+
var DISPLAY_NAME = package_default.contributes.volter.product.displayName;
|
|
14049
|
+
|
|
14050
|
+
// node/std.ts
|
|
14051
|
+
import { spawn } from "node:child_process";
|
|
14052
|
+
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
14053
|
+
import { dirname, join, relative, resolve } from "node:path";
|
|
14054
|
+
import { fileURLToPath } from "node:url";
|
|
14055
|
+
import { workbenchProductId } from "@volter/live/product-locator";
|
|
14115
14056
|
var productRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
14057
|
+
function checkoutRoot() {
|
|
14058
|
+
for (let dir = productRoot; dirname(dir) !== dir; dir = dirname(dir))
|
|
14059
|
+
if (existsSync(join(dir, "packages", workbenchProductId(package_default.name), "package.json"))) return dir;
|
|
14060
|
+
return null;
|
|
14061
|
+
}
|
|
14062
|
+
function pinnedStd(verb) {
|
|
14063
|
+
const root = checkoutRoot();
|
|
14064
|
+
if (root === null)
|
|
14065
|
+
throw new Error(`${verb} makes a volter-ai/std game with the std a Cyclotron checkout pins (external/std); this Cyclotron is installed from npm and carries no std yet. Run ${verb} from a checkout of volter-ai/editor.`);
|
|
14066
|
+
const std = join(root, "external", "std");
|
|
14067
|
+
const devTools = join(std, "packages", "std-dev");
|
|
14068
|
+
if (!existsSync(join(devTools, "package.json")))
|
|
14069
|
+
throw new Error(`${verb}: the pinned std is not checked out at ${std}: run \`git submodule update --init external/std\` in ${root}.`);
|
|
14070
|
+
if (!existsSync(join(devTools, "dist", "cli.js")) || !existsSync(join(devTools, "template", "std.json")))
|
|
14071
|
+
throw new Error(`${verb}: the pinned std at ${std} is not built: run \`pnpm install\` and \`pnpm build\` there (Node 24 and pnpm 12.15 or newer).`);
|
|
14072
|
+
return join(devTools, "bin", "std.js");
|
|
14073
|
+
}
|
|
14074
|
+
function run(program, args, cwd, what) {
|
|
14075
|
+
return new Promise((done, fail) => {
|
|
14076
|
+
const windows = process.platform === "win32" && program !== process.execPath;
|
|
14077
|
+
const child = windows ? spawn([program, ...args].map((arg) => JSON.stringify(arg)).join(" "), { cwd, stdio: "inherit", windowsHide: true, shell: true }) : spawn(program, args, { cwd, stdio: "inherit", windowsHide: true });
|
|
14078
|
+
child.once("error", (error48) => fail(new Error(`${what} could not start: ${error48.message}`)));
|
|
14079
|
+
child.once("exit", (code) => code === 0 ? done() : fail(new Error(`${what} ended with code ${String(code)}.`)));
|
|
14080
|
+
});
|
|
14081
|
+
}
|
|
14082
|
+
function stdNew(std, folder, name) {
|
|
14083
|
+
return run(process.execPath, [std, "new", folder, "--name", name], dirname(folder), "std new");
|
|
14084
|
+
}
|
|
14085
|
+
function pnpmInstall(project) {
|
|
14086
|
+
console.log("Installing the game's dependencies with pnpm\u2026");
|
|
14087
|
+
return run("pnpm", ["install", "--config.confirmModulesPurge=false"], project, "pnpm install");
|
|
14088
|
+
}
|
|
14089
|
+
function checkoutLinks(names) {
|
|
14090
|
+
const root = checkoutRoot();
|
|
14091
|
+
if (root === null) throw new Error("checkoutLinks: Cyclotron is not running from a checkout.");
|
|
14092
|
+
const folders = /* @__PURE__ */ new Map();
|
|
14093
|
+
for (const folder of readdirSync(join(root, "packages"))) {
|
|
14094
|
+
const manifest = join(root, "packages", folder, "package.json");
|
|
14095
|
+
if (!existsSync(manifest)) continue;
|
|
14096
|
+
const { name } = JSON.parse(readFileSync(manifest, "utf8"));
|
|
14097
|
+
if (typeof name === "string") folders.set(name, join(root, "packages", folder));
|
|
14098
|
+
}
|
|
14099
|
+
return Object.fromEntries(names.map((name) => {
|
|
14100
|
+
const folder = folders.get(name);
|
|
14101
|
+
if (folder === void 0) throw new Error(`The checkout at ${root} has no package ${name}.`);
|
|
14102
|
+
return [name, `link:${folder.split("\\").join("/")}`];
|
|
14103
|
+
}));
|
|
14104
|
+
}
|
|
14105
|
+
|
|
14106
|
+
// node/create.ts
|
|
14107
|
+
var productRoot2 = resolve2(dirname2(fileURLToPath2(import.meta.url)), "..");
|
|
14116
14108
|
var UPGRADING = {
|
|
14117
14109
|
packageName: package_default.name,
|
|
14118
|
-
command:
|
|
14119
|
-
dir:
|
|
14120
|
-
|
|
14121
|
-
|
|
14122
|
-
|
|
14123
|
-
|
|
14124
|
-
|
|
14125
|
-
|
|
14126
|
-
|
|
14127
|
-
|
|
14110
|
+
command: COMMAND,
|
|
14111
|
+
dir: productRoot2
|
|
14112
|
+
};
|
|
14113
|
+
var PLAY_PACKAGES = (kit) => ({
|
|
14114
|
+
"@volter/play": kit,
|
|
14115
|
+
"@volter/editor-ui": kit,
|
|
14116
|
+
"@volter/editor-react": kit,
|
|
14117
|
+
"@volter/editor-movie": kit
|
|
14118
|
+
});
|
|
14119
|
+
var EXAMPLES = {
|
|
14120
|
+
"canyon-comet": {
|
|
14121
|
+
name: "Canyon Comet",
|
|
14122
|
+
description: "A three-lap kart race through a desert canyon: a std game, its race the room's, its HUD React, with win and lose bots.",
|
|
14123
|
+
roots: [{ id: "ui", adapter: "dom", entry: "client/hud/race-hud.tsx", zOrder: 1 }],
|
|
14124
|
+
resolution: { width: 1672, height: 941 },
|
|
14125
|
+
// (i18next: the HUD's words are keys in locales/, read with t())
|
|
14126
|
+
dependencies: { i18next: "~26.7.2" },
|
|
14127
|
+
/** The goal the game's `play` scripts name in place of the starter's. */
|
|
14128
|
+
goal: "win",
|
|
14129
|
+
/** std's starter files the example has no use for: its main level, its walking characters and its chat. */
|
|
14130
|
+
removes: ["levels/MainLevel.tsx", "client/characters.tsx", "client/chat.tsx"]
|
|
14131
|
+
}
|
|
14132
|
+
};
|
|
14133
|
+
var isExample = (id) => Object.hasOwn(EXAMPLES, id);
|
|
14134
|
+
var FILM = {
|
|
14135
|
+
graphicsRoot: { id: "graphics", adapter: "dom", entry: "src/graphics/title.tsx", zOrder: 1 },
|
|
14128
14136
|
resolution: { width: 1280, height: 720 },
|
|
14129
|
-
dependencies: { react: "~19.2.4", "react-dom": "~19.2.4"
|
|
14130
|
-
|
|
14131
|
-
|
|
14132
|
-
/** The
|
|
14133
|
-
|
|
14134
|
-
}
|
|
14135
|
-
|
|
14136
|
-
|
|
14137
|
-
|
|
14138
|
-
|
|
14139
|
-
|
|
14140
|
-
|
|
14141
|
-
|
|
14137
|
+
dependencies: { react: "~19.2.4", "react-dom": "~19.2.4" },
|
|
14138
|
+
devDependencies: (kit) => ({ "@volter/editor-film": kit }),
|
|
14139
|
+
regionIncludes: " regionIncludes: { graphics: { include: ['src/graphics/**/*.tsx'] } },\n",
|
|
14140
|
+
/** The film's documents beside its models (`@volter/editor-film`'s finder), the script open first. */
|
|
14141
|
+
defaultDocument: "film:script.fountain",
|
|
14142
|
+
finder: ", { finder: 'filmFiles', include: ['script.fountain', 'shots.json', 'cut.json'] }",
|
|
14143
|
+
example: "film",
|
|
14144
|
+
skills: "film-skills"
|
|
14145
|
+
};
|
|
14146
|
+
async function copyStarterTree(folder, to) {
|
|
14147
|
+
const from = join2(productRoot2, "starter", folder);
|
|
14148
|
+
for (const entry of await readdir(from, { recursive: true, withFileTypes: true })) {
|
|
14149
|
+
if (!entry.isFile()) continue;
|
|
14150
|
+
const source = join2(entry.parentPath, entry.name);
|
|
14151
|
+
const target = join2(to, relative2(from, source));
|
|
14152
|
+
await mkdir(dirname2(target), { recursive: true });
|
|
14153
|
+
await copyFile(source, target, constants.COPYFILE_EXCL);
|
|
14154
|
+
}
|
|
14155
|
+
}
|
|
14142
14156
|
var PROJECT_TSCONFIG = JSON.stringify({
|
|
14143
14157
|
compilerOptions: {
|
|
14144
14158
|
target: "ES2022",
|
|
@@ -14154,26 +14168,36 @@ var PROJECT_TSCONFIG = JSON.stringify({
|
|
|
14154
14168
|
include: ["src/**/*.ts", "src/**/*.tsx"]
|
|
14155
14169
|
}, null, 2) + "\n";
|
|
14156
14170
|
async function productVersions() {
|
|
14157
|
-
const product = JSON.parse(await readFile(
|
|
14171
|
+
const product = JSON.parse(await readFile(join2(productRoot2, "package.json"), "utf8"));
|
|
14158
14172
|
return { product, kit: product.dependencies["@volter/project"] };
|
|
14159
14173
|
}
|
|
14160
14174
|
var declaration = {
|
|
14161
|
-
product:
|
|
14175
|
+
product: package_default.name,
|
|
14162
14176
|
templates: [
|
|
14163
14177
|
{ id: "models", name: "Models", description: "Blender modeling with a starter cube." },
|
|
14164
|
-
{ id: "
|
|
14178
|
+
{ id: "game", name: "Game", description: "A volter-ai/std game (three.js, React Three Fiber, Rapier and Colyseus), made by std new from the std this checkout pins." },
|
|
14179
|
+
{ id: "film", name: "Film", description: "A short film as files: story, script, shots, takes, boards, music, graphics and the cut, each checked by npm run check." }
|
|
14165
14180
|
],
|
|
14181
|
+
examples: Object.entries(EXAMPLES).map(([id, example]) => ({ id, name: example.name, description: example.description })),
|
|
14166
14182
|
async create(request) {
|
|
14183
|
+
if (request.example !== void 0 && request.template !== void 0) throw new Error("create makes a project from a template or an example, not both.");
|
|
14184
|
+
if (request.example !== void 0 && !isExample(request.example))
|
|
14185
|
+
throw new Error(`Unknown Cyclotron example ${JSON.stringify(request.example)}: ${Object.keys(EXAMPLES).join(", ")}.`);
|
|
14186
|
+
if (request.template === "game" || request.example !== void 0) {
|
|
14187
|
+
const result2 = await writeGame(request);
|
|
14188
|
+
await pnpmInstall(result2.targetDir);
|
|
14189
|
+
return result2;
|
|
14190
|
+
}
|
|
14167
14191
|
const result = await writeProject(request);
|
|
14168
14192
|
const checkout = checkoutNodeModules();
|
|
14169
14193
|
if (checkout) {
|
|
14170
|
-
symlinkSync(checkout,
|
|
14194
|
+
symlinkSync(checkout, join2(result.targetDir, "node_modules"), "junction");
|
|
14171
14195
|
return result;
|
|
14172
14196
|
}
|
|
14173
14197
|
console.log("Installing project dependencies\u2026");
|
|
14174
14198
|
await new Promise((done, fail) => {
|
|
14175
14199
|
const windows = process.platform === "win32";
|
|
14176
|
-
const child = windows ?
|
|
14200
|
+
const child = windows ? spawn2("npm install --no-audit --no-fund", { windowsHide: true, cwd: result.targetDir, stdio: "inherit", shell: true }) : spawn2("npm", ["install", "--no-audit", "--no-fund"], { windowsHide: true, cwd: result.targetDir, stdio: "inherit" });
|
|
14177
14201
|
child.once("error", fail);
|
|
14178
14202
|
child.once("exit", (code) => code === 0 ? done() : fail(new Error(`Dependency installation failed (${code}); project source remains at ${result.targetDir}.`)));
|
|
14179
14203
|
});
|
|
@@ -14181,122 +14205,170 @@ var declaration = {
|
|
|
14181
14205
|
}
|
|
14182
14206
|
};
|
|
14183
14207
|
function checkoutNodeModules() {
|
|
14184
|
-
|
|
14185
|
-
|
|
14186
|
-
|
|
14187
|
-
|
|
14188
|
-
|
|
14189
|
-
|
|
14190
|
-
return
|
|
14208
|
+
const root = checkoutRoot();
|
|
14209
|
+
if (root === null) return null;
|
|
14210
|
+
const nodeModules = join2(root, "node_modules");
|
|
14211
|
+
return existsSync2(join2(nodeModules, "@volter", "project", "package.json")) ? nodeModules : null;
|
|
14212
|
+
}
|
|
14213
|
+
function cyclotronPackages(product, kit) {
|
|
14214
|
+
return {
|
|
14215
|
+
[package_default.name]: product.version,
|
|
14216
|
+
"@volter/project": kit,
|
|
14217
|
+
"@volter/editor-blender": product.dependencies["@volter/editor-blender"],
|
|
14218
|
+
...PLAY_PACKAGES(kit)
|
|
14219
|
+
};
|
|
14220
|
+
}
|
|
14221
|
+
async function writeCyclotronFiles(target) {
|
|
14222
|
+
const write = (path, content) => writeFile(join2(target, path), content, { flag: "wx" });
|
|
14223
|
+
const mcpEntry = [
|
|
14224
|
+
"const { dirname, resolve } = require('node:path');",
|
|
14225
|
+
"const { pathToFileURL } = require('node:url');",
|
|
14226
|
+
`const manifest = require.resolve('${package_default.name}/package.json');`,
|
|
14227
|
+
`const cli = resolve(dirname(manifest), require(manifest).bin['${COMMAND}']);`,
|
|
14228
|
+
"process.argv.splice(1, 0, cli);",
|
|
14229
|
+
"import(pathToFileURL(cli).href);"
|
|
14230
|
+
].join(" ");
|
|
14231
|
+
const blenderMcp = { command: "node", args: ["--input-type=commonjs", "--eval", mcpEntry, "--", "blender-mcp"] };
|
|
14232
|
+
await write(".mcp.json", JSON.stringify({ mcpServers: { blender: blenderMcp } }, null, 2) + "\n");
|
|
14233
|
+
await mkdir(join2(target, ".codex"));
|
|
14234
|
+
await write(".codex/config.toml", [
|
|
14235
|
+
"[mcp_servers.blender]",
|
|
14236
|
+
`command = ${JSON.stringify(blenderMcp.command)}`,
|
|
14237
|
+
`args = [${blenderMcp.args.map((arg) => JSON.stringify(arg)).join(", ")}]`,
|
|
14238
|
+
""
|
|
14239
|
+
].join("\n"));
|
|
14240
|
+
for (const file2 of ["AGENTS.md", "CLAUDE.md"])
|
|
14241
|
+
await copyFile(join2(productRoot2, "starter", file2), join2(target, file2), constants.COPYFILE_EXCL);
|
|
14242
|
+
}
|
|
14243
|
+
var GAME_LEVEL = "game";
|
|
14244
|
+
var CYCLOTRON_IGNORES = ["node_modules", ".volter/", "logs/"];
|
|
14245
|
+
async function writeGame({ name, targetDir, example: exampleId }) {
|
|
14246
|
+
if (!name.trim()) throw new Error("A project name is required.");
|
|
14247
|
+
const target = resolve2(targetDir);
|
|
14248
|
+
const example = exampleId !== void 0 && isExample(exampleId) ? EXAMPLES[exampleId] : void 0;
|
|
14249
|
+
const std = pinnedStd(example === void 0 ? "create --template game" : `create --example ${exampleId}`);
|
|
14250
|
+
if (existsSync2(target)) throw Object.assign(new Error(`${target} already exists: create makes a new folder.`), { code: "EEXIST" });
|
|
14251
|
+
await mkdir(dirname2(target), { recursive: true });
|
|
14252
|
+
await stdNew(std, target, name);
|
|
14253
|
+
const from = example === void 0 ? join2(productRoot2, "starter", GAME_LEVEL) : join2(productRoot2, "examples", exampleId);
|
|
14254
|
+
for (const entry of await readdir(from, { recursive: true, withFileTypes: true })) {
|
|
14255
|
+
if (!entry.isFile()) continue;
|
|
14256
|
+
const source = join2(entry.parentPath, entry.name);
|
|
14257
|
+
await mkdir(dirname2(join2(target, relative2(from, source))), { recursive: true });
|
|
14258
|
+
await copyFile(source, join2(target, relative2(from, source)));
|
|
14259
|
+
}
|
|
14260
|
+
for (const path of example?.removes ?? []) await rm(join2(target, path));
|
|
14261
|
+
const { product, kit } = await productVersions();
|
|
14262
|
+
const manifest = ProjectManifestSchema.parse({
|
|
14263
|
+
manifestVersion: 2,
|
|
14264
|
+
name,
|
|
14265
|
+
version: "0.1.0",
|
|
14266
|
+
engine: { version: product.dependencies["@volter/editor-core"] },
|
|
14267
|
+
roots: example?.roots ?? [],
|
|
14268
|
+
...example === void 0 ? {} : { resolution: example.resolution }
|
|
14269
|
+
});
|
|
14270
|
+
await writeFile(join2(target, MANIFEST_FILENAME), JSON.stringify(manifest, null, 2) + "\n", { flag: "wx" });
|
|
14271
|
+
await writeCyclotronFiles(target);
|
|
14272
|
+
const ignored = (await readFile(join2(target, ".gitignore"), "utf8")).split(/\r?\n/);
|
|
14273
|
+
const missing = CYCLOTRON_IGNORES.filter((line) => !ignored.includes(line));
|
|
14274
|
+
if (missing.length > 0) await appendFile(join2(target, ".gitignore"), `# Cyclotron's own files.
|
|
14275
|
+
${missing.join("\n")}
|
|
14276
|
+
`);
|
|
14277
|
+
const pkg = JSON.parse(await readFile(join2(target, "package.json"), "utf8"));
|
|
14278
|
+
pkg.scripts = { ...pkg.scripts, edit: `${COMMAND} edit .`, [COMMAND]: COMMAND };
|
|
14279
|
+
if (example !== void 0) {
|
|
14280
|
+
for (const [script, line] of Object.entries(pkg.scripts)) pkg.scripts[script] = line.replace(/--goal \S+/, `--goal ${example.goal}`);
|
|
14281
|
+
pkg.dependencies = { ...pkg.dependencies, ...example.dependencies };
|
|
14282
|
+
}
|
|
14283
|
+
pkg.devDependencies = { ...pkg.devDependencies, ...checkoutLinks(Object.keys(cyclotronPackages(product, kit))) };
|
|
14284
|
+
await writeFile(join2(target, "package.json"), JSON.stringify(pkg, null, 2) + "\n");
|
|
14285
|
+
return { targetDir: target, manifest };
|
|
14191
14286
|
}
|
|
14192
14287
|
async function writeProject({ name, targetDir, template }) {
|
|
14193
|
-
if (template !== void 0 && !["models", "
|
|
14194
|
-
const
|
|
14288
|
+
if (template !== void 0 && !["models", "film"].includes(template)) throw new Error(`Unknown Cyclotron template ${JSON.stringify(template)}: models, game or film.`);
|
|
14289
|
+
const film = template === "film";
|
|
14195
14290
|
if (!name.trim()) throw new Error("A project name is required.");
|
|
14196
|
-
const target =
|
|
14291
|
+
const target = resolve2(targetDir);
|
|
14197
14292
|
const { product, kit } = await productVersions();
|
|
14198
|
-
const manifest =
|
|
14293
|
+
const manifest = ProjectManifestSchema.parse({
|
|
14199
14294
|
manifestVersion: 2,
|
|
14200
14295
|
name,
|
|
14201
14296
|
version: "0.1.0",
|
|
14202
14297
|
engine: { version: product.dependencies["@volter/editor-core"] },
|
|
14203
|
-
roots:
|
|
14204
|
-
...
|
|
14298
|
+
roots: film ? [FILM.graphicsRoot] : [],
|
|
14299
|
+
...film ? { resolution: FILM.resolution } : {}
|
|
14205
14300
|
});
|
|
14206
|
-
await mkdir(
|
|
14301
|
+
await mkdir(dirname2(target), { recursive: true });
|
|
14207
14302
|
await mkdir(target);
|
|
14208
|
-
await mkdir(
|
|
14209
|
-
const write = (path, content) => writeFile(
|
|
14303
|
+
await mkdir(join2(target, "src/models"), { recursive: true });
|
|
14304
|
+
const write = (path, content) => writeFile(join2(target, path), content, { flag: "wx" });
|
|
14305
|
+
for (const root of ["prefabs", "scenes", "sounds", "images", "fonts", "effects", "data", "locales/context"]) {
|
|
14306
|
+
await mkdir(join2(target, root), { recursive: true });
|
|
14307
|
+
await write(`${root}/.gitkeep`, "");
|
|
14308
|
+
}
|
|
14309
|
+
await write("locales/en.json", "{}\n");
|
|
14310
|
+
await write("locales/context/keys.json", "{}\n");
|
|
14311
|
+
await copyFile(join2(productRoot2, "starter", "sounds", "mix.json"), join2(target, "sounds/mix.json"));
|
|
14210
14312
|
await write(MANIFEST_FILENAME, JSON.stringify(manifest, null, 2) + "\n");
|
|
14211
14313
|
await write("package.json", JSON.stringify({
|
|
14212
14314
|
name: name.toLowerCase().replace(/[^a-z0-9-]+/g, "-").replace(/^-|-$/g, "") || "models",
|
|
14213
14315
|
private: true,
|
|
14214
14316
|
version: "0.1.0",
|
|
14215
14317
|
type: "module",
|
|
14216
|
-
scripts: { dev:
|
|
14318
|
+
scripts: { dev: `${COMMAND} edit .`, [COMMAND]: COMMAND, ...film ? { check: "volter-film check" } : {} },
|
|
14217
14319
|
// The two install scripts the editor's tree runs, reviewed: npm 11 lists unreviewed ones in a new user's first
|
|
14218
14320
|
// install ("not yet covered by allowScripts") and a later npm blocks them. The entries are npm's own
|
|
14219
14321
|
// name-only form (`npm approve-scripts --no-allow-scripts-pin`).
|
|
14220
14322
|
allowScripts: { esbuild: true, "msgpackr-extract": true },
|
|
14221
|
-
...
|
|
14323
|
+
...film ? { dependencies: FILM.dependencies } : {},
|
|
14222
14324
|
devDependencies: {
|
|
14223
|
-
|
|
14224
|
-
|
|
14225
|
-
"@volter/editor-blender": product.dependencies["@volter/editor-blender"],
|
|
14226
|
-
...playable ? PLAYABLE.devDependencies(kit) : {}
|
|
14325
|
+
...cyclotronPackages(product, kit),
|
|
14326
|
+
...film ? FILM.devDependencies(kit) : {}
|
|
14227
14327
|
}
|
|
14228
14328
|
}, null, 2) + "\n");
|
|
14229
14329
|
await write("tsconfig.json", PROJECT_TSCONFIG);
|
|
14230
|
-
await mkdir(
|
|
14330
|
+
await mkdir(join2(target, "editor"));
|
|
14231
14331
|
await write("editor/volter.adapter.ts", `import { defineAdapter } from '@volter/project/adapter/adapter-module';
|
|
14232
14332
|
import { ModelLayout } from '@volter/editor-blender/layouts';
|
|
14233
|
-
import {
|
|
14333
|
+
import { blenderKeymap } from '@volter/editor-blender/looks';
|
|
14234
14334
|
|
|
14235
14335
|
export default defineAdapter({
|
|
14236
|
-
${
|
|
14237
|
-
documents: { default: '${
|
|
14336
|
+
${film ? FILM.regionIncludes : ""} editor: { Layout: ModelLayout, keymap: blenderKeymap, inspector: 'properties' },
|
|
14337
|
+
documents: { default: '${film ? FILM.defaultDocument : "model:src/models/cube.blend"}', find: [{ finder: 'modelsFromBlendFiles', include: ['src/models/**/*.blend'] }${film ? FILM.finder : ""}] },
|
|
14238
14338
|
});
|
|
14239
14339
|
`);
|
|
14240
|
-
|
|
14241
|
-
|
|
14242
|
-
|
|
14243
|
-
|
|
14244
|
-
|
|
14245
|
-
|
|
14246
|
-
|
|
14247
|
-
|
|
14248
|
-
const blenderMcp = { command: "node", args: ["--input-type=commonjs", "--eval", mcpEntry, "--", "blender-mcp"] };
|
|
14249
|
-
await write(".mcp.json", JSON.stringify({ mcpServers: { blender: blenderMcp } }, null, 2) + "\n");
|
|
14250
|
-
await mkdir(join(target, ".codex"));
|
|
14251
|
-
await write(".codex/config.toml", [
|
|
14252
|
-
"[mcp_servers.blender]",
|
|
14253
|
-
`command = ${JSON.stringify(blenderMcp.command)}`,
|
|
14254
|
-
`args = [${blenderMcp.args.map((arg) => JSON.stringify(arg)).join(", ")}]`,
|
|
14255
|
-
""
|
|
14256
|
-
].join("\n"));
|
|
14257
|
-
await write(".gitignore", "node_modules\n.volter/\nlogs/\n");
|
|
14258
|
-
for (const file2 of ["AGENTS.md", "CLAUDE.md"])
|
|
14259
|
-
await copyFile(join(productRoot, "starter", file2), join(target, file2));
|
|
14260
|
-
if (playable) {
|
|
14261
|
-
const example = join(productRoot, "starter", PLAYABLE.example);
|
|
14262
|
-
for (const entry of await readdir(example, { recursive: true, withFileTypes: true })) {
|
|
14263
|
-
if (!entry.isFile()) continue;
|
|
14264
|
-
const from = join(entry.parentPath, entry.name);
|
|
14265
|
-
const to = join(target, relative(example, from));
|
|
14266
|
-
await mkdir(dirname(to), { recursive: true });
|
|
14267
|
-
await copyFile(from, to, constants.COPYFILE_EXCL);
|
|
14268
|
-
}
|
|
14269
|
-
} else {
|
|
14270
|
-
for (const file2 of ["cube.blend", "cube.py"])
|
|
14271
|
-
await copyFile(join(productRoot, "starter", file2), join(target, "src/models", file2));
|
|
14340
|
+
await writeCyclotronFiles(target);
|
|
14341
|
+
await write(".gitignore", `${CYCLOTRON_IGNORES.join("\n")}
|
|
14342
|
+
`);
|
|
14343
|
+
for (const file2 of ["cube.blend", "cube.py"])
|
|
14344
|
+
await copyFile(join2(productRoot2, "starter", file2), join2(target, "src/models", file2));
|
|
14345
|
+
if (film) {
|
|
14346
|
+
await copyStarterTree(FILM.example, target);
|
|
14347
|
+
await copyStarterTree(FILM.skills, join2(target, ".claude", "skills"));
|
|
14272
14348
|
}
|
|
14273
14349
|
return { targetDir: target, manifest };
|
|
14274
14350
|
}
|
|
14275
|
-
async function refreshStarterGuidance(projectDir
|
|
14276
|
-
const target =
|
|
14351
|
+
async function refreshStarterGuidance(projectDir) {
|
|
14352
|
+
const target = join2(projectDir, "AGENTS.md");
|
|
14277
14353
|
let current;
|
|
14278
14354
|
try {
|
|
14279
14355
|
current = await readFile(target, "utf8");
|
|
14280
14356
|
} catch {
|
|
14281
14357
|
return;
|
|
14282
14358
|
}
|
|
14283
|
-
const starter = await readFile(
|
|
14359
|
+
const starter = await readFile(join2(productRoot2, "starter", "AGENTS.md"), "utf8");
|
|
14284
14360
|
const normal = (text) => text.replace(/\r\n/g, "\n");
|
|
14285
14361
|
const firstLine = (text) => normal(text).split("\n", 1)[0] ?? "";
|
|
14286
14362
|
if (normal(current) === normal(starter) || firstLine(current) !== firstLine(starter)) return;
|
|
14287
|
-
await mkdir(
|
|
14288
|
-
await writeFile(
|
|
14363
|
+
await mkdir(join2(projectDir, ".volter"), { recursive: true });
|
|
14364
|
+
await writeFile(join2(projectDir, ".volter", "AGENTS.previous.md"), current);
|
|
14289
14365
|
await writeFile(target, starter);
|
|
14290
|
-
log("AGENTS.md updated to the installed editor guidance (the previous copy is .volter/AGENTS.previous.md).");
|
|
14366
|
+
console.log("AGENTS.md updated to the installed editor guidance (the previous copy is .volter/AGENTS.previous.md).");
|
|
14291
14367
|
}
|
|
14292
14368
|
export {
|
|
14293
|
-
|
|
14294
|
-
PLAY_SCAFFOLD,
|
|
14295
|
-
PROJECT_TSCONFIG,
|
|
14369
|
+
PLAY_PACKAGES,
|
|
14296
14370
|
UPGRADING,
|
|
14297
14371
|
declaration,
|
|
14298
|
-
productRoot,
|
|
14299
|
-
productVersions,
|
|
14300
14372
|
refreshStarterGuidance,
|
|
14301
14373
|
writeProject
|
|
14302
14374
|
};
|