@volter/cyclotron 0.5.203 → 0.5.205
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 +14 -14
- package/README.md +1 -1
- package/dist/.vite/manifest.json +1188 -1188
- package/dist/assets/EntityModelDocument-D9aHujmp.js +1 -0
- package/dist/assets/EnvironmentAssetDocument-B6bc_SC6.js +1 -0
- package/dist/assets/InspectorObjectPreview-Cc8RFAYk.js +1 -0
- package/dist/assets/LiveModuleDocument-CaEynRir.js +2 -0
- package/dist/assets/LutAssetDocument-DcBP5wG4.js +1 -0
- package/dist/assets/ModelAssetDocument-Bcu9B61q.js +1 -0
- package/dist/assets/NonThreeAuthoringBootstrap-BEzllIan.js +1 -0
- package/dist/assets/Object3DDocumentToolbar-DTbn07-C.js +1 -0
- package/dist/assets/Object3DPreview-CIxiGvEF.js +2 -0
- package/dist/assets/QuarksAssetDocument-DVgoms_B.js +2 -0
- package/dist/assets/ShaderAssetDocument--YQqYgnY.js +1 -0
- package/dist/assets/StageHost-Ck5UEaim.js +1179 -0
- package/dist/assets/ToolObject3DPreview-uMyvll3J.js +1 -0
- package/dist/assets/ViewportShadingMenu-B9fDRRap.js +1 -0
- package/dist/assets/animation-mixers.service-DaPx1aOg.js +1 -0
- package/dist/assets/animation-timeline.utility-CXr4OHSc.js +1 -0
- package/dist/assets/asset-preview-Cu0rRM9t.js +4 -0
- package/dist/assets/blender-emscripten-engine-CTeOMKcG.js +2 -0
- package/dist/assets/blender-node-editor.document-DDg5BG01.js +1 -0
- package/dist/assets/blender-properties-model-D9_w-26U.js +1 -0
- package/dist/assets/blender-properties-tab-WGsIFrK-.js +3 -0
- package/dist/assets/blender-runtime-host-BIkeIruy.js +7221 -0
- package/dist/assets/blender-runtime.document-C8d8JIMJ.js +13 -0
- package/dist/assets/blender-screenshot.menu-DUCu7wtc.js +1 -0
- package/dist/assets/blender-timeline.document-BGoVj9Vx.js +1 -0
- package/dist/assets/blender-uv-editor.document-SqfkAaBF.js +1 -0
- package/dist/assets/blender-version.status-DlvM0W80.js +1 -0
- package/dist/assets/blender-wali-engine-kfyCxO_U.js +2 -0
- package/dist/assets/blender.command-7YZapRey.js +1 -0
- package/dist/assets/blender.status-BhrZhADg.js +1 -0
- package/dist/assets/model-inspection-2HdlEuHG.js +1 -0
- package/dist/assets/models.finder-CpxcOLo2.js +1 -0
- package/dist/assets/object3d-document-session-registry-DWnnt4zK.js +2 -0
- package/dist/assets/play-live-B3BoNGuF.js +1 -0
- package/dist/assets/product-27nnPGxW.js +14 -0
- package/dist/assets/properties-bone-constraints.inspector-CQLjNvu6.js +1 -0
- package/dist/assets/properties-bone.inspector-D_UwYB2_.js +1 -0
- package/dist/assets/properties-collection.inspector-C5bs7u3u.js +1 -0
- package/dist/assets/properties-constraints.inspector-DVN0WI1l.js +1 -0
- package/dist/assets/properties-data.inspector-DtWPjXMI.js +1 -0
- package/dist/assets/properties-material.inspector-DRdLjbja.js +1 -0
- package/dist/assets/properties-modifiers.inspector-DHDKAIii.js +1 -0
- package/dist/assets/properties-object.inspector-BwS_TG8r.js +1 -0
- package/dist/assets/properties-output.inspector-B7dNI97C.js +1 -0
- package/dist/assets/properties-particles.inspector-CxTu7DbA.js +1 -0
- package/dist/assets/properties-physics.inspector-BBKtG4BC.js +1 -0
- package/dist/assets/properties-render.inspector-Dw91kd5V.js +1 -0
- package/dist/assets/properties-scene.inspector-_10A_oRo.js +1 -0
- package/dist/assets/properties-texture.inspector-BBjhRAyO.js +1 -0
- package/dist/assets/properties-view-layer.inspector-CPEoD7bp.js +1 -0
- package/dist/assets/properties-world.inspector-BwUSqZTC.js +1 -0
- package/dist/assets/react-18-DZmFYCGH.js +1 -0
- package/dist/assets/session-CvHLFvpx.js +6056 -0
- package/dist/assets/stage-keyboard-B12MYziF.js +1 -0
- package/dist/assets/stage-overlay-set-Pp1JSuMt.js +1 -0
- package/dist/assets/stage-presence-markers-DyLFyFtl.js +1 -0
- package/dist/assets/stage-transform-tools-Djt1RiNF.js +1 -0
- package/dist/assets/standard-viewport-dressing-C4bqsdPo.js +24 -0
- package/dist/assets/three-integration.service-CC3bssCn.js +2 -0
- package/dist/assets/volter-sdk-CQ_hQ_Bw.js +2363 -0
- package/dist/assets/volter-sdk-account-C8EGUXTt.js +1 -0
- package/dist/assets/volter-sdk-client-DVHQ3Z6R.js +1 -0
- package/dist/assets/volter-sdk-contributions-CBUGrdBd.js +1 -0
- package/dist/assets/volter-sdk-css-numeric-style-DTS_ngK4.js +1 -0
- package/dist/assets/volter-sdk-document-probe-DAxCA4Z3.js +1 -0
- package/dist/assets/volter-sdk-editor-view-BvV_o2yo.js +1 -0
- package/dist/assets/volter-sdk-host-C3hWLDLe.js +1 -0
- package/dist/assets/volter-sdk-http-transport.browser-CkNW7_aY.js +1 -0
- package/dist/assets/volter-sdk-index-DX1MwSVk.js +1 -0
- package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-DJkeOb8b.js +1 -0
- package/dist/assets/volter-sdk-kit-account-client-CPjF0OZD.js +1 -0
- package/dist/assets/volter-sdk-kit-action-registry-CigLfVgP.js +1 -0
- package/dist/assets/volter-sdk-kit-active-product-BjOsOaSs.js +1 -0
- package/dist/assets/volter-sdk-kit-active-project-_plfNpsB.js +1 -0
- package/dist/assets/volter-sdk-kit-adapter-editor-config-vKPescqX.js +1 -0
- package/dist/assets/volter-sdk-kit-adapter-module-Di-d-2kp.js +1 -0
- package/dist/assets/volter-sdk-kit-adapter-observation-CJv5bdSR.js +1 -0
- package/dist/assets/volter-sdk-kit-animation-animation-clock-DtXW2JyX.js +1 -0
- package/dist/assets/volter-sdk-kit-animation-stage-transport-3jB8monf.js +1 -0
- package/dist/assets/volter-sdk-kit-api-assets-Kd1hF9bz.js +1 -0
- package/dist/assets/volter-sdk-kit-api-base-CVCY4Z81.js +1 -0
- package/dist/assets/volter-sdk-kit-api-build-ZcDp8T0d.js +1 -0
- package/dist/assets/volter-sdk-kit-api-logs-BERSbDWJ.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-identity-DDgnVoef.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-open-GN9wBCcv.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-source-BN6u7OGB.js +1 -0
- package/dist/assets/volter-sdk-kit-api-project-state-CraBuNjW.js +1 -0
- package/dist/assets/volter-sdk-kit-api-relay-CtqaPrPJ.js +1 -0
- package/dist/assets/volter-sdk-kit-api-settings-FJKzGmWm.js +1 -0
- package/dist/assets/volter-sdk-kit-api-themes-CN65kjlh.js +1 -0
- package/dist/assets/volter-sdk-kit-api-worktrees-D_bgLYdo.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-capabilities-DuaiRTbO.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-compare-core-BIgZf23o.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-editor-context-B6IuU5q4.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-events-ChkfMwfC.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-inspector-actions-EwYQUjKk.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-selection-DR_-eOZr.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-VNciqolD.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-thumbnails-CPULTzhy.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-viewers-CwbyEgz3.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-DP3z64Qq.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-DO31fjoE.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-BkRVscGy.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-D3YfB2oT.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-BqoBmneY.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-8GgNZivh.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-A71x90lw.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-CrGcrNE8.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-65xuUQqS.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-BHqEF14D.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-CxJdDlLP.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-G-e6vSpH.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-DukZqI0N.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-mPnQEoXx.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-project-content-DoHeh-64.js +1 -0
- package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-C7IHnWQo.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-active-adapter-DUPD76GX.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-active-systems-CGMQ7DgC.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-adapter-key-7dV2jBsz.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-DsUvqS53.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-bootstrap-state--CqYXSnd.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-T380YuYN.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-CL4mJTaV.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-DwNzPrNM.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-consumer-actions-wsIcnNBy.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-design-time-layers-OtlLDsNm.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-BcaPe5AT.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-D2FKFCoH.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-BudrdZ9f.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-DMJbPGA2.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-layered-pick-Dt6CAY-E.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-DtbAGgUx.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-LtkXp9HS.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-BGr9gxhw.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-panel-authoring-UU_CsJVR.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-Dna6KQY0.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-provenance-BdiJIB8g.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-DcnUVc3c.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-0jF96MV6.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-react-story-board-ByoUDfW0.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-seam-evidence-CnwL2Fkp.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-selection-scope-DxbRD7FK.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-DB35tnLu.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-siYEqopm.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-three-root-yAMD86wP.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-B9rdTqVx.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-BQWCR4zF.js +1 -0
- package/dist/assets/volter-sdk-kit-authoring-world-session-state-BMKBcT5E.js +1 -0
- package/dist/assets/volter-sdk-kit-availability-tick-D0LK7jBV.js +1 -0
- package/dist/assets/volter-sdk-kit-bitmap-label-BLW5MRQ_.js +1 -0
- package/dist/assets/volter-sdk-kit-boot-routing-CbFGrwVK.js +1 -0
- package/dist/assets/volter-sdk-kit-breakpoint-state-lpt7gI1D.js +1 -0
- package/dist/assets/volter-sdk-kit-build-identity-CtDVibrs.js +1 -0
- package/dist/assets/volter-sdk-kit-bytes-codec-BJBTD3O5.js +1 -0
- package/dist/assets/volter-sdk-kit-cancellation-reason-d7WA1FVO.js +1 -0
- package/dist/assets/volter-sdk-kit-canvas-frames-ChouhyoE.js +1 -0
- package/dist/assets/volter-sdk-kit-capture-camera-pose-DJzlsEfL.js +1 -0
- package/dist/assets/volter-sdk-kit-capture-size-ZfgvKhon.js +1 -0
- package/dist/assets/volter-sdk-kit-chrome-registry-eyqwLNBD.js +1 -0
- package/dist/assets/volter-sdk-kit-chrome-slot-registry-DuY9iEA-.js +1 -0
- package/dist/assets/volter-sdk-kit-collaboration-client-etbDrzOa.js +1 -0
- package/dist/assets/volter-sdk-kit-collaboration-presence-4YSSLDr7.js +1 -0
- package/dist/assets/volter-sdk-kit-command-dispatch-VR5u-eFG.js +1 -0
- package/dist/assets/volter-sdk-kit-command-listener-CHlJpBHJ.js +1 -0
- package/dist/assets/volter-sdk-kit-command-registry-BP34yxq6.js +1 -0
- package/dist/assets/volter-sdk-kit-component-board-registry-CJ-yIv57.js +1 -0
- package/dist/assets/volter-sdk-kit-component-states-registry-Bk4fK5Zo.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AlignToolbar-B93-48CG.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ApplicationMenus-C0BIHop-.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AssetEditorShell-Cr3OiMYQ.js +1 -0
- package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-BEA9CFnO.js +1 -0
- package/dist/assets/volter-sdk-kit-components-BoardRulers-DooFYToX.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-DNSvGWzn.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-QaRZQnwt.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ChromeSlot-mop09kfX.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CodeView-BpjDYI-u.js +1 -0
- package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-DCs1w34B.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ConsolePanel-CumxppRI.js +1 -0
- package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-Cd4YFpVC.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectionProjection-BrViNJXJ.js +1 -0
- package/dist/assets/volter-sdk-kit-components-Inspector-BzQzflQv.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-Dr3JuqYC.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-DG-mVhA8.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-Cnkcd7Hx.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorToolSection-DpymMSdg.js +1 -0
- package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-5iIAgYwg.js +1 -0
- package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-B29hENvY.js +1 -0
- package/dist/assets/volter-sdk-kit-components-MediaProperties-kN3_KVBz.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ProjectHeader-CNpJaoHS.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-3Pd0OdKT.js +1 -0
- package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-BVvJIgZ6.js +1 -0
- package/dist/assets/volter-sdk-kit-components-RootTextEditor-p2cApxPC.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SaveStatus-fneTCycz.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SurfaceCrashBoundary-C62h4Eyi.js +1 -0
- package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-8oI3Uafw.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-C-jW5ebb.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ToolHost-BUULWQeR.js +1 -0
- package/dist/assets/volter-sdk-kit-components-Toolbar-DfQ3W8vH.js +1 -0
- package/dist/assets/volter-sdk-kit-components-TransientHint-Cy3SaluG.js +1 -0
- package/dist/assets/volter-sdk-kit-components-VersionControlSection-DibOwuzX.js +1 -0
- package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-ClNG-cNW.js +1 -0
- package/dist/assets/volter-sdk-kit-components-VolterLogo-0ijnRyEJ.js +1 -0
- package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-BpuLUFgP.js +1 -0
- package/dist/assets/volter-sdk-kit-components-account-documents-8P0HEjcB.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-documents-D4b-hwOG.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-e9x1WGyM.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-selection-section-Bk5k7UqD.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-thumbnails-DXeAWlMw.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-B5LBvEZm.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-7JA73LaR.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-BZoBmtII.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-BFvgM3I_.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-DX_wF4E7.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-8pCs930G.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-D_f8wd9V.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-DBOQn4FL.js +1 -0
- package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-yYVfk_L5.js +1 -0
- package/dist/assets/volter-sdk-kit-components-board-guides-VrpXFinU.js +1 -0
- package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-D0t7ywfb.js +1 -0
- package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-BgNHS64v.js +1 -0
- package/dist/assets/volter-sdk-kit-components-core-utilities-CnoSxkm4.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-preview-section-BKFvfU9_.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-revert-label-DtWnyoPb.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-selection-BpRIu05A.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-CnBJ_Jzd.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-transform-Cxf096bE.js +1 -0
- package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-jDYiS_Tr.js +1 -0
- package/dist/assets/volter-sdk-kit-components-kind-documents-CA9ZwQYm.js +1 -0
- package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-sMuhcJ-u.js +1 -0
- package/dist/assets/volter-sdk-kit-components-project-tool-documents-BrAdYd9j.js +1 -0
- package/dist/assets/volter-sdk-kit-components-scene-documents-BCx5FK_F.js +1 -0
- package/dist/assets/volter-sdk-kit-components-status-contributions-D4AlryJ7.js +1 -0
- package/dist/assets/volter-sdk-kit-components-tool-documents-B2Mg51Ki.js +1 -0
- package/dist/assets/volter-sdk-kit-components-tool-schema-form-DuywtsWj.js +1 -0
- package/dist/assets/volter-sdk-kit-components-use-after-paint-A1uaR4w2.js +1 -0
- package/dist/assets/volter-sdk-kit-components-use-project-image-assets-K4x_R729.js +1 -0
- package/dist/assets/volter-sdk-kit-components-workspace-history-m_D_ri3M.js +1 -0
- package/dist/assets/volter-sdk-kit-components-world-documents-CX_7rVwP.js +1 -0
- package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-jN-Asc5B.js +1 -0
- package/dist/assets/volter-sdk-kit-composite-screenshot-D0q45_D-.js +1 -0
- package/dist/assets/volter-sdk-kit-content-entry-source-registry-D-mgeLo-.js +1 -0
- package/dist/assets/volter-sdk-kit-contribution-surfaces-DTDWZiNa.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-Dul4cw4U.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-Dtj1KNWW.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-BAW0NPNo.js +1 -0
- package/dist/assets/volter-sdk-kit-coverage-session-vitals-Cb7amVmE.js +1 -0
- package/dist/assets/volter-sdk-kit-creation-site-registry-CCpvR4_u.js +1 -0
- package/dist/assets/volter-sdk-kit-delegate-harness-registry-BX4YVund.js +1 -0
- package/dist/assets/volter-sdk-kit-document-areas-1z5EFlyO.js +1 -0
- package/dist/assets/volter-sdk-kit-document-context-registry-BSrSTGqR.js +1 -0
- package/dist/assets/volter-sdk-kit-document-open-registry-CF7E15H6.js +1 -0
- package/dist/assets/volter-sdk-kit-document-play-extension-Bx5KC1L3.js +1 -0
- package/dist/assets/volter-sdk-kit-document-preview-source-BiQMSyVw.js +1 -0
- package/dist/assets/volter-sdk-kit-document-renderer-session-B2S8eoyi.js +1 -0
- package/dist/assets/volter-sdk-kit-document-stage-sessions-CVx02QYd.js +1 -0
- package/dist/assets/volter-sdk-kit-document-viewports-Ha268zZ8.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-api-Bl7Srpjd.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-chrome-capture-D9aqMK5W.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-commands-C1OsXojL.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-console-eq14g8jT.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-current-view-ZKhlBhRr.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-document-probe-BBX4QbqP.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-git-client-DYE0uC11.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-hotkeys-D_y-i6f1.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-lease-S17d34mY.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-lease-view-BosaVzAk.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-mode-C--As49l.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-notifications-lH6m2Hmt.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presence-RBVwzJqz.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presentation-activity-Dj7rrijL.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-presentation-notice-OyIilK5x.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-runtime-DjewImZy.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-server-response-D30A62n1.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-session-attribution-BjTEc0nE.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-session-mode-S8yO-0vw.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-state-facets-Dfi7UyE7.js +1 -0
- package/dist/assets/volter-sdk-kit-editor-view-presentation-CYSYEJad.js +1 -0
- package/dist/assets/volter-sdk-kit-environment-images-DxjIYuvo.js +1 -0
- package/dist/assets/volter-sdk-kit-eyedropper-session-lcVUaAqq.js +1 -0
- package/dist/assets/volter-sdk-kit-files-file-provider-pNCskdiT.js +1 -0
- package/dist/assets/volter-sdk-kit-files-project-files-CFrcIf8C.js +1 -0
- package/dist/assets/volter-sdk-kit-finders-index-ByaU5txS.js +1 -0
- package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-wq-97jiH.js +1 -0
- package/dist/assets/volter-sdk-kit-frame-frame-parts-CrKFSrUs.js +1 -0
- package/dist/assets/volter-sdk-kit-framed-document-capture-CWIWyc9n.js +1 -0
- package/dist/assets/volter-sdk-kit-game-surface-defaults-CkJ6cAvE.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-export-state-B2DshvlA.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-replay-BVxdcLAg.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-session-time-FnVcSXbN.js +1 -0
- package/dist/assets/volter-sdk-kit-gameplay-sessions-DEk1PA46.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-component-marks-pZYWBw9o.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-internals-jzYS-N3e.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-DtAvkoqV.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-NNL0pnAI.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-node-rows-DTLPASNb.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-panel-view-B7Usp6ta.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-projection-DP4BZ82s.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-row-media-HccGYE6b.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-row-model-DhqpO9_D.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-rows-BD_XSoKi.js +1 -0
- package/dist/assets/volter-sdk-kit-hierarchy-walk-t3aBYJkL.js +1 -0
- package/dist/assets/volter-sdk-kit-history-editor-session-CL_nUg2E.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-commands-CXmLIbqs.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-delegate-BPhsh_Nx.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-limit-notices-Cv5i6ig5.js +1 -0
- package/dist/assets/volter-sdk-kit-history-history-service-Czu3JbdR.js +1 -0
- package/dist/assets/volter-sdk-kit-history-persistence-coordinator-Cy29xQa0.js +1 -0
- package/dist/assets/volter-sdk-kit-history-project-file-history-DFdtbUgw.js +1 -0
- package/dist/assets/volter-sdk-kit-history-project-root-history-backends-5IlXrPLj.js +1 -0
- package/dist/assets/volter-sdk-kit-history-resource-registry-CumTp8UW.js +1 -0
- package/dist/assets/volter-sdk-kit-history-snapshot-store-BI97MUJM.js +1 -0
- package/dist/assets/volter-sdk-kit-history-source-history-backend-D6qOhtdS.js +1 -0
- package/dist/assets/volter-sdk-kit-hmr-registration-group-DUEXTV04.js +1 -0
- package/dist/assets/volter-sdk-kit-hmr-stable-react-context-OdbEzB8u.js +1 -0
- package/dist/assets/volter-sdk-kit-hotkeys-S6ciFSFh.js +1 -0
- package/dist/assets/volter-sdk-kit-inference-diagnostics-DBo5Neqc.js +1 -0
- package/dist/assets/volter-sdk-kit-initial-project-C5L3A-Xw.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-active-subject-mD_YskGO.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-active-surface-DzK7OOsv.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-compose-subject-rSVjbNhz.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-display-SzYApW3y.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-document-subject-D7zbGofo.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-game-subject-CbVhZl2j.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-model-zxOxpMQl.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-node-media-cTqEnA46.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-null-subject-MTOTNc8O.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-serialize-ByhBn2ik.js +1 -0
- package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-CZfCbDeR.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-presentation-B4O2_Ya9.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-property-grouping-me5Cx3r1.js +1 -0
- package/dist/assets/volter-sdk-kit-inspector-section-registry-DrwCb_cW.js +1 -0
- package/dist/assets/volter-sdk-kit-instance-source-actions-JuiPuvXK.js +1 -0
- package/dist/assets/volter-sdk-kit-js-heap-g3vAb6U_.js +1 -0
- package/dist/assets/volter-sdk-kit-key-actions-DxJ8LvFK.js +1 -0
- package/dist/assets/volter-sdk-kit-keymap-presets-9MnKFJFU.js +1 -0
- package/dist/assets/volter-sdk-kit-layout-policy-CvdxK7a7.js +1 -0
- package/dist/assets/volter-sdk-kit-light-explorer-model-nBeOKVW6.js +1 -0
- package/dist/assets/volter-sdk-kit-live-canvas-frame-9rjaqbBi.js +1 -0
- package/dist/assets/volter-sdk-kit-live-document-DlU8C_rb.js +1 -0
- package/dist/assets/volter-sdk-kit-live-gesture-lock-BeXX9L67.js +1 -0
- package/dist/assets/volter-sdk-kit-live-seam-evidence-CXvb4j3K.js +1 -0
- package/dist/assets/volter-sdk-kit-live-session-registry-AQmKjBwM.js +1 -0
- package/dist/assets/volter-sdk-kit-live-transition-BoSOR_7X.js +1 -0
- package/dist/assets/volter-sdk-kit-manifest-project-XFNRjdeJ.js +1 -0
- package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-C9kb9LLB.js +1 -0
- package/dist/assets/volter-sdk-kit-mount-failure-report-BXj55Y39.js +1 -0
- package/dist/assets/volter-sdk-kit-native-selection-style-CwCFzYqP.js +1 -0
- package/dist/assets/volter-sdk-kit-object3d-document-write-policy-4Pghgl0N.js +1 -0
- package/dist/assets/volter-sdk-kit-packaged-runtime-DZHfHcCa.js +1 -0
- package/dist/assets/volter-sdk-kit-performance-profiler-BiPpwUne.js +1 -0
- package/dist/assets/volter-sdk-kit-performance-sources-55CwD9lp.js +1 -0
- package/dist/assets/volter-sdk-kit-photograph-notice-DZa2cJxy.js +1 -0
- package/dist/assets/volter-sdk-kit-play-boot-phase-DVJxSqwK.js +1 -0
- package/dist/assets/volter-sdk-kit-play-camera-flight-CLuGQwon.js +1 -0
- package/dist/assets/volter-sdk-kit-presentation-surface-DWJgsRME.js +1 -0
- package/dist/assets/volter-sdk-kit-product-command-6UP1zWwa.js +1 -0
- package/dist/assets/volter-sdk-kit-project-adapter-BavL9xIM.js +1 -0
- package/dist/assets/volter-sdk-kit-project-asset-refresh-CVPgtGWZ.js +1 -0
- package/dist/assets/volter-sdk-kit-project-asset-roots-C1uTLFRk.js +1 -0
- package/dist/assets/volter-sdk-kit-project-local-state-DtOsDJrW.js +1 -0
- package/dist/assets/volter-sdk-kit-project-manager-DUnPd0nf.js +1 -0
- package/dist/assets/volter-sdk-kit-project-module-changes-BZT5HW8y.js +1 -0
- package/dist/assets/volter-sdk-kit-project-module-split-yCqqJ5rh.js +1 -0
- package/dist/assets/volter-sdk-kit-project-provenance-B1pNkLFV.js +1 -0
- package/dist/assets/volter-sdk-kit-project-ready-Bnrr4ZY9.js +1 -0
- package/dist/assets/volter-sdk-kit-project-shape-DBkzD5Ec.js +1 -0
- package/dist/assets/volter-sdk-kit-project-tools-DKGsk9hL.js +1 -0
- package/dist/assets/volter-sdk-kit-readiness-hMTvovv0.js +1 -0
- package/dist/assets/volter-sdk-kit-renderer-resource-counts-Cx_PNUoK.js +1 -0
- package/dist/assets/volter-sdk-kit-reported-play-state-iWSJMHEI.js +1 -0
- package/dist/assets/volter-sdk-kit-resolve-contributed-command-CcnY8oYB.js +1 -0
- package/dist/assets/volter-sdk-kit-resolve-relative-specifier-BI8U-QW1.js +1 -0
- package/dist/assets/volter-sdk-kit-retained-document-states-DPOakAa_.js +1 -0
- package/dist/assets/volter-sdk-kit-scene-document-plan-Bxz59B_h.js +1 -0
- package/dist/assets/volter-sdk-kit-scene-live-open-BKW1E2nA.js +1 -0
- package/dist/assets/volter-sdk-kit-scoped-game-css-DT2PSvN6.js +1 -0
- package/dist/assets/volter-sdk-kit-served-url-6l78KNHb.js +1 -0
- package/dist/assets/volter-sdk-kit-session-close-vWwOHYbJ.js +1 -0
- package/dist/assets/volter-sdk-kit-session-tombstone-fXB9Q_yg.js +1 -0
- package/dist/assets/volter-sdk-kit-settings-settings-provider-Bw4T6q6i.js +1 -0
- package/dist/assets/volter-sdk-kit-settings-store-Dbt3hvWo.js +1 -0
- package/dist/assets/volter-sdk-kit-shell-store-DxmRlnWF.js +1 -0
- package/dist/assets/volter-sdk-kit-shell-store-door-OglmWQzy.js +1 -0
- package/dist/assets/volter-sdk-kit-source-conflict-fgSR0zbn.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-context-BE0wAYsV.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-invalidation-DWS3DipZ.js +1 -0
- package/dist/assets/volter-sdk-kit-stage-store-registry-CE4DIY7Z.js +1 -0
- package/dist/assets/volter-sdk-kit-startup-failure-DzoYfugP.js +1 -0
- package/dist/assets/volter-sdk-kit-state-report-deferral-D1k91Q1v.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-host-files-storage-Cm8u_GQf.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-http-storage-DT81P1Xs.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-index-UeKOmBQs.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-mem-storage-BtTJIJxx.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-path-lock-BathwIYz.js +1 -0
- package/dist/assets/volter-sdk-kit-storage-paths-Bko9UDfO.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-D4KtKhLj.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-compose-project-stories-Dq1nB8EP.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-prefabs-finder-BdXHTGK_.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-CrBEfJDC.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-project-story-regions-DWNlP9kt.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-scope-BVF5pt-j.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-capture-MFgaGKJ4.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-declared-medium--pj6L8Vr.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-discovery-BIfDAvsX.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-CW7jRq-5.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-grouping-Bav0tHMH.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-presentation-Bd9AScYj.js +1 -0
- package/dist/assets/volter-sdk-kit-stories-story-registry-DtsH1uq7.js +1 -0
- package/dist/assets/volter-sdk-kit-story-document-openers-BQpRfuaa.js +1 -0
- package/dist/assets/volter-sdk-kit-story-thumbnails-AbrsBBdS.js +1 -0
- package/dist/assets/volter-sdk-kit-surface-keyboard-CrMEFsL8.js +1 -0
- package/dist/assets/volter-sdk-kit-surface-state-Dq5ub5Hc.js +1 -0
- package/dist/assets/volter-sdk-kit-system-seam-evidence-BUjKsE7k.js +1 -0
- package/dist/assets/volter-sdk-kit-tab-census-C36wLlSU.js +1 -0
- package/dist/assets/volter-sdk-kit-tab-lifecycle-client-xkVECT-8.js +1 -0
- package/dist/assets/volter-sdk-kit-theme-library-Dxgbok_U.js +1 -0
- package/dist/assets/volter-sdk-kit-theme-preference-C8CiQDgP.js +1 -0
- package/dist/assets/volter-sdk-kit-three-viewport-presentation-DN0AoArt.js +1 -0
- package/dist/assets/volter-sdk-kit-tool-contribution-play-BLU2vDQy.js +1 -0
- package/dist/assets/volter-sdk-kit-tool-loader-4joZXRls.js +1 -0
- package/dist/assets/volter-sdk-kit-transform-mode-request-DJ2ygYyu.js +1 -0
- package/dist/assets/volter-sdk-kit-transient-hint-F2AAlOgw.js +1 -0
- package/dist/assets/volter-sdk-kit-transport-strip-CXvXgh3v.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-BEfwC2xC.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-inspect-D07gZ4ri.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-B4IvQaAw.js +1 -0
- package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-BEqBpMxQ.js +1 -0
- package/dist/assets/volter-sdk-kit-user-local-state-DgJmVbLW.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-activation-timings--HKXOXNW.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-editor-controls-B8yn1SP0.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-presentation-B698fL8r.js +1 -0
- package/dist/assets/volter-sdk-kit-viewport-surface-status-DoEN5Sio.js +1 -0
- package/dist/assets/volter-sdk-kit-wait-until-2LWMP_uP.js +1 -0
- package/dist/assets/volter-sdk-kit-worker-call-metrics-DI-At_Mp.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-areas-DSO22vOa.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-aux-commands-BctG0TZG.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-available-documents-CpjwAHsm.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-core-utilities-DnWAMG9j.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-ids-CIN7_AXP.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-registry-DczAFfsi.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-document-restore-C4nbPktb.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-host-commands-L38Zhbqv.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-persistence-gate-BmQJ30oR.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-play-utilities-e95WWf1D.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-presets-Cx6bIALC.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-regions-kCv9-b1p.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-static-panels-l1pOQpjz.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-status-registry-bQJRjzx5.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-storage-85aqPMbn.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-style-DMM9UWdH.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-utility-commands-2PKNxbly.js +1 -0
- package/dist/assets/volter-sdk-kit-workspace-utility-registry-DB5oOPJy.js +1 -0
- package/dist/assets/volter-sdk-kit-world-adoption-CxwTYRh-.js +1 -0
- package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-QDBbZeTR.js +1 -0
- package/dist/assets/volter-sdk-kit-world-document-routing-DB7QhASz.js +1 -0
- package/dist/assets/volter-sdk-kit-world-pan-state-BPS-OzaI.js +1 -0
- package/dist/assets/volter-sdk-kit-write-pipe-DufbkWzZ.js +1 -0
- package/dist/assets/volter-sdk-layout-arrangements-D9ris2cY.js +1 -0
- package/dist/assets/volter-sdk-layouts-4IfPH4dG.js +1 -0
- package/dist/assets/volter-sdk-selection-BVjBFSL-.js +1 -0
- package/dist/assets/volter-sdk-session-command-table-Cq7MkRn3.js +1 -0
- package/dist/assets/volter-sdk-session-editor-brand-4IXX9MlG.js +1 -0
- package/dist/assets/volter-sdk-session-editor-compatibility-haPOFpnc.js +1 -0
- package/dist/assets/volter-sdk-session-editor-control-protocol-g6kD2o_d.js +1 -0
- package/dist/assets/volter-sdk-session-entrypoint-selection-readers-C_zWjJFx.js +1 -0
- package/dist/assets/volter-sdk-session-game-css-scope-SCk6cC-b.js +1 -0
- package/dist/assets/volter-sdk-session-project-module-url-su5ZQDPz.js +1 -0
- package/dist/assets/volter-sdk-session-relative-path-guard-CQw_siO6.js +1 -0
- package/dist/assets/volter-sdk-session-tool-contribution-convention-B55YBYvG.js +1 -0
- package/dist/assets/volter-sdk-types-g096WMyG.js +1 -0
- package/dist/assets/volter-sdk-views-Dp18WV7d.js +1 -0
- package/dist/assets/volter-sdk-widgets-design-system-p8C8p5Qz.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-appearance-D6v4x3Ex.js +1 -0
- package/dist/assets/volter-sdk-widgets-editor-material-DTP4TTEm.js +1 -0
- package/dist/assets/volter-sdk-widgets-icon-set-registry-BI32z-yb.js +1 -0
- package/dist/assets/volter-sdk-widgets-index-DH1n9ERv.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-DGoGeWgX.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-UPleQnax.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-DISSKfe-.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-X7rglfR-.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-DGFGaTXL.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-DjTYXw9I.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker-D0kCYaZ8.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-A5mofx1Y.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-ClDWT5wR.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-DhvtoDGg.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-Bnzi6FQe.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-D6RY-8hx.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-DUxjhMIw.js +1 -0
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-CqdZ2gPa.js +1 -0
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-B6rfDOn8.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-CrmzdvWH.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Fields-DRLskKy0.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-List-DbWBDvTr.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-B-FtnyrV.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-DLlTlsXh.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-Da9iZZM4.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-CzjhciNz.js +1 -0
- package/dist/assets/volter-sdk-widgets-patterns-Tree-akgXaxnW.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-WrgHvBqt.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Button-JRmeL9rz.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-kv5QCfK9.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-DZI2Ppf4.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-BW_UXZUk.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-IUPpVKhS.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-Bjh9ZFpF.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-DYkVzZTB.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Layout-DokZxw4v.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Menu-CCo8sXpC.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-DgbU4c8z.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Panel-C1pmlMc1.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-CqNbFgvm.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Text-5-XthHps.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-DyLIkMRz.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-D3p_nK4m.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-BklKCMSo.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-banner-tones-DW-3W8UF.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-CrTcmF2_.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-Dq439uha.js +1 -0
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-BVc6D81c.js +1 -0
- package/dist/assets/volter-sdk-widgets-theme-Oeu5MGfu.js +1 -0
- package/dist/assets/volter-sdk-widgets-z-index-CccyHUHT.js +1 -0
- package/dist/assets/volter-shared-fontawesome-BoGOOhUZ.js +1 -0
- package/dist/assets/volter-shared-jsx-dev-runtime-CCGek-Va.js +1 -0
- package/dist/assets/volter-shared-jsx-runtime-D6gGEaXb.js +1 -0
- package/dist/assets/volter-shared-react-DMi8Kkjq.js +1 -0
- package/dist/assets/volter-shared-react-dom-Ddp2cb0L.js +1 -0
- package/dist/assets/volter-shared-react-dom-client-B78jeL8s.js +1 -0
- package/dist/assets/worker-DvJ796ja.js +8 -0
- package/dist/volter-shared-react.json +6 -6
- package/dist/volter-shared-sdk.json +462 -462
- package/dist-node/cli.js +559 -239
- package/dist-node/create.js +31 -14
- package/package.json +14 -14
- package/starter/AGENTS.md +6 -0
- package/dist/assets/EntityModelDocument-CTq_jwpe.js +0 -1
- package/dist/assets/EnvironmentAssetDocument-CaSQc1HY.js +0 -1
- package/dist/assets/InspectorObjectPreview-P6pJxnGB.js +0 -1
- package/dist/assets/LiveModuleDocument-B6Iw2YIE.js +0 -2
- package/dist/assets/LutAssetDocument-C7Tc5hRu.js +0 -1
- package/dist/assets/ModelAssetDocument-BUOK0YzX.js +0 -1
- package/dist/assets/NonThreeAuthoringBootstrap-Bbtz8I0R.js +0 -1
- package/dist/assets/Object3DDocumentToolbar-GjvQOSkS.js +0 -1
- package/dist/assets/Object3DPreview-BUogCxPt.js +0 -2
- package/dist/assets/QuarksAssetDocument-Cxg3fT6D.js +0 -2
- package/dist/assets/ShaderAssetDocument-BbXBHSY3.js +0 -1
- package/dist/assets/StageHost-BtQd8CQk.js +0 -1179
- package/dist/assets/ToolObject3DPreview-imwBjs0O.js +0 -1
- package/dist/assets/ViewportShadingMenu-Dx1gY8Op.js +0 -1
- package/dist/assets/animation-mixers.service-fNXcr-Vc.js +0 -1
- package/dist/assets/animation-timeline.utility-Dzab5JgT.js +0 -1
- package/dist/assets/asset-preview-BEzZu4j-.js +0 -4
- package/dist/assets/blender-emscripten-engine-BFUuajuh.js +0 -2
- package/dist/assets/blender-node-editor.document-Cu3LXipe.js +0 -1
- package/dist/assets/blender-properties-model-BrD2rboW.js +0 -1
- package/dist/assets/blender-properties-tab-CkbWamuD.js +0 -3
- package/dist/assets/blender-runtime-host-7Wv16WQe.js +0 -7221
- package/dist/assets/blender-runtime.document-CSHvDIaD.js +0 -13
- package/dist/assets/blender-screenshot.menu-CELFKP08.js +0 -1
- package/dist/assets/blender-timeline.document-BvHkPBTZ.js +0 -1
- package/dist/assets/blender-uv-editor.document-DVsbsG0P.js +0 -1
- package/dist/assets/blender-version.status-D_YQqOVz.js +0 -1
- package/dist/assets/blender-wali-engine-C6WYYJ9a.js +0 -2
- package/dist/assets/blender.command-M9NTZ04b.js +0 -1
- package/dist/assets/blender.status-H7PL8qIV.js +0 -1
- package/dist/assets/model-inspection-DAugZuDb.js +0 -1
- package/dist/assets/models.finder-C37d1CqG.js +0 -1
- package/dist/assets/object3d-document-session-registry-Nly7qqyW.js +0 -2
- package/dist/assets/play-live-nju-LbTd.js +0 -1
- package/dist/assets/product-B76VmSfR.js +0 -14
- package/dist/assets/properties-bone-constraints.inspector-CICws11L.js +0 -1
- package/dist/assets/properties-bone.inspector-BTh8HMja.js +0 -1
- package/dist/assets/properties-collection.inspector-CdxnUdEY.js +0 -1
- package/dist/assets/properties-constraints.inspector-CgLm__aq.js +0 -1
- package/dist/assets/properties-data.inspector-CPGohY4g.js +0 -1
- package/dist/assets/properties-material.inspector-BBmS0pWg.js +0 -1
- package/dist/assets/properties-modifiers.inspector-DmwrZuck.js +0 -1
- package/dist/assets/properties-object.inspector-CcLxRnp2.js +0 -1
- package/dist/assets/properties-output.inspector-B21rsdeE.js +0 -1
- package/dist/assets/properties-particles.inspector-3oYMCgFh.js +0 -1
- package/dist/assets/properties-physics.inspector-CXHZdBQv.js +0 -1
- package/dist/assets/properties-render.inspector-BgQVOySW.js +0 -1
- package/dist/assets/properties-scene.inspector-BvJsraNi.js +0 -1
- package/dist/assets/properties-texture.inspector-DPHw4ryw.js +0 -1
- package/dist/assets/properties-view-layer.inspector-MBifnnqO.js +0 -1
- package/dist/assets/properties-world.inspector-DOOIqcDX.js +0 -1
- package/dist/assets/react-18-Ceee8kSy.js +0 -1
- package/dist/assets/session-B_EkWp0b.js +0 -6047
- package/dist/assets/stage-keyboard-CfcRPwij.js +0 -1
- package/dist/assets/stage-overlay-set-B8PO_8GO.js +0 -1
- package/dist/assets/stage-presence-markers-CheQj0g2.js +0 -1
- package/dist/assets/stage-transform-tools-B3kiH81y.js +0 -1
- package/dist/assets/standard-viewport-dressing-4szt4iVE.js +0 -24
- package/dist/assets/three-integration.service-BRF8px1l.js +0 -2
- package/dist/assets/volter-sdk-BKodmrby.js +0 -2363
- package/dist/assets/volter-sdk-account-LQPzi3UZ.js +0 -1
- package/dist/assets/volter-sdk-client-DgRgxfuo.js +0 -1
- package/dist/assets/volter-sdk-contributions-Di1uSPw_.js +0 -1
- package/dist/assets/volter-sdk-css-numeric-style-Gy-GyM9Y.js +0 -1
- package/dist/assets/volter-sdk-document-probe-kPNnaNGr.js +0 -1
- package/dist/assets/volter-sdk-editor-view-g0uNyGJC.js +0 -1
- package/dist/assets/volter-sdk-host-CXSewq8M.js +0 -1
- package/dist/assets/volter-sdk-http-transport.browser-B3TdfhI7.js +0 -1
- package/dist/assets/volter-sdk-index-4Kp3lnTd.js +0 -1
- package/dist/assets/volter-sdk-kit-CapabilityCoverageSection-CjXSPJIo.js +0 -1
- package/dist/assets/volter-sdk-kit-account-client-ByTVy6-o.js +0 -1
- package/dist/assets/volter-sdk-kit-action-registry-D1kqJ80f.js +0 -1
- package/dist/assets/volter-sdk-kit-active-product-CEEc_Nk5.js +0 -1
- package/dist/assets/volter-sdk-kit-active-project-BrcrV5ab.js +0 -1
- package/dist/assets/volter-sdk-kit-adapter-editor-config-DqJAYMZM.js +0 -1
- package/dist/assets/volter-sdk-kit-adapter-module-Cm1FKR3D.js +0 -1
- package/dist/assets/volter-sdk-kit-adapter-observation-DNCkd2d_.js +0 -1
- package/dist/assets/volter-sdk-kit-animation-animation-clock-0FXkaCv-.js +0 -1
- package/dist/assets/volter-sdk-kit-animation-stage-transport-C7MuqkhX.js +0 -1
- package/dist/assets/volter-sdk-kit-api-assets-DC5mYDg9.js +0 -1
- package/dist/assets/volter-sdk-kit-api-base-Jd4izSaw.js +0 -1
- package/dist/assets/volter-sdk-kit-api-build-CXv7iVa0.js +0 -1
- package/dist/assets/volter-sdk-kit-api-logs-BJS5qQS0.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-identity-BTbrDP21.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-open-B2xmn-LQ.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-source-B8I05SPp.js +0 -1
- package/dist/assets/volter-sdk-kit-api-project-state-b7drJlZm.js +0 -1
- package/dist/assets/volter-sdk-kit-api-relay-CXoYAGag.js +0 -1
- package/dist/assets/volter-sdk-kit-api-settings-Ooohukfm.js +0 -1
- package/dist/assets/volter-sdk-kit-api-themes-DWL43Vk4.js +0 -1
- package/dist/assets/volter-sdk-kit-api-worktrees-36I3L3ep.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-capabilities-B_JHyPEo.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-compare-core-k1g4sfK4.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-editor-context-BtXkPrch.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-events-DNL9sOD1.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-inspector-actions-CIyFU73p.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-selection-YBxUZh2F.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-selection-viewer-registry-BP6LhiLy.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-thumbnails-cVPLoYS6.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-viewers-D4Nn4_BR.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-import-jobs-BSMDOcaj.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-Ce2VXJ2Z.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-ledger-backend-BUyAOAr6.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-materialization-report-BItOpEbd.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-asset-pack-manifest-BBeCjirT.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-preview-player-UfPQty9g.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-audio-waveform-DDRruLeu.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-cloud-asset-client-T_DLL58P.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-hosted-asset-materialization-BjuMcGvJ.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-image-view-scale-Ciewiory.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-ledger-write-lock-DNMc3Uhr.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-pixi-spritesheet-BTZveIZ2.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-preview-resource-lifetime-CGdTixEp.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-project-asset-commands-0cIEsyFV.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-project-content-B883NWEX.js +0 -1
- package/dist/assets/volter-sdk-kit-asset-workflow-thumbnail-system-udhK_bK8.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-active-adapter-CaV79Zym.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-active-systems-D-sRD1JD.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-adapter-key-4m95v2b2.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-authoring-asset-url-CHBNmukT.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-bootstrap-state-Dz5hKatn.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-boundary-authoring-adapter-BHValVeR.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-canvas-scene-guides-RexSF-J2.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-composite-authoring-adapter-CbcNeoQ9.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-consumer-actions-CnMS-_cD.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-design-time-layers-Zg9zdDef.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-design-time-mount-registry-DKLgadwc.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-edit-mode-authoring-M81xEMIH.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-empty-project-authoring-DIwvGeWZ.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-instance-source-menu-EmOGzQA_.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-layered-pick-DmtPQOEU.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-mounted-root-subjects-CEz93V3J.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-no-authoring-adapter-mfK9FD-y.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-object3d-document-persistence-R2pfEtvy.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-panel-authoring-VEFAXYyu.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-project-authoring-session-B2qmlVET.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-provenance-CWNbjFfV.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-canvas-navigation-BkL1OUf3.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-design-canvas-style-DSJif289.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-react-story-board-DEtWuCdl.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-seam-evidence-yrcHmQZ9.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-selection-scope-DVHy1MNQ.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-shell-document-ops-CrTR4pdw.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-story-board-chrome-fit-CzDJyhVH.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-three-root-DGX0pTp1.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-context-c-RZK1GX.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-viewport-tool-owner-Cea2wigf.js +0 -1
- package/dist/assets/volter-sdk-kit-authoring-world-session-state-N1az4tj8.js +0 -1
- package/dist/assets/volter-sdk-kit-availability-tick-B-AloCSv.js +0 -1
- package/dist/assets/volter-sdk-kit-bitmap-label-D5-Z31T5.js +0 -1
- package/dist/assets/volter-sdk-kit-boot-routing-XVOVyUc_.js +0 -1
- package/dist/assets/volter-sdk-kit-breakpoint-state-D-KEzzvG.js +0 -1
- package/dist/assets/volter-sdk-kit-build-identity-D-zdIjo6.js +0 -1
- package/dist/assets/volter-sdk-kit-bytes-codec-DVfFaFPs.js +0 -1
- package/dist/assets/volter-sdk-kit-cancellation-reason-DnCUNdRD.js +0 -1
- package/dist/assets/volter-sdk-kit-canvas-frames-BGh2p4Ce.js +0 -1
- package/dist/assets/volter-sdk-kit-capture-camera-pose-WspKGBnF.js +0 -1
- package/dist/assets/volter-sdk-kit-capture-size-DSdRe3ay.js +0 -1
- package/dist/assets/volter-sdk-kit-chrome-registry-D4L_4xEJ.js +0 -1
- package/dist/assets/volter-sdk-kit-chrome-slot-registry-Ce1SavKJ.js +0 -1
- package/dist/assets/volter-sdk-kit-collaboration-client-BklHxwDT.js +0 -1
- package/dist/assets/volter-sdk-kit-collaboration-presence-Cbx-Ojaw.js +0 -1
- package/dist/assets/volter-sdk-kit-command-dispatch-Dyhs6OSN.js +0 -1
- package/dist/assets/volter-sdk-kit-command-listener-CHEIOy3c.js +0 -1
- package/dist/assets/volter-sdk-kit-command-registry-CUKeDb9O.js +0 -1
- package/dist/assets/volter-sdk-kit-component-board-registry-BF8BzQDh.js +0 -1
- package/dist/assets/volter-sdk-kit-component-states-registry-RkljZ-Lm.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AlignToolbar-L-1f9zZf.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ApplicationMenus-BKxEMCFq.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AssetEditorShell-ByYpeg3g.js +0 -1
- package/dist/assets/volter-sdk-kit-components-AssetInspectorToolSection-AzQ_b4hk.js +0 -1
- package/dist/assets/volter-sdk-kit-components-BoardRulers-Cjeqdfie.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CanvasAddNodeDialogs-BOfMdh1M.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CanvasSceneViewport-rZGGuOwh.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ChromeSlot-CYRqS-XZ.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CodeView-CZ4K-R4r.js +0 -1
- package/dist/assets/volter-sdk-kit-components-CompactInspectorShell-C0Jzb6sx.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ConsolePanel-vTD-MnSe.js +0 -1
- package/dist/assets/volter-sdk-kit-components-GameplaySessionTimeline-fQY5p6rX.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectionProjection-Dn7ly9U9.js +0 -1
- package/dist/assets/volter-sdk-kit-components-Inspector-DlXSsDRU.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorCanvasPreview-D2fHAo8Q.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorFieldsSection-BACKigHR.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorStoriesSection-C2tFcY5Z.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorToolSection-CKxWWFgq.js +0 -1
- package/dist/assets/volter-sdk-kit-components-InspectorTransformSection-BscOuHaz.js +0 -1
- package/dist/assets/volter-sdk-kit-components-LightExplorerPanel-Czgrsno8.js +0 -1
- package/dist/assets/volter-sdk-kit-components-MediaProperties-4JJy007U.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ProjectHeader-CHXnXf4V.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ReactCanvasControls-CjQh_ckk.js +0 -1
- package/dist/assets/volter-sdk-kit-components-RootSelectionOverlay-CIhN8hQt.js +0 -1
- package/dist/assets/volter-sdk-kit-components-RootTextEditor-Bh2YKApp.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SaveStatus-BD-zOD-c.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SurfaceCrashBoundary-BH1PNp8a.js +0 -1
- package/dist/assets/volter-sdk-kit-components-SurfaceStateOverlay-C4IvdpGQ.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ToolContributionSurfaces-CtiZX-C_.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ToolHost-DLj25ucp.js +0 -1
- package/dist/assets/volter-sdk-kit-components-Toolbar-DOHf2NES.js +0 -1
- package/dist/assets/volter-sdk-kit-components-TransientHint-zFA_MLx1.js +0 -1
- package/dist/assets/volter-sdk-kit-components-VersionControlSection-C9By_77E.js +0 -1
- package/dist/assets/volter-sdk-kit-components-ViewportOverlaysMenu-vr4do7lA.js +0 -1
- package/dist/assets/volter-sdk-kit-components-VolterLogo-DS8HqAPp.js +0 -1
- package/dist/assets/volter-sdk-kit-components-WorktreeSwitcher-DIEnM6m4.js +0 -1
- package/dist/assets/volter-sdk-kit-components-account-documents-C-kuLuRW.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-documents-wvxuPzJN.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-editor-persistence-DRbF9-yC.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-selection-section-D-iE-RCy.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-thumbnails-D3TyvHrp.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-AudioViewer-Dk2jKOhT.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-GenericJsonViewer-_nthvrZy.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-ImageViewer-i-UhuMgF.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-JsonAssetDocument-CzBAEr0C.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-OnlineAssetDetail-CyV7UI3C.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SourceAssetViewer-Bd3a2_oA.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-SpritesheetSpriteView-B0oBgcRW.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-VideoViewer-Ad0PtQNX.js +0 -1
- package/dist/assets/volter-sdk-kit-components-asset-viewers-shader-source-BcRGAaa4.js +0 -1
- package/dist/assets/volter-sdk-kit-components-board-guides-DlFbMQZl.js +0 -1
- package/dist/assets/volter-sdk-kit-components-canvas-scene-hotkeys-C-WHgNDO.js +0 -1
- package/dist/assets/volter-sdk-kit-components-canvas-temporary-pivot-CqErnLHB.js +0 -1
- package/dist/assets/volter-sdk-kit-components-core-utilities-B339nXVW.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-preview-section-fv1kHl0P.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-revert-label-CGouljBF.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-selection-svwL5thP.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-stories-gating-CXI8Z8PL.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-transform-B6n6Cdof.js +0 -1
- package/dist/assets/volter-sdk-kit-components-inspector-transform-subject-C3qg6v_f.js +0 -1
- package/dist/assets/volter-sdk-kit-components-kind-documents-W8USaiPh.js +0 -1
- package/dist/assets/volter-sdk-kit-components-primitives-DraftColorInput-Dd4u-Wtm.js +0 -1
- package/dist/assets/volter-sdk-kit-components-project-tool-documents-DFq82d8o.js +0 -1
- package/dist/assets/volter-sdk-kit-components-scene-documents-B73lYyVv.js +0 -1
- package/dist/assets/volter-sdk-kit-components-status-contributions-FTso27Xh.js +0 -1
- package/dist/assets/volter-sdk-kit-components-tool-documents-BbGwfFpc.js +0 -1
- package/dist/assets/volter-sdk-kit-components-tool-schema-form-BIF8LmJV.js +0 -1
- package/dist/assets/volter-sdk-kit-components-use-after-paint-CtKNo2UU.js +0 -1
- package/dist/assets/volter-sdk-kit-components-use-project-image-assets-G7f6izdS.js +0 -1
- package/dist/assets/volter-sdk-kit-components-workspace-history-B2vo6Xx_.js +0 -1
- package/dist/assets/volter-sdk-kit-components-world-documents-B5tULKmS.js +0 -1
- package/dist/assets/volter-sdk-kit-components-world-overlay-gestures-DDEiWrz7.js +0 -1
- package/dist/assets/volter-sdk-kit-composite-screenshot-BMOK3iYM.js +0 -1
- package/dist/assets/volter-sdk-kit-content-entry-source-registry-B9eUIMgv.js +0 -1
- package/dist/assets/volter-sdk-kit-contribution-surfaces-DC-uHDQg.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-canvas-reveal-DiRNBVRN.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-design-time-surfaces-Csc86Z_f.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-ontology-invariants-Brd3w7kt.js +0 -1
- package/dist/assets/volter-sdk-kit-coverage-session-vitals-BoNy6hEZ.js +0 -1
- package/dist/assets/volter-sdk-kit-creation-site-registry-CdhSUaPD.js +0 -1
- package/dist/assets/volter-sdk-kit-delegate-harness-registry-CHNkXHhB.js +0 -1
- package/dist/assets/volter-sdk-kit-document-areas-7iD_pTF6.js +0 -1
- package/dist/assets/volter-sdk-kit-document-context-registry-6DcBS8uQ.js +0 -1
- package/dist/assets/volter-sdk-kit-document-open-registry-CS2V2rTe.js +0 -1
- package/dist/assets/volter-sdk-kit-document-play-extension-DyULINB5.js +0 -1
- package/dist/assets/volter-sdk-kit-document-preview-source-YxLsIauQ.js +0 -1
- package/dist/assets/volter-sdk-kit-document-renderer-session-IoKOp6Se.js +0 -1
- package/dist/assets/volter-sdk-kit-document-stage-sessions-DSmPpree.js +0 -1
- package/dist/assets/volter-sdk-kit-document-viewports-CvdifVJF.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-api-CB1FgcVg.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-chrome-capture-B-e-WKT4.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-commands-BYWHMTwS.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-console-jCw-ErXD.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-current-view-CbBqd-eR.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-document-probe-BC-zqNPD.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-git-client-BQQFtPz9.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-hotkeys-BzoxjaxK.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-lease-B_3921d6.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-lease-view-Dwm149iL.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-mode-DOBZoYnf.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-notifications-BfExd624.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presence-DNnOAqPS.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presentation-activity-CFp63FEl.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-presentation-notice-Df1-39oQ.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-runtime-CCziNuJh.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-server-response-DJiPWdEl.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-session-attribution-qdIqiRBe.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-session-mode-r0EdgfW4.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-state-facets-ChaCu38O.js +0 -1
- package/dist/assets/volter-sdk-kit-editor-view-presentation-Dp6RpQY2.js +0 -1
- package/dist/assets/volter-sdk-kit-environment-images-BUDsa8Yi.js +0 -1
- package/dist/assets/volter-sdk-kit-eyedropper-session-CuB0NOuY.js +0 -1
- package/dist/assets/volter-sdk-kit-files-file-provider-DIDQ2_uI.js +0 -1
- package/dist/assets/volter-sdk-kit-files-project-files-CQvJk0Gq.js +0 -1
- package/dist/assets/volter-sdk-kit-finders-index-DKfmE3QQ.js +0 -1
- package/dist/assets/volter-sdk-kit-finders-scenes-from-entrypoint-selection-CmiBcR6h.js +0 -1
- package/dist/assets/volter-sdk-kit-frame-frame-parts-Dva44YHz.js +0 -1
- package/dist/assets/volter-sdk-kit-framed-document-capture-DB3Ncfrz.js +0 -1
- package/dist/assets/volter-sdk-kit-game-surface-defaults-Cj-0v8BH.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-export-state-Xf39gCAN.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-replay-F8jJrsPf.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-session-time-DTTj1olA.js +0 -1
- package/dist/assets/volter-sdk-kit-gameplay-sessions-CxKyk9Md.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-component-marks-BabNBUji.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-internals-CoK3Z_Xh.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-kind-icon-Cm6Wsuhy.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-menu-registry-DaGff9wa.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-node-rows-BcRUZUvZ.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-panel-view-BZoc7eJQ.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-projection-CHs2jgL8.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-row-media-PFIeRJqY.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-row-model-Cw1It5is.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-rows-Dssu1BMj.js +0 -1
- package/dist/assets/volter-sdk-kit-hierarchy-walk-B1L9eTXm.js +0 -1
- package/dist/assets/volter-sdk-kit-history-editor-session-BtVV5q7v.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-commands-TABAJNSR.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-delegate-DeK2Tm-B.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-limit-notices-BVoYaGBF.js +0 -1
- package/dist/assets/volter-sdk-kit-history-history-service-BHBRoss1.js +0 -1
- package/dist/assets/volter-sdk-kit-history-persistence-coordinator-n84--IYf.js +0 -1
- package/dist/assets/volter-sdk-kit-history-project-file-history-CcXjOv2P.js +0 -1
- package/dist/assets/volter-sdk-kit-history-project-root-history-backends-DTX8q5fG.js +0 -1
- package/dist/assets/volter-sdk-kit-history-resource-registry-CLkqOjdr.js +0 -1
- package/dist/assets/volter-sdk-kit-history-snapshot-store-DycW6GLB.js +0 -1
- package/dist/assets/volter-sdk-kit-history-source-history-backend-9xMoYlbd.js +0 -1
- package/dist/assets/volter-sdk-kit-hmr-registration-group-DmMHpNnB.js +0 -1
- package/dist/assets/volter-sdk-kit-hmr-stable-react-context-D-TLq4Hc.js +0 -1
- package/dist/assets/volter-sdk-kit-hotkeys-XirVHMg5.js +0 -1
- package/dist/assets/volter-sdk-kit-inference-diagnostics-CXk1gv7L.js +0 -1
- package/dist/assets/volter-sdk-kit-initial-project-Cbnj6h8K.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-active-subject-CZRJ1Iol.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-active-surface-gAahXjP2.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-compose-subject-BBlLRs6P.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-display-D546j-bp.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-document-subject-DDqyp_xw.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-game-subject-sQwCYXs1.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-model-DC9Hl3cj.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-node-media-DjPyEqvx.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-null-subject-Ct7EGK3P.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-serialize-Bq6tap3p.js +0 -1
- package/dist/assets/volter-sdk-kit-inspection-use-active-inspection-C_yp3gfW.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-presentation-Di1bDrzW.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-property-grouping-Hrg_OJm5.js +0 -1
- package/dist/assets/volter-sdk-kit-inspector-section-registry-CvrpGvES.js +0 -1
- package/dist/assets/volter-sdk-kit-instance-source-actions-BCuKBxGf.js +0 -1
- package/dist/assets/volter-sdk-kit-js-heap-KxSszS6k.js +0 -1
- package/dist/assets/volter-sdk-kit-key-actions-Wz9BljgB.js +0 -1
- package/dist/assets/volter-sdk-kit-keymap-presets-GXj7fO30.js +0 -1
- package/dist/assets/volter-sdk-kit-layout-policy-cFlperJi.js +0 -1
- package/dist/assets/volter-sdk-kit-light-explorer-model-CkrLkUUZ.js +0 -1
- package/dist/assets/volter-sdk-kit-live-canvas-frame-CIEkO3Ed.js +0 -1
- package/dist/assets/volter-sdk-kit-live-document-DhUo-Edg.js +0 -1
- package/dist/assets/volter-sdk-kit-live-gesture-lock-CMfHfSyJ.js +0 -1
- package/dist/assets/volter-sdk-kit-live-seam-evidence-BwAIj8fP.js +0 -1
- package/dist/assets/volter-sdk-kit-live-session-registry-DLpuZ5fm.js +0 -1
- package/dist/assets/volter-sdk-kit-live-transition-CzY_KNsh.js +0 -1
- package/dist/assets/volter-sdk-kit-manifest-project-D966gGPJ.js +0 -1
- package/dist/assets/volter-sdk-kit-module-fetch-diagnosis-BhBAOyzv.js +0 -1
- package/dist/assets/volter-sdk-kit-mount-failure-report-uZuQLIak.js +0 -1
- package/dist/assets/volter-sdk-kit-native-selection-style-DWR8dlSz.js +0 -1
- package/dist/assets/volter-sdk-kit-object3d-document-write-policy-Bj_jp-7_.js +0 -1
- package/dist/assets/volter-sdk-kit-packaged-runtime-iG7YMb12.js +0 -1
- package/dist/assets/volter-sdk-kit-performance-profiler-CNmFMe3k.js +0 -1
- package/dist/assets/volter-sdk-kit-performance-sources-Dn00aXW5.js +0 -1
- package/dist/assets/volter-sdk-kit-photograph-notice-Dfg0UxVZ.js +0 -1
- package/dist/assets/volter-sdk-kit-play-boot-phase-CXNgzv-J.js +0 -1
- package/dist/assets/volter-sdk-kit-play-camera-flight-DLwGfpJp.js +0 -1
- package/dist/assets/volter-sdk-kit-presentation-surface-cMmRpkGJ.js +0 -1
- package/dist/assets/volter-sdk-kit-product-command-Bu6DLKpE.js +0 -1
- package/dist/assets/volter-sdk-kit-project-adapter-BuzQScGI.js +0 -1
- package/dist/assets/volter-sdk-kit-project-asset-refresh-Bap7mqgb.js +0 -1
- package/dist/assets/volter-sdk-kit-project-asset-roots-By8xlXHl.js +0 -1
- package/dist/assets/volter-sdk-kit-project-local-state-ChdRwLow.js +0 -1
- package/dist/assets/volter-sdk-kit-project-manager-CLiEnNgu.js +0 -1
- package/dist/assets/volter-sdk-kit-project-module-changes-BDpD6OsB.js +0 -1
- package/dist/assets/volter-sdk-kit-project-module-split-CVNdzh8m.js +0 -1
- package/dist/assets/volter-sdk-kit-project-provenance-cp2gtKVj.js +0 -1
- package/dist/assets/volter-sdk-kit-project-ready-D8V6Kzge.js +0 -1
- package/dist/assets/volter-sdk-kit-project-shape-CClCrXxY.js +0 -1
- package/dist/assets/volter-sdk-kit-project-tools-CtP3bOpD.js +0 -1
- package/dist/assets/volter-sdk-kit-readiness-D0ouQROM.js +0 -1
- package/dist/assets/volter-sdk-kit-renderer-resource-counts-aXKN0rxR.js +0 -1
- package/dist/assets/volter-sdk-kit-reported-play-state-C-Mib-ba.js +0 -1
- package/dist/assets/volter-sdk-kit-resolve-contributed-command-BM8YcJz7.js +0 -1
- package/dist/assets/volter-sdk-kit-resolve-relative-specifier-CSTX2j7-.js +0 -1
- package/dist/assets/volter-sdk-kit-retained-document-states-QrHnyn4V.js +0 -1
- package/dist/assets/volter-sdk-kit-scene-document-plan-C9wHG6B7.js +0 -1
- package/dist/assets/volter-sdk-kit-scene-live-open-CXb4AskH.js +0 -1
- package/dist/assets/volter-sdk-kit-scoped-game-css-FdsRmDqV.js +0 -1
- package/dist/assets/volter-sdk-kit-served-url-DIf-qLum.js +0 -1
- package/dist/assets/volter-sdk-kit-session-close-COfy5ras.js +0 -1
- package/dist/assets/volter-sdk-kit-session-tombstone-BitY9Sdx.js +0 -1
- package/dist/assets/volter-sdk-kit-settings-settings-provider-BPuTDIxn.js +0 -1
- package/dist/assets/volter-sdk-kit-settings-store-BPOsFHZe.js +0 -1
- package/dist/assets/volter-sdk-kit-shell-store-DwHeZ5nQ.js +0 -1
- package/dist/assets/volter-sdk-kit-shell-store-door-BWHcu98B.js +0 -1
- package/dist/assets/volter-sdk-kit-source-conflict-CkxYCMk1.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-context-CP-upNgr.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-invalidation-CeDdEl0b.js +0 -1
- package/dist/assets/volter-sdk-kit-stage-store-registry-B2jyIREA.js +0 -1
- package/dist/assets/volter-sdk-kit-startup-failure-DWjZgwSJ.js +0 -1
- package/dist/assets/volter-sdk-kit-state-report-deferral-Dzam5Bu-.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-host-files-storage-BxTEyrKN.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-http-storage-T4fMC6Ww.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-index-C2Gf9k45.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-mem-storage-CcdOLba9.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-path-lock-r7SjMxYI.js +0 -1
- package/dist/assets/volter-sdk-kit-storage-paths-BWI0b699.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-StoryPreviewMount-DPyefE_s.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-compose-project-stories-Dz_zorT8.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-prefabs-finder-VOD4Fih8.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-prefabs-from-stories-BbJ4drXs.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-project-story-regions-CPPt7sAc.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-scope-CIIL7T3O.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-capture-DMWk2KXY.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-declared-medium-Bx-ygbVe.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-discovery-CafUDauh.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-dom-runtime-CiCD8tr1.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-grouping-BRGub3eG.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-presentation-Bt3rB_N9.js +0 -1
- package/dist/assets/volter-sdk-kit-stories-story-registry-bF3ym9Kn.js +0 -1
- package/dist/assets/volter-sdk-kit-story-document-openers-R2-yxXGg.js +0 -1
- package/dist/assets/volter-sdk-kit-story-thumbnails-CI-p0jom.js +0 -1
- package/dist/assets/volter-sdk-kit-surface-keyboard-Bclcg_ZX.js +0 -1
- package/dist/assets/volter-sdk-kit-surface-state-OwSMnQPF.js +0 -1
- package/dist/assets/volter-sdk-kit-system-seam-evidence-mhKxMLF-.js +0 -1
- package/dist/assets/volter-sdk-kit-tab-census-BkucfkR2.js +0 -1
- package/dist/assets/volter-sdk-kit-tab-lifecycle-client-xPlJR_Is.js +0 -1
- package/dist/assets/volter-sdk-kit-theme-library-BmQiddws.js +0 -1
- package/dist/assets/volter-sdk-kit-theme-preference-CY62ohS6.js +0 -1
- package/dist/assets/volter-sdk-kit-three-viewport-presentation-C4zfYkP5.js +0 -1
- package/dist/assets/volter-sdk-kit-tool-contribution-play-D-X4TndA.js +0 -1
- package/dist/assets/volter-sdk-kit-tool-loader-Bppn2i0e.js +0 -1
- package/dist/assets/volter-sdk-kit-transform-mode-request-DVP6KCfG.js +0 -1
- package/dist/assets/volter-sdk-kit-transient-hint-znMlkMOz.js +0 -1
- package/dist/assets/volter-sdk-kit-transport-strip-dGQ-YoNm.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-file-region-resolver-bA1RQVjN.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-inspect-vbzR9DTw.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-source-write-backend-jvrPvSXj.js +0 -1
- package/dist/assets/volter-sdk-kit-ui-source-tier-source-write-backend-_aDOX96f.js +0 -1
- package/dist/assets/volter-sdk-kit-user-local-state-C9PMe7ZC.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-activation-timings-Bl8_neTA.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-editor-controls-aUeFDe8t.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-presentation-IbDRhAjA.js +0 -1
- package/dist/assets/volter-sdk-kit-viewport-surface-status-B0m0crzV.js +0 -1
- package/dist/assets/volter-sdk-kit-wait-until-Bby0hAXq.js +0 -1
- package/dist/assets/volter-sdk-kit-worker-call-metrics-JG55IFWY.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-areas-D-wnNrv1.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-aux-commands-iFWD7R5b.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-available-documents-DEOtsr7U.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-core-utilities-Do_ivM3K.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-ids-CekfZZKH.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-registry-CtvIBYpT.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-document-restore-VAID48D1.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-host-commands-Ddx5Tgyl.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-persistence-gate-CXlifVZM.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-play-utilities-ByGVJzRW.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-presets-CjP5LvcE.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-regions-iau7y1g3.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-static-panels-B6jKhrp4.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-status-registry-g8wytHL5.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-storage-B5hTXq0f.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-style-LV2J3BUW.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-utility-commands-Ci_KJODl.js +0 -1
- package/dist/assets/volter-sdk-kit-workspace-utility-registry-BbjESGwy.js +0 -1
- package/dist/assets/volter-sdk-kit-world-adoption-DQ4KT5o5.js +0 -1
- package/dist/assets/volter-sdk-kit-world-canvas-viewport-state-r5rqWOVZ.js +0 -1
- package/dist/assets/volter-sdk-kit-world-document-routing-D-fYy4j5.js +0 -1
- package/dist/assets/volter-sdk-kit-world-pan-state-CMG7tsSx.js +0 -1
- package/dist/assets/volter-sdk-kit-write-pipe-DNEDBnz-.js +0 -1
- package/dist/assets/volter-sdk-layout-arrangements-CHD3ZMFe.js +0 -1
- package/dist/assets/volter-sdk-layouts-CCA7FuOC.js +0 -1
- package/dist/assets/volter-sdk-selection-D0kL_iDi.js +0 -1
- package/dist/assets/volter-sdk-session-command-table-DA_l3-71.js +0 -1
- package/dist/assets/volter-sdk-session-editor-brand-BF7c04d1.js +0 -1
- package/dist/assets/volter-sdk-session-editor-compatibility-DTohfZFv.js +0 -1
- package/dist/assets/volter-sdk-session-editor-control-protocol-BldcSvMF.js +0 -1
- package/dist/assets/volter-sdk-session-entrypoint-selection-readers-C5lBU-ru.js +0 -1
- package/dist/assets/volter-sdk-session-game-css-scope-BU2odzp5.js +0 -1
- package/dist/assets/volter-sdk-session-project-module-url-BXpMu1Rd.js +0 -1
- package/dist/assets/volter-sdk-session-relative-path-guard-QB40XSDf.js +0 -1
- package/dist/assets/volter-sdk-session-tool-contribution-convention-B_nVNyey.js +0 -1
- package/dist/assets/volter-sdk-types-CpvyGiQa.js +0 -1
- package/dist/assets/volter-sdk-views-DJ_MnaUh.js +0 -1
- package/dist/assets/volter-sdk-widgets-design-system-D7xN8pRO.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-appearance-Crp-pBLJ.js +0 -1
- package/dist/assets/volter-sdk-widgets-editor-material-MHO-HL-5.js +0 -1
- package/dist/assets/volter-sdk-widgets-icon-set-registry-BV2KyS5k.js +0 -1
- package/dist/assets/volter-sdk-widgets-index-Pv9HbBUF.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AlignmentGrid-vPIEJ2AQ.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-AssetSlotPicker-0kpmltFh.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-BorderEditor-C1igd7oH.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ColorPicker-B2hEex_l.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-CurveEditor-cyhMzK5L.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FilterEditor-DcQAkx63.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-FontPicker--uOgL4qW.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-GradientEditor-DTAtC77d.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ScrubbableInput-khJ7avew.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-ShadowEditor-eiGFiwHP.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-color-utils-Cd-F281s.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-curve-utils-C7uJEWC0.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-index-B5TWzor-.js +0 -1
- package/dist/assets/volter-sdk-widgets-inspector-widgets-shared-DEQKguQB.js +0 -1
- package/dist/assets/volter-sdk-widgets-interactive-edit-scope-Bl0RzyJQ.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Dialog-UyDjvCxC.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Fields-nF0yD3V1.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-List-D34mrQDy.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-StateSurface-CLSEwJ2u.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Surfaces-Bnz6CGdv.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tabs-BGh2nrPU.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Toolbar-DD17mnjd.js +0 -1
- package/dist/assets/volter-sdk-widgets-patterns-Tree-CCzpKURV.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-AnchoredMenu-rAsZA766.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Button-B1Ppeaoa.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ColorInput-CHAXdol_.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-DraftTextInput-CnNtxQXT.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-EditorIcon-Cimr9Mco.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-FormControls-CT_S601l.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-HoverPreview-B8HUvMqd.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-JsonInput-B4XDeGeD.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Layout-Bi7EShmW.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Menu-CKIw0gyB.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-NumberInput-Cm3QFgJj.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Panel-Bydp9OuQ.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-SectionHeader-CCux7aOb.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Text-CX8Zqrmp.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-ThemeRootPortal-9ZuvJNaQ.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Tooltip-DQ24NxRN.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-Vec3Input-B8ydBBhm.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-banner-tones-DJXfSNS6.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-clamp-to-viewport-BzMgToKr.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-editor-icons-RjhVjrNt.js +0 -1
- package/dist/assets/volter-sdk-widgets-primitives-panel-header-styles-CaqZYWvq.js +0 -1
- package/dist/assets/volter-sdk-widgets-theme-GZiAnowy.js +0 -1
- package/dist/assets/volter-sdk-widgets-z-index-CvywNZqF.js +0 -1
- package/dist/assets/volter-shared-fontawesome-D0om5i4C.js +0 -1
- package/dist/assets/volter-shared-jsx-dev-runtime-Nf2pZiIO.js +0 -1
- package/dist/assets/volter-shared-jsx-runtime-mOtwwECE.js +0 -1
- package/dist/assets/volter-shared-react-D-xjcqWm.js +0 -1
- package/dist/assets/volter-shared-react-dom-DdRTSMx8.js +0 -1
- package/dist/assets/volter-shared-react-dom-client-WSvYqY8Z.js +0 -1
- package/dist/assets/worker-CxcSX7C7.js +0 -8
package/dist-node/cli.js
CHANGED
|
@@ -199,7 +199,7 @@ var init_client = __esm({
|
|
|
199
199
|
const { code, detail } = describeFetchFailure2(error50);
|
|
200
200
|
if (options?.retryTransport === true && !retried && RETRYABLE_TRANSPORT_CODES2.has(code)) {
|
|
201
201
|
retried = true;
|
|
202
|
-
await new Promise((
|
|
202
|
+
await new Promise((resolve14) => setTimeout(resolve14, TRANSPORT_RETRY_DELAY_MS2));
|
|
203
203
|
continue;
|
|
204
204
|
}
|
|
205
205
|
throw new EditorCommandError2(
|
|
@@ -2038,8 +2038,8 @@ __export(blender_mcp_exports, {
|
|
|
2038
2038
|
serveBlenderMcp: () => serveBlenderMcp
|
|
2039
2039
|
});
|
|
2040
2040
|
import { randomUUID } from "node:crypto";
|
|
2041
|
-
import { mkdirSync as
|
|
2042
|
-
import { delimiter, dirname as dirname9, isAbsolute as isAbsolute6, relative as
|
|
2041
|
+
import { mkdirSync as mkdirSync8, readFileSync as readFileSync11, writeFileSync as writeFileSync8 } from "node:fs";
|
|
2042
|
+
import { delimiter, dirname as dirname9, isAbsolute as isAbsolute6, relative as relative6, sep as sep4 } from "node:path";
|
|
2043
2043
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2044
2044
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
2045
2045
|
import {
|
|
@@ -2049,7 +2049,7 @@ import {
|
|
|
2049
2049
|
ListToolsRequestSchema
|
|
2050
2050
|
} from "@modelcontextprotocol/sdk/types.js";
|
|
2051
2051
|
function projectRelative(project, absolute) {
|
|
2052
|
-
const rel =
|
|
2052
|
+
const rel = relative6(project, absolute).split(sep4).join("/");
|
|
2053
2053
|
if (rel === "" || rel.startsWith("../")) return null;
|
|
2054
2054
|
return rel;
|
|
2055
2055
|
}
|
|
@@ -2250,15 +2250,15 @@ var init_blender_mcp = __esm({
|
|
|
2250
2250
|
const bytes = Buffer.from(await spooled.arrayBuffer());
|
|
2251
2251
|
if (shipped === null) {
|
|
2252
2252
|
try {
|
|
2253
|
-
if (
|
|
2253
|
+
if (readFileSync11(onDisk).equals(bytes)) {
|
|
2254
2254
|
this.#seen.set(entry.path, stamp);
|
|
2255
2255
|
continue;
|
|
2256
2256
|
}
|
|
2257
2257
|
} catch (error50) {
|
|
2258
2258
|
if (error50.code !== "ENOENT") throw error50;
|
|
2259
2259
|
}
|
|
2260
|
-
|
|
2261
|
-
|
|
2260
|
+
mkdirSync8(dirname9(onDisk), { recursive: true });
|
|
2261
|
+
writeFileSync8(onDisk, bytes);
|
|
2262
2262
|
} else {
|
|
2263
2263
|
const query = new URLSearchParams({
|
|
2264
2264
|
path: shipped,
|
|
@@ -2353,7 +2353,7 @@ var init_blender_mcp = __esm({
|
|
|
2353
2353
|
|
|
2354
2354
|
// node/cli.ts
|
|
2355
2355
|
import { parseArgs } from "node:util";
|
|
2356
|
-
import { resolve as
|
|
2356
|
+
import { resolve as resolve13, dirname as dirname10 } from "node:path";
|
|
2357
2357
|
import { spawn as spawn5 } from "node:child_process";
|
|
2358
2358
|
import { fileURLToPath as fileURLToPath2 } from "node:url";
|
|
2359
2359
|
|
|
@@ -2384,7 +2384,7 @@ function hasManifest(dir) {
|
|
|
2384
2384
|
var package_default = {
|
|
2385
2385
|
name: "@volter/cyclotron",
|
|
2386
2386
|
author: "Volter AI, Inc.",
|
|
2387
|
-
version: "0.5.
|
|
2387
|
+
version: "0.5.205",
|
|
2388
2388
|
publishConfig: {
|
|
2389
2389
|
access: "public"
|
|
2390
2390
|
},
|
|
@@ -2440,28 +2440,28 @@ var package_default = {
|
|
|
2440
2440
|
adapterRequired: true,
|
|
2441
2441
|
workbench: {
|
|
2442
2442
|
"darwin-arm64": {
|
|
2443
|
-
release: "cyclotron-
|
|
2444
|
-
tarballSha256: "
|
|
2443
|
+
release: "cyclotron-4782d9a281ef-ec1e0e845c3a-darwin-arm64",
|
|
2444
|
+
tarballSha256: "2a57c0cbc8baa64114d727fe9be00e849f5b8257a8416b50189017f247982c55"
|
|
2445
2445
|
},
|
|
2446
2446
|
"linux-x64": {
|
|
2447
|
-
release: "cyclotron-
|
|
2448
|
-
tarballSha256: "
|
|
2447
|
+
release: "cyclotron-4782d9a281ef-ec1e0e845c3a-linux-x64",
|
|
2448
|
+
tarballSha256: "c23c4aadf241d10af59d4b64e0b944bff2316ceb384d5ad8f02604620418b8f7"
|
|
2449
2449
|
},
|
|
2450
2450
|
"win32-x64": {
|
|
2451
|
-
release: "cyclotron-
|
|
2452
|
-
tarballSha256: "
|
|
2451
|
+
release: "cyclotron-4782d9a281ef-ec1e0e845c3a-win32-x64",
|
|
2452
|
+
tarballSha256: "3eecc57767a754cb839ff81fd107db5a524c06ca164a1e3757602d62844967e4"
|
|
2453
2453
|
}
|
|
2454
2454
|
}
|
|
2455
2455
|
}
|
|
2456
2456
|
},
|
|
2457
2457
|
dependencies: {
|
|
2458
|
-
"@volter/editor-core": "0.5.
|
|
2459
|
-
"@volter/editor-blender": "0.1.
|
|
2460
|
-
"@volter/editor-threejs": "0.5.
|
|
2461
|
-
"@volter/blender-engine": "0.1.
|
|
2462
|
-
"@volter/project": "0.5.
|
|
2463
|
-
"@volter/sdk": "0.5.
|
|
2464
|
-
"@volter/live": "0.5.
|
|
2458
|
+
"@volter/editor-core": "0.5.205",
|
|
2459
|
+
"@volter/editor-blender": "0.1.144",
|
|
2460
|
+
"@volter/editor-threejs": "0.5.205",
|
|
2461
|
+
"@volter/blender-engine": "0.1.142",
|
|
2462
|
+
"@volter/project": "0.5.205",
|
|
2463
|
+
"@volter/sdk": "0.5.205",
|
|
2464
|
+
"@volter/live": "0.5.205",
|
|
2465
2465
|
"@modelcontextprotocol/sdk": "1.32.1",
|
|
2466
2466
|
typescript: "5.9.3",
|
|
2467
2467
|
undici: "7.29.1"
|
|
@@ -16645,6 +16645,22 @@ ${playable ? PLAYABLE.regionIncludes : ""} editor: { Layout: ModelLayout, style
|
|
|
16645
16645
|
}
|
|
16646
16646
|
return { targetDir: target, manifest };
|
|
16647
16647
|
}
|
|
16648
|
+
async function refreshStarterGuidance(projectDir, log = console.log) {
|
|
16649
|
+
const target = join2(projectDir, "AGENTS.md");
|
|
16650
|
+
let current;
|
|
16651
|
+
try {
|
|
16652
|
+
current = await readFile(target, "utf8");
|
|
16653
|
+
} catch {
|
|
16654
|
+
return;
|
|
16655
|
+
}
|
|
16656
|
+
const starter = await readFile(join2(productRoot, "starter", "AGENTS.md"), "utf8");
|
|
16657
|
+
const firstLine = (text2) => text2.split(/\r?\n/, 1)[0] ?? "";
|
|
16658
|
+
if (current === starter || firstLine(current) !== firstLine(starter)) return;
|
|
16659
|
+
await mkdir(join2(projectDir, ".volter"), { recursive: true });
|
|
16660
|
+
await writeFile(join2(projectDir, ".volter", "AGENTS.previous.md"), current);
|
|
16661
|
+
await writeFile(target, starter);
|
|
16662
|
+
log("AGENTS.md updated to the installed editor guidance (the previous copy is .volter/AGENTS.previous.md).");
|
|
16663
|
+
}
|
|
16648
16664
|
|
|
16649
16665
|
// node/startup.ts
|
|
16650
16666
|
import { existsSync as existsSync4 } from "node:fs";
|
|
@@ -16655,8 +16671,8 @@ import { dirname as dirname3, join as join4, resolve as resolve3 } from "node:pa
|
|
|
16655
16671
|
// ../sdk/src/session/project-upgrade.ts
|
|
16656
16672
|
import { spawn as spawn2 } from "node:child_process";
|
|
16657
16673
|
import { existsSync as existsSync3, lstatSync, readFileSync } from "node:fs";
|
|
16658
|
-
import { readFile as readFile2, rename, rm, writeFile as writeFile2 } from "node:fs/promises";
|
|
16659
|
-
import { dirname as dirname2, join as join3, resolve as resolve2 } from "node:path";
|
|
16674
|
+
import { mkdir as mkdir2, readdir as readdir2, readFile as readFile2, rename, rm, rmdir, writeFile as writeFile2 } from "node:fs/promises";
|
|
16675
|
+
import { dirname as dirname2, join as join3, relative as relative2, resolve as resolve2, sep } from "node:path";
|
|
16660
16676
|
|
|
16661
16677
|
// ../sdk/src/session/editor-compatibility.ts
|
|
16662
16678
|
var EXACT_SEMVER = /^(\d+)\.(\d+)\.(\d+)(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;
|
|
@@ -16674,9 +16690,9 @@ function compareSemver(a, b) {
|
|
|
16674
16690
|
}
|
|
16675
16691
|
|
|
16676
16692
|
// ../sdk/src/session/project-upgrade.ts
|
|
16677
|
-
var UPGRADE_USAGE = "upgrade [version] # move this project's @volter packages and its engine pin to one release (default: latest)";
|
|
16693
|
+
var UPGRADE_USAGE = "upgrade [version] # move this project's @volter packages and its engine pin to one release (default: latest); from a project made before 0.5.203, run the newest release's own: npx <package>@latest upgrade";
|
|
16678
16694
|
function upgradeLine(product) {
|
|
16679
|
-
return `npx ${product.packageName} upgrade`;
|
|
16695
|
+
return `npx ${product.packageName}@latest upgrade`;
|
|
16680
16696
|
}
|
|
16681
16697
|
function declaredRetiredProduct(product, project) {
|
|
16682
16698
|
let pkg;
|
|
@@ -16694,6 +16710,99 @@ function retiredProjectError(product, retired, project) {
|
|
|
16694
16710
|
);
|
|
16695
16711
|
}
|
|
16696
16712
|
var RENAMED_PRODUCT_FILES = [".mcp.json", ".codex/config.toml", "AGENTS.md", "CLAUDE.md"];
|
|
16713
|
+
var RENAMED_KIT_PACKAGES = [
|
|
16714
|
+
["@volter/editor-project", "@volter/project"],
|
|
16715
|
+
["@volter/editor-sdk", "@volter/sdk"],
|
|
16716
|
+
["@volter/editor-live", "@volter/live"],
|
|
16717
|
+
["@volter/editor-model-play", "@volter/play"]
|
|
16718
|
+
];
|
|
16719
|
+
var MOVED_TO_EDITOR = [
|
|
16720
|
+
["volter.adapter.ts", "editor/volter.adapter.ts"],
|
|
16721
|
+
["src/contributions", "editor/contributions"],
|
|
16722
|
+
["src/tools", "editor/tools"]
|
|
16723
|
+
];
|
|
16724
|
+
async function allFiles(path) {
|
|
16725
|
+
let entries;
|
|
16726
|
+
try {
|
|
16727
|
+
entries = await readdir2(path, { withFileTypes: true });
|
|
16728
|
+
} catch {
|
|
16729
|
+
return existsSync3(path) ? [path] : [];
|
|
16730
|
+
}
|
|
16731
|
+
const files = [];
|
|
16732
|
+
for (const entry of entries) {
|
|
16733
|
+
const child = join3(path, entry.name);
|
|
16734
|
+
if (entry.isDirectory()) files.push(...await allFiles(child));
|
|
16735
|
+
else files.push(child);
|
|
16736
|
+
}
|
|
16737
|
+
return files;
|
|
16738
|
+
}
|
|
16739
|
+
async function scriptFiles(dir) {
|
|
16740
|
+
const files = [];
|
|
16741
|
+
let entries;
|
|
16742
|
+
try {
|
|
16743
|
+
entries = await readdir2(dir, { withFileTypes: true });
|
|
16744
|
+
} catch {
|
|
16745
|
+
return files;
|
|
16746
|
+
}
|
|
16747
|
+
for (const entry of entries) {
|
|
16748
|
+
if (entry.name === "node_modules" || entry.name.startsWith(".")) continue;
|
|
16749
|
+
const path = join3(dir, entry.name);
|
|
16750
|
+
if (entry.isDirectory()) files.push(...await scriptFiles(path));
|
|
16751
|
+
else if (/\.(?:[cm]?[jt]sx?)$/.test(entry.name)) files.push(path);
|
|
16752
|
+
}
|
|
16753
|
+
return files;
|
|
16754
|
+
}
|
|
16755
|
+
async function projectSourceFiles(project) {
|
|
16756
|
+
const files = [];
|
|
16757
|
+
try {
|
|
16758
|
+
for (const entry of await readdir2(project, { withFileTypes: true })) {
|
|
16759
|
+
if (entry.isFile() && /\.(?:[cm]?[jt]sx?)$/.test(entry.name)) files.push(join3(project, entry.name));
|
|
16760
|
+
}
|
|
16761
|
+
} catch {
|
|
16762
|
+
}
|
|
16763
|
+
for (const folder of ["editor", "src", "scripts"]) files.push(...await scriptFiles(join3(project, folder)));
|
|
16764
|
+
return files;
|
|
16765
|
+
}
|
|
16766
|
+
function rewriteMovedPaths(text2) {
|
|
16767
|
+
return text2.replace(/(^|[^\w./-])(\.\/)?src\/(contributions|tools)(?=$|[/'"`\s),;:\]]|\.$)/gm, "$1$2editor/$3").replace(/(^|[^\w./-])(\.\/)?volter\.adapter\.ts\b/gm, "$1$2editor/volter.adapter.ts");
|
|
16768
|
+
}
|
|
16769
|
+
async function projectTextFiles(project) {
|
|
16770
|
+
const files = [];
|
|
16771
|
+
try {
|
|
16772
|
+
for (const entry of await readdir2(project, { withFileTypes: true })) {
|
|
16773
|
+
if (entry.isFile() && /(?:\.md|^tsconfig(?:\.[\w-]+)?\.json)$/i.test(entry.name)) files.push(join3(project, entry.name));
|
|
16774
|
+
}
|
|
16775
|
+
} catch {
|
|
16776
|
+
}
|
|
16777
|
+
const under = async (dir, pattern) => {
|
|
16778
|
+
for (const path of await allFiles(dir)) if (!path.includes(`${sep}node_modules${sep}`) && pattern.test(path)) files.push(path);
|
|
16779
|
+
};
|
|
16780
|
+
for (const folder of [".claude", ".agents", ".github"]) await under(join3(project, folder), /\.md$/i);
|
|
16781
|
+
await under(join3(project, ".volter", "catalog"), /\.json$/i);
|
|
16782
|
+
if (existsSync3(join3(project, ".volter", "scaffold-baseline.json"))) files.push(join3(project, ".volter", "scaffold-baseline.json"));
|
|
16783
|
+
return files;
|
|
16784
|
+
}
|
|
16785
|
+
function renameKitSpecifiers(text2) {
|
|
16786
|
+
let out = text2;
|
|
16787
|
+
for (const [from, to] of RENAMED_KIT_PACKAGES) {
|
|
16788
|
+
out = out.replace(new RegExp(`(['"\`]|node_modules\\/)${from.replace("/", "\\/")}(?=[/'"\`])`, "g"), `$1${to}`);
|
|
16789
|
+
}
|
|
16790
|
+
return out;
|
|
16791
|
+
}
|
|
16792
|
+
function rebaseRelativeSpecifiers(text2, fromDir, toDir, moved) {
|
|
16793
|
+
return text2.replace(
|
|
16794
|
+
/(\bfrom\s*|\bimport\s*\(\s*|\bimport\s+|\brequire\s*\(\s*|\bnew\s+URL\s*\(\s*|\bimport\.meta\.glob\s*\(\s*)(['"`])(\.{1,2}(?:\/[^'"`]*)?)\2/g,
|
|
16795
|
+
(whole, lead, quote, spec) => {
|
|
16796
|
+
const target = resolve2(fromDir, spec);
|
|
16797
|
+
if (fromDir === toDir && moved(target) === target) return whole;
|
|
16798
|
+
let next = relative2(toDir, moved(target)).split("\\").join("/");
|
|
16799
|
+
if (next === "") next = ".";
|
|
16800
|
+
if (!next.startsWith(".")) next = `./${next}`;
|
|
16801
|
+
if (spec.endsWith("/") && !next.endsWith("/")) next = `${next}/`;
|
|
16802
|
+
return `${lead}${quote}${next}${quote}`;
|
|
16803
|
+
}
|
|
16804
|
+
);
|
|
16805
|
+
}
|
|
16697
16806
|
function wholeWord(text2) {
|
|
16698
16807
|
return new RegExp(`(?<![\\w-])${text2.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}(?![\\w-])`, "g");
|
|
16699
16808
|
}
|
|
@@ -16704,6 +16813,9 @@ function declaredVersion(spec) {
|
|
|
16704
16813
|
const bare = spec?.replace(/^[\^~=v]+/, "");
|
|
16705
16814
|
return bare !== void 0 && EXACT_VERSION.test(bare) ? bare : null;
|
|
16706
16815
|
}
|
|
16816
|
+
function kitVersion(spec) {
|
|
16817
|
+
return declaredVersion(spec) ?? spec?.match(/^file:.*-(\d+\.\d+\.\d+)\.tgz$/)?.[1] ?? null;
|
|
16818
|
+
}
|
|
16707
16819
|
async function writeAll(files) {
|
|
16708
16820
|
const temp = (path) => `${path}.upgrade-${process.pid}.tmp`;
|
|
16709
16821
|
try {
|
|
@@ -16719,7 +16831,7 @@ async function writeAll(files) {
|
|
|
16719
16831
|
moved.push(file3);
|
|
16720
16832
|
}
|
|
16721
16833
|
} catch (error50) {
|
|
16722
|
-
for (const file3 of moved) await writeFile2(file3.path, file3.original).catch(() => {
|
|
16834
|
+
for (const file3 of moved) await (file3.created ? rm(file3.path, { force: true }) : writeFile2(file3.path, file3.original)).catch(() => {
|
|
16723
16835
|
});
|
|
16724
16836
|
await Promise.all(files.map((file3) => rm(temp(file3.path), { force: true })));
|
|
16725
16837
|
throw new Error(`The upgrade could not be put in place, and what had moved was put back: ${error50 instanceof Error ? error50.message : String(error50)}`);
|
|
@@ -16756,11 +16868,11 @@ function jsonLayout(raw) {
|
|
|
16756
16868
|
}
|
|
16757
16869
|
function npmView(spec) {
|
|
16758
16870
|
return new Promise((done, fail) => {
|
|
16759
|
-
|
|
16760
|
-
|
|
16761
|
-
|
|
16762
|
-
|
|
16763
|
-
});
|
|
16871
|
+
if (!/^@?[\w.-]+(?:\/[\w.-]+)?@[\w.+-]+$/.test(spec)) {
|
|
16872
|
+
fail(new Error(`${spec} is not a package and a version or tag.`));
|
|
16873
|
+
return;
|
|
16874
|
+
}
|
|
16875
|
+
const child = process.platform === "win32" ? spawn2(`npm view ${spec} version dependencies --json`, { windowsHide: true, stdio: ["ignore", "pipe", "pipe"], shell: true }) : spawn2("npm", ["view", spec, "version", "dependencies", "--json"], { stdio: ["ignore", "pipe", "pipe"] });
|
|
16764
16876
|
let out = "";
|
|
16765
16877
|
let err = "";
|
|
16766
16878
|
child.stdout.on("data", (chunk) => {
|
|
@@ -16816,7 +16928,7 @@ async function upgradeProject(product, requested, cwd = process.cwd()) {
|
|
|
16816
16928
|
const warnings = [];
|
|
16817
16929
|
const packageRaw = await readFile2(packagePath, "utf8");
|
|
16818
16930
|
const pkg = JSON.parse(packageRaw);
|
|
16819
|
-
const previousKit = pkg.devDependencies?.["@volter/project"] ?? pkg.dependencies?.["@volter/project"];
|
|
16931
|
+
const previousKit = pkg.devDependencies?.["@volter/project"] ?? pkg.dependencies?.["@volter/project"] ?? pkg.devDependencies?.["@volter/editor-project"] ?? pkg.dependencies?.["@volter/editor-project"];
|
|
16820
16932
|
const currentProduct = declaredVersion(pkg.dependencies?.[product.packageName] ?? pkg.devDependencies?.[product.packageName]);
|
|
16821
16933
|
for (const section of ["peerDependencies", "optionalDependencies"]) {
|
|
16822
16934
|
for (const [name, current] of Object.entries(pkg[section] ?? {})) {
|
|
@@ -16868,12 +16980,91 @@ async function upgradeProject(product, requested, cwd = process.cwd()) {
|
|
|
16868
16980
|
changed.push(`${file3}: names ${product.packageName} and \`${product.command}\``);
|
|
16869
16981
|
}
|
|
16870
16982
|
}
|
|
16983
|
+
for (const section of ["dependencies", "devDependencies"]) {
|
|
16984
|
+
const declared = pkg[section];
|
|
16985
|
+
if (declared === void 0) continue;
|
|
16986
|
+
for (const [from, to] of RENAMED_KIT_PACKAGES) {
|
|
16987
|
+
const current = declared[from];
|
|
16988
|
+
if (current === void 0) continue;
|
|
16989
|
+
if (declared[to] !== void 0) {
|
|
16990
|
+
delete declared[from];
|
|
16991
|
+
changed.push(`package.json ${section}: ${from} removed (${to} is already declared)`);
|
|
16992
|
+
} else {
|
|
16993
|
+
pkg[section] = renameKey(pkg[section], from, to, current);
|
|
16994
|
+
changed.push(`package.json ${section}: ${from} -> ${to}`);
|
|
16995
|
+
}
|
|
16996
|
+
packagesChanged = true;
|
|
16997
|
+
}
|
|
16998
|
+
}
|
|
16999
|
+
const projectPath = (path) => relative2(project, path).split("\\").join("/");
|
|
17000
|
+
const moves = [];
|
|
17001
|
+
for (const [from, to] of MOVED_TO_EDITOR) {
|
|
17002
|
+
const source = join3(project, from);
|
|
17003
|
+
if (existsSync3(source)) moves.push({ from: source, to: join3(project, to) });
|
|
17004
|
+
}
|
|
17005
|
+
const movedPath = (path) => {
|
|
17006
|
+
for (const move of moves) {
|
|
17007
|
+
if (path === move.from) return move.to;
|
|
17008
|
+
if (path.startsWith(move.from + sep)) return move.to + path.slice(move.from.length);
|
|
17009
|
+
const bare = move.from.replace(/\.ts$/, "");
|
|
17010
|
+
if (bare !== move.from && (path === bare || path === `${bare}.js`)) return move.to.replace(/\.ts$/, "") + path.slice(bare.length);
|
|
17011
|
+
}
|
|
17012
|
+
return path;
|
|
17013
|
+
};
|
|
17014
|
+
const collides = (path) => movedPath(path) !== path && existsSync3(movedPath(path));
|
|
17015
|
+
const stranded = [];
|
|
17016
|
+
for (const move of moves) for (const path of await allFiles(move.from)) if (collides(path)) stranded.push(path);
|
|
17017
|
+
for (const path of stranded)
|
|
17018
|
+
kept.push(`${projectPath(path)} stays where it is and is not read: ${projectPath(movedPath(path))} already exists; keep one of the two by hand`);
|
|
17019
|
+
const willMove = (path) => movedPath(path) !== path && !stranded.includes(path);
|
|
17020
|
+
const leftBehind = [];
|
|
17021
|
+
for (const path of await projectSourceFiles(project)) {
|
|
17022
|
+
const original = await readFile2(path, "utf8");
|
|
17023
|
+
const destination = willMove(path) ? movedPath(path) : path;
|
|
17024
|
+
const content = rewriteMovedPaths(
|
|
17025
|
+
rebaseRelativeSpecifiers(renameKitSpecifiers(original), dirname2(path), dirname2(destination), (p) => willMove(p) ? movedPath(p) : p)
|
|
17026
|
+
);
|
|
17027
|
+
if (destination !== path) {
|
|
17028
|
+
textFiles.push({ path: destination, content, original: "", created: true });
|
|
17029
|
+
leftBehind.push(path);
|
|
17030
|
+
} else if (content !== original) {
|
|
17031
|
+
textFiles.push({ path, content, original });
|
|
17032
|
+
changed.push(`${projectPath(path)}: names the kit's current packages and the moved files where they now are`);
|
|
17033
|
+
if (path.startsWith(join3(project, "src") + sep) && !stranded.includes(path) && /(['"`])(?:\.{1,2}\/)+[^'"`]*\beditor\//.test(content) && !/(['"`])(?:\.{1,2}\/)+[^'"`]*\beditor\//.test(original))
|
|
17034
|
+
kept.push(`${projectPath(path)} now imports from editor/, which a game build refuses from 0.5.203: move what it uses out of editor/ (src/ is the game)`);
|
|
17035
|
+
}
|
|
17036
|
+
}
|
|
17037
|
+
for (const move of moves) {
|
|
17038
|
+
if ((await allFiles(move.from)).some((path) => !stranded.includes(path)))
|
|
17039
|
+
changed.push(`${projectPath(move.from)} -> ${projectPath(move.to)} (a project's editor side lives in editor/ from 0.5.203)`);
|
|
17040
|
+
}
|
|
17041
|
+
for (const path of await projectTextFiles(project)) {
|
|
17042
|
+
const original = await readFile2(path, "utf8");
|
|
17043
|
+
const content = rewriteMovedPaths(renameKitSpecifiers(original));
|
|
17044
|
+
if (content === original) continue;
|
|
17045
|
+
textFiles.push({ path, content, original });
|
|
17046
|
+
changed.push(`${projectPath(path)}: names the moved files and the kit's packages where they now are`);
|
|
17047
|
+
}
|
|
17048
|
+
const volter = pkg["volter"];
|
|
17049
|
+
const tools = volter !== null && typeof volter === "object" && !Array.isArray(volter) ? volter.tools : void 0;
|
|
17050
|
+
if (Array.isArray(tools)) {
|
|
17051
|
+
const rewritten = tools.map((registration) => {
|
|
17052
|
+
const entry = typeof registration === "string" ? registration : registration?.entry;
|
|
17053
|
+
if (typeof entry !== "string" || !entry.startsWith("./")) return registration;
|
|
17054
|
+
const next = `./${projectPath(movedPath(join3(project, entry.slice(2))))}`;
|
|
17055
|
+
if (next === entry) return registration;
|
|
17056
|
+
changed.push(`package.json volter.tools: ${entry} -> ${next}`);
|
|
17057
|
+
packagesChanged = true;
|
|
17058
|
+
return typeof registration === "string" ? next : { ...registration, entry: next };
|
|
17059
|
+
});
|
|
17060
|
+
volter.tools = rewritten;
|
|
17061
|
+
}
|
|
16871
17062
|
for (const section of ["dependencies", "devDependencies"]) {
|
|
16872
17063
|
const declared = pkg[section];
|
|
16873
17064
|
if (!declared) continue;
|
|
16874
17065
|
for (const [name, current] of Object.entries(declared)) {
|
|
16875
17066
|
if (!name.startsWith("@volter/")) continue;
|
|
16876
|
-
const target = name === product.packageName ? release.version : release.dependencies[name] ?? (current === previousKit ? kit : void 0);
|
|
17067
|
+
const target = name === product.packageName ? release.version : release.dependencies[name] ?? (current === previousKit || kitVersion(current) !== null && kitVersion(current) === kitVersion(previousKit) ? kit : void 0);
|
|
16877
17068
|
if (target === void 0) {
|
|
16878
17069
|
kept.push(`package.json keeps ${name}@${current}: ${product.packageName}@${release.version} does not name it`);
|
|
16879
17070
|
continue;
|
|
@@ -16881,7 +17072,7 @@ async function upgradeProject(product, requested, cwd = process.cwd()) {
|
|
|
16881
17072
|
if (current === target) continue;
|
|
16882
17073
|
declared[name] = target;
|
|
16883
17074
|
packagesChanged = true;
|
|
16884
|
-
changed.push(`package.json ${section}: ${name} ${current} -> ${target}`);
|
|
17075
|
+
changed.push(current.startsWith("file:") ? `package.json ${section}: ${name} was the local tarball ${current}; it is now ${target} from the registry` : `package.json ${section}: ${name} ${current} -> ${target}`);
|
|
16885
17076
|
}
|
|
16886
17077
|
}
|
|
16887
17078
|
const manifestPath = join3(project, MANIFEST_FILENAME);
|
|
@@ -16901,7 +17092,7 @@ async function upgradeProject(product, requested, cwd = process.cwd()) {
|
|
|
16901
17092
|
manifest.engine = { ...manifest.engine, version: engine };
|
|
16902
17093
|
changed.push(`${MANIFEST_FILENAME} engine.version: ${typeof pinned === "string" ? pinned : "(none)"} -> ${engine}`);
|
|
16903
17094
|
}
|
|
16904
|
-
const linked = (() => {
|
|
17095
|
+
const linked = product.linksNodeModules === true || (() => {
|
|
16905
17096
|
try {
|
|
16906
17097
|
return lstatSync(join3(project, "node_modules")).isSymbolicLink();
|
|
16907
17098
|
} catch {
|
|
@@ -16910,12 +17101,39 @@ async function upgradeProject(product, requested, cwd = process.cwd()) {
|
|
|
16910
17101
|
})();
|
|
16911
17102
|
const locks = packagesChanged && !linked ? (await Promise.all([join3(project, "package-lock.json"), join3(project, "node_modules", ".package-lock.json")].map(lockWithoutVolter))).filter((lock) => lock !== null) : [];
|
|
16912
17103
|
if (locks.length > 0) changed.push("package-lock.json: the old @volter rows dropped, so npm install resolves the new ones");
|
|
16913
|
-
|
|
16914
|
-
|
|
16915
|
-
|
|
16916
|
-
|
|
16917
|
-
|
|
16918
|
-
|
|
17104
|
+
const madeDirs = [];
|
|
17105
|
+
for (const file3 of textFiles) {
|
|
17106
|
+
if (!file3.created) continue;
|
|
17107
|
+
const chain = [];
|
|
17108
|
+
for (let dir = dirname2(file3.path); !existsSync3(dir) && dir !== dirname2(dir); dir = dirname2(dir)) chain.unshift(dir);
|
|
17109
|
+
for (const dir of chain) {
|
|
17110
|
+
await mkdir2(dir);
|
|
17111
|
+
madeDirs.push(dir);
|
|
17112
|
+
}
|
|
17113
|
+
}
|
|
17114
|
+
try {
|
|
17115
|
+
await writeAll([
|
|
17116
|
+
...packagesChanged ? [{ path: packagePath, content: jsonLayout(packageRaw)(pkg), original: packageRaw }] : [],
|
|
17117
|
+
...pinChanged ? [{ path: manifestPath, content: jsonLayout(manifestRaw)(manifest), original: manifestRaw }] : [],
|
|
17118
|
+
...textFiles,
|
|
17119
|
+
...locks
|
|
17120
|
+
]);
|
|
17121
|
+
} catch (error50) {
|
|
17122
|
+
for (const dir of madeDirs.reverse()) await rmdir(dir).catch(() => void 0);
|
|
17123
|
+
throw error50;
|
|
17124
|
+
}
|
|
17125
|
+
const failed = [];
|
|
17126
|
+
const leftover = (path, error50) => (failed.push(path), kept.push(`${projectPath(path)} could not be removed (${error50 instanceof Error ? error50.message : String(error50)}); the editor does not read it, so delete it by hand`));
|
|
17127
|
+
for (const path of leftBehind) await rm(path).catch((error50) => leftover(path, error50));
|
|
17128
|
+
for (const move of moves) {
|
|
17129
|
+
for (const path of await allFiles(move.from)) {
|
|
17130
|
+
if (leftBehind.includes(path) || stranded.includes(path)) continue;
|
|
17131
|
+
const to = movedPath(path);
|
|
17132
|
+
await mkdir2(dirname2(to), { recursive: true });
|
|
17133
|
+
await rename(path, to).catch((error50) => leftover(path, error50));
|
|
17134
|
+
}
|
|
17135
|
+
if (!move.from.endsWith(".ts") && ![...failed, ...stranded].some((path) => path.startsWith(move.from + sep))) await rm(move.from, { recursive: true, force: true }).catch(() => void 0);
|
|
17136
|
+
}
|
|
16919
17137
|
for (const line of warnings) console.warn(`! ${line}`);
|
|
16920
17138
|
console.log(changed.length > 0 ? `Upgraded ${project} to ${product.packageName}@${release.version} (engine ${engine}):` : `${project} is already on ${product.packageName}@${release.version} (engine ${engine}).`);
|
|
16921
17139
|
for (const line of changed) console.log(` + ${line}`);
|
|
@@ -16957,11 +17175,62 @@ async function startupProject(create, { cwd = process.cwd(), home = homedir() }
|
|
|
16957
17175
|
|
|
16958
17176
|
// node/chat.ts
|
|
16959
17177
|
import { connect } from "@volter/live";
|
|
17178
|
+
|
|
17179
|
+
// ../sdk/src/session/registry-format.ts
|
|
17180
|
+
import {
|
|
17181
|
+
mkdirSync,
|
|
17182
|
+
readdirSync,
|
|
17183
|
+
readFileSync as readFileSync2,
|
|
17184
|
+
realpathSync,
|
|
17185
|
+
unlinkSync,
|
|
17186
|
+
writeFileSync
|
|
17187
|
+
} from "node:fs";
|
|
17188
|
+
import { homedir as homedir2 } from "node:os";
|
|
17189
|
+
import { join as join5, resolve as resolve4 } from "node:path";
|
|
17190
|
+
var EDITOR_SESSIONS_REGISTRY_FILE = join5(homedir2(), ".volter", "editor-sessions.json");
|
|
17191
|
+
function isEditorSessionEntry(v) {
|
|
17192
|
+
if (typeof v !== "object" || v === null) return false;
|
|
17193
|
+
const s = v;
|
|
17194
|
+
const optionalIdentity = (value) => value === void 0 || value === null || typeof value === "string";
|
|
17195
|
+
return (typeof s["project"] === "string" || s["project"] === null) && typeof s["port"] === "number" && typeof s["pid"] === "number" && typeof s["startedAt"] === "string" && optionalIdentity(s["sessionId"]) && optionalIdentity(s["controlSecret"]) && optionalIdentity(s["repositoryId"]) && optionalIdentity(s["worktreeId"]) && optionalIdentity(s["worktreeRoot"]) && optionalIdentity(s["projectRelativePath"]) && optionalIdentity(s["branch"]) && optionalIdentity(s["headCommit"]) && optionalIdentity(s["baseCommit"]);
|
|
17196
|
+
}
|
|
17197
|
+
function normalizeEditorSessionEntry(session) {
|
|
17198
|
+
return {
|
|
17199
|
+
...session,
|
|
17200
|
+
sessionId: session.sessionId ?? null,
|
|
17201
|
+
controlSecret: session.controlSecret ?? null,
|
|
17202
|
+
repositoryId: session.repositoryId ?? null,
|
|
17203
|
+
worktreeId: session.worktreeId ?? null,
|
|
17204
|
+
worktreeRoot: session.worktreeRoot ?? null,
|
|
17205
|
+
projectRelativePath: session.projectRelativePath ?? null,
|
|
17206
|
+
branch: session.branch ?? null,
|
|
17207
|
+
headCommit: session.headCommit ?? null,
|
|
17208
|
+
baseCommit: session.baseCommit ?? null
|
|
17209
|
+
};
|
|
17210
|
+
}
|
|
17211
|
+
function pidAlive(pid) {
|
|
17212
|
+
try {
|
|
17213
|
+
process.kill(pid, 0);
|
|
17214
|
+
return true;
|
|
17215
|
+
} catch (error50) {
|
|
17216
|
+
return error50.code === "EPERM";
|
|
17217
|
+
}
|
|
17218
|
+
}
|
|
17219
|
+
function readLiveRegisteredSessions() {
|
|
17220
|
+
try {
|
|
17221
|
+
const raw = JSON.parse(readFileSync2(EDITOR_SESSIONS_REGISTRY_FILE, "utf8"));
|
|
17222
|
+
return Array.isArray(raw) ? raw.filter(isEditorSessionEntry).map(normalizeEditorSessionEntry).filter((s) => pidAlive(s.pid)) : [];
|
|
17223
|
+
} catch {
|
|
17224
|
+
return [];
|
|
17225
|
+
}
|
|
17226
|
+
}
|
|
17227
|
+
|
|
17228
|
+
// node/chat.ts
|
|
16960
17229
|
var CHAT_USAGE = "chat status | chat send <prompt> | chat stop";
|
|
16961
17230
|
async function chat(args) {
|
|
16962
17231
|
const [action, prompt] = args;
|
|
16963
17232
|
if (!["status", "send", "stop"].includes(action ?? "") || args.length !== (action === "send" ? 2 : 1) || action === "send" && !prompt?.trim()) throw new Error(`Usage: cyclotron ${CHAT_USAGE}`);
|
|
16964
|
-
const { editor } = await connect();
|
|
17233
|
+
const { editor, session } = await connect();
|
|
16965
17234
|
const state = await editor.command("supercode.frontend.status", true);
|
|
16966
17235
|
const view = await editor.command("volter.chat.inspect");
|
|
16967
17236
|
if (action === "status") return { ...state, focusedSessionResource: view.sessionResource };
|
|
@@ -16972,8 +17241,38 @@ async function chat(args) {
|
|
|
16972
17241
|
if (!connection && !draft || !connection && state.setupHandoff?.complete !== true) {
|
|
16973
17242
|
throw new Error("Chat is not ready. Open Chat in the editor and choose an agent or complete its sign-in, then run chat status.");
|
|
16974
17243
|
}
|
|
16975
|
-
if (action === "send" &&
|
|
16976
|
-
throw new Error("Chat
|
|
17244
|
+
if (action === "send" && connection?.pendingRequests?.length) {
|
|
17245
|
+
throw new Error("Chat is waiting on an approval in the editor. Answer it there (or use chat stop), then send.");
|
|
17246
|
+
}
|
|
17247
|
+
if (action === "send" && state.busy) {
|
|
17248
|
+
const entry = readLiveRegisteredSessions().find((s) => s.port === session.port);
|
|
17249
|
+
const origin = `http://127.0.0.1:${session.port}`;
|
|
17250
|
+
const response = await fetch(`${origin}/__editor/harness-chat/steer`, {
|
|
17251
|
+
method: "POST",
|
|
17252
|
+
headers: {
|
|
17253
|
+
"Content-Type": "application/json",
|
|
17254
|
+
Origin: origin,
|
|
17255
|
+
...entry?.controlSecret ? { "x-volter-editor-control": entry.controlSecret } : {}
|
|
17256
|
+
},
|
|
17257
|
+
body: JSON.stringify({ text: prompt })
|
|
17258
|
+
});
|
|
17259
|
+
const said = await response.json().catch(() => null);
|
|
17260
|
+
if (response.ok && said?.queued) {
|
|
17261
|
+
return {
|
|
17262
|
+
queued: true,
|
|
17263
|
+
sessionId: connection?.sessionId,
|
|
17264
|
+
note: "Queued into the running turn: the agent reads it at its next step. Nothing confirms delivery; the Chat shows it when it lands."
|
|
17265
|
+
};
|
|
17266
|
+
}
|
|
17267
|
+
if (said?.state === "waiting") {
|
|
17268
|
+
throw new Error("Chat is waiting on an approval in the editor. Answer it there (or use chat stop), then send.");
|
|
17269
|
+
}
|
|
17270
|
+
if (said?.state === "unknown") {
|
|
17271
|
+
throw new Error("Chat's turn could not be read, so the prompt was not sent (a turn may be running). Run chat status, then send again.");
|
|
17272
|
+
}
|
|
17273
|
+
if (said?.state !== "idle") {
|
|
17274
|
+
throw new Error(`Chat did not take the prompt into its running turn: ${said?.error ?? `HTTP ${response.status}`}`);
|
|
17275
|
+
}
|
|
16977
17276
|
}
|
|
16978
17277
|
if (!resource && connection) await editor.command("volter.chat.openSession", `supercode://${connection.id}/conversation`);
|
|
16979
17278
|
if (action === "stop") {
|
|
@@ -17020,14 +17319,14 @@ async function playLog(options) {
|
|
|
17020
17319
|
}
|
|
17021
17320
|
|
|
17022
17321
|
// node/add-play.ts
|
|
17023
|
-
import { existsSync as existsSync5, lstatSync as lstatSync2, realpathSync, statSync } from "node:fs";
|
|
17024
|
-
import { mkdir as
|
|
17025
|
-
import { dirname as dirname4, isAbsolute, join as
|
|
17322
|
+
import { existsSync as existsSync5, lstatSync as lstatSync2, realpathSync as realpathSync2, statSync } from "node:fs";
|
|
17323
|
+
import { mkdir as mkdir3, readFile as readFile4, readdir as readdir3, rm as rm2, rmdir as rmdir2, writeFile as writeFile3 } from "node:fs/promises";
|
|
17324
|
+
import { dirname as dirname4, isAbsolute, join as join6, posix, relative as relative3, resolve as resolve5 } from "node:path";
|
|
17026
17325
|
var ADD_PLAY_USAGE = "add-play [folder] # make a models project playable: Play deps, UI root, a first Play script for its model";
|
|
17027
17326
|
async function playScripts(project) {
|
|
17028
|
-
const src =
|
|
17327
|
+
const src = join6(project, "src");
|
|
17029
17328
|
if (!existsSync5(src)) return [];
|
|
17030
|
-
const entries = await
|
|
17329
|
+
const entries = await readdir3(src, { recursive: true });
|
|
17031
17330
|
return entries.map((entry) => `src/${entry.replace(/\\/g, "/")}`).filter((path) => path.endsWith(".play.ts") && !path.includes("/node_modules/"));
|
|
17032
17331
|
}
|
|
17033
17332
|
function occupied(path) {
|
|
@@ -17039,7 +17338,7 @@ function occupied(path) {
|
|
|
17039
17338
|
}
|
|
17040
17339
|
}
|
|
17041
17340
|
function inside(root, path) {
|
|
17042
|
-
const rel =
|
|
17341
|
+
const rel = relative3(root, path);
|
|
17043
17342
|
return rel === "" || !rel.startsWith("..") && !isAbsolute(rel);
|
|
17044
17343
|
}
|
|
17045
17344
|
function blocked(project, realProject, path) {
|
|
@@ -17049,13 +17348,13 @@ function blocked(project, realProject, path) {
|
|
|
17049
17348
|
if (!occupied(dir)) continue;
|
|
17050
17349
|
if (deepest === project) deepest = dir;
|
|
17051
17350
|
try {
|
|
17052
|
-
if (!statSync(dir).isDirectory()) return `${
|
|
17351
|
+
if (!statSync(dir).isDirectory()) return `${relative3(project, dir)} is not a folder`;
|
|
17053
17352
|
} catch {
|
|
17054
|
-
return `${
|
|
17353
|
+
return `${relative3(project, dir)} is a dangling link`;
|
|
17055
17354
|
}
|
|
17056
17355
|
}
|
|
17057
|
-
const real =
|
|
17058
|
-
if (!inside(realProject, real)) return `${
|
|
17356
|
+
const real = realpathSync2(deepest);
|
|
17357
|
+
if (!inside(realProject, real)) return `${relative3(project, deepest) || "."} resolves outside the project, to ${real}`;
|
|
17059
17358
|
return null;
|
|
17060
17359
|
}
|
|
17061
17360
|
function missingFolders(project, file3) {
|
|
@@ -17065,14 +17364,14 @@ function missingFolders(project, file3) {
|
|
|
17065
17364
|
}
|
|
17066
17365
|
async function playModel(project, adapter) {
|
|
17067
17366
|
const declared = adapter === null ? void 0 : /default:\s*'model:(src\/models\/[^']+\.blend)'/.exec(adapter)?.[1];
|
|
17068
|
-
if (declared !== void 0 && existsSync5(
|
|
17069
|
-
const models =
|
|
17070
|
-
const blends = existsSync5(models) ? (await
|
|
17367
|
+
if (declared !== void 0 && existsSync5(join6(project, declared))) return declared;
|
|
17368
|
+
const models = join6(project, "src", "models");
|
|
17369
|
+
const blends = existsSync5(models) ? (await readdir3(models, { recursive: true })).map((entry) => `src/models/${entry.replace(/\\/g, "/")}`).filter((path) => path.endsWith(".blend")) : [];
|
|
17071
17370
|
if (blends.length === 1) return blends[0];
|
|
17072
17371
|
return { why: blends.length === 0 ? "the project has no src/models/*.blend for it to drive" : `the project has ${blends.length} models (${blends.join(", ")}) and its adapter's default document is none of them` };
|
|
17073
17372
|
}
|
|
17074
17373
|
async function firstPlaySet(model) {
|
|
17075
|
-
const starter = (name) => readFile4(
|
|
17374
|
+
const starter = (name) => readFile4(join6(productRoot, "starter", "add-play", name), "utf8");
|
|
17076
17375
|
const folder = posix.dirname(model);
|
|
17077
17376
|
const state = posix.relative(posix.dirname(PLAY_SCAFFOLD.uiRoot.entry), posix.join(folder, "game-state"));
|
|
17078
17377
|
return [
|
|
@@ -17088,11 +17387,11 @@ function jsonLayout2(raw) {
|
|
|
17088
17387
|
return (value) => JSON.stringify(value, null, indent).replace(/\n/g, eol) + trailing;
|
|
17089
17388
|
}
|
|
17090
17389
|
async function addPlay(folder) {
|
|
17091
|
-
const project =
|
|
17092
|
-
const manifestPath =
|
|
17390
|
+
const project = resolve5(folder);
|
|
17391
|
+
const manifestPath = join6(project, MANIFEST_FILENAME);
|
|
17093
17392
|
if (!existsSync5(manifestPath)) throw new Error(`${project} is not a Cyclotron project: it has no ${MANIFEST_FILENAME}.`);
|
|
17094
|
-
const realProject =
|
|
17095
|
-
const packagePath =
|
|
17393
|
+
const realProject = realpathSync2(project);
|
|
17394
|
+
const packagePath = join6(project, "package.json");
|
|
17096
17395
|
if (!existsSync5(packagePath)) throw new Error(`${project} has no package.json to declare the Play dependencies in.`);
|
|
17097
17396
|
const { kit } = await productVersions();
|
|
17098
17397
|
const added = [];
|
|
@@ -17112,7 +17411,7 @@ async function addPlay(folder) {
|
|
|
17112
17411
|
added.push(`package.json ${section}: ${name}@${version3}`);
|
|
17113
17412
|
}
|
|
17114
17413
|
}
|
|
17115
|
-
const adapterPath =
|
|
17414
|
+
const adapterPath = join6(project, "editor/volter.adapter.ts");
|
|
17116
17415
|
const adapterSource = existsSync5(adapterPath) ? await readFile4(adapterPath, "utf8") : null;
|
|
17117
17416
|
let model = null;
|
|
17118
17417
|
let example = null;
|
|
@@ -17126,7 +17425,7 @@ async function addPlay(folder) {
|
|
|
17126
17425
|
} else {
|
|
17127
17426
|
const set3 = await firstPlaySet(chosen);
|
|
17128
17427
|
const refusals = set3.flatMap(({ to }) => {
|
|
17129
|
-
const reason = blocked(project, realProject,
|
|
17428
|
+
const reason = blocked(project, realProject, join6(project, to));
|
|
17130
17429
|
return reason === null ? [] : [`${to}: ${reason}`];
|
|
17131
17430
|
});
|
|
17132
17431
|
if (refusals.length > 0) {
|
|
@@ -17144,7 +17443,7 @@ async function addPlay(folder) {
|
|
|
17144
17443
|
const roots = manifest.roots ?? [];
|
|
17145
17444
|
if (roots.some((root) => root.id === PLAY_SCAFFOLD.uiRoot.id)) {
|
|
17146
17445
|
kept.push(`${MANIFEST_FILENAME} already has a "${PLAY_SCAFFOLD.uiRoot.id}" root`);
|
|
17147
|
-
} else if (example !== null || existsSync5(
|
|
17446
|
+
} else if (example !== null || existsSync5(join6(project, PLAY_SCAFFOLD.uiRoot.entry))) {
|
|
17148
17447
|
manifest.roots = [...roots, { ...PLAY_SCAFFOLD.uiRoot }];
|
|
17149
17448
|
manifestChanged = true;
|
|
17150
17449
|
added.push(`${MANIFEST_FILENAME} root: ${JSON.stringify(PLAY_SCAFFOLD.uiRoot)}`);
|
|
@@ -17172,7 +17471,7 @@ async function addPlay(folder) {
|
|
|
17172
17471
|
}
|
|
17173
17472
|
adapter = { original: adapterSource, next };
|
|
17174
17473
|
}
|
|
17175
|
-
const tsconfigPath =
|
|
17474
|
+
const tsconfigPath = join6(project, "tsconfig.json");
|
|
17176
17475
|
const writeTsconfig = !occupied(tsconfigPath);
|
|
17177
17476
|
if (writeTsconfig) added.push("tsconfig.json");
|
|
17178
17477
|
else if (!existsSync5(tsconfigPath))
|
|
@@ -17182,9 +17481,9 @@ async function addPlay(folder) {
|
|
|
17182
17481
|
const created = /* @__PURE__ */ new Set();
|
|
17183
17482
|
try {
|
|
17184
17483
|
for (const { to, content } of example) {
|
|
17185
|
-
const target =
|
|
17484
|
+
const target = join6(project, to);
|
|
17186
17485
|
for (const dir of missingFolders(project, target)) created.add(dir);
|
|
17187
|
-
await
|
|
17486
|
+
await mkdir3(dirname4(target), { recursive: true });
|
|
17188
17487
|
await writeFile3(target, content, { flag: "wx" });
|
|
17189
17488
|
written.push(target);
|
|
17190
17489
|
}
|
|
@@ -17193,9 +17492,9 @@ async function addPlay(folder) {
|
|
|
17193
17492
|
const remaining = [];
|
|
17194
17493
|
for (const dir of [...created].sort((a, b) => b.length - a.length)) {
|
|
17195
17494
|
try {
|
|
17196
|
-
await
|
|
17495
|
+
await rmdir2(dir);
|
|
17197
17496
|
} catch {
|
|
17198
|
-
if (occupied(dir)) remaining.push(
|
|
17497
|
+
if (occupied(dir)) remaining.push(relative3(project, dir));
|
|
17199
17498
|
}
|
|
17200
17499
|
}
|
|
17201
17500
|
const reason = error50 instanceof Error ? error50.message : String(error50);
|
|
@@ -17214,7 +17513,7 @@ async function addPlay(folder) {
|
|
|
17214
17513
|
console.log("Next:");
|
|
17215
17514
|
const linked = (() => {
|
|
17216
17515
|
try {
|
|
17217
|
-
return lstatSync2(
|
|
17516
|
+
return lstatSync2(join6(project, "node_modules")).isSymbolicLink();
|
|
17218
17517
|
} catch {
|
|
17219
17518
|
return false;
|
|
17220
17519
|
}
|
|
@@ -17317,7 +17616,7 @@ The play log has the entry: cyclotron play-log --kind script-error${documentId ?
|
|
|
17317
17616
|
lastProgressAt = now;
|
|
17318
17617
|
console.error(`Play is on; waiting for the game's first frame (${Math.round((now - startedAt) / 1e3)}s). The tab draws frames only while it is visible \u2014 is it hidden or minimised?`);
|
|
17319
17618
|
}
|
|
17320
|
-
await new Promise((
|
|
17619
|
+
await new Promise((resolve14) => setTimeout(resolve14, 250));
|
|
17321
17620
|
current = await state(args);
|
|
17322
17621
|
}
|
|
17323
17622
|
return current;
|
|
@@ -17330,9 +17629,10 @@ var __export2 = (target, all) => {
|
|
|
17330
17629
|
__defProp2(target, name, { get: all[name], enumerable: true });
|
|
17331
17630
|
};
|
|
17332
17631
|
|
|
17333
|
-
// ../editor-core/dist/server/chunk-
|
|
17632
|
+
// ../editor-core/dist/server/chunk-D2E2T73W.js
|
|
17334
17633
|
import { existsSync as existsSync6 } from "node:fs";
|
|
17335
|
-
import { join as
|
|
17634
|
+
import { join as join7 } from "node:path";
|
|
17635
|
+
var MANIFEST_FILENAME2 = "volter.project.json";
|
|
17336
17636
|
var ADAPTER_MODULE_FILENAME = "editor/volter.adapter.ts";
|
|
17337
17637
|
var external_exports2 = {};
|
|
17338
17638
|
__export2(external_exports2, {
|
|
@@ -31194,7 +31494,26 @@ var ProjectCompatibilityError = class extends Error {
|
|
|
31194
31494
|
};
|
|
31195
31495
|
function assertProjectAdapter(projectRoot, product) {
|
|
31196
31496
|
if (product === null || product.adapterRequired !== true) return;
|
|
31197
|
-
if (existsSync6(
|
|
31497
|
+
if (existsSync6(join7(projectRoot, ADAPTER_MODULE_FILENAME))) return;
|
|
31498
|
+
if (existsSync6(join7(projectRoot, "volter.adapter.ts"))) {
|
|
31499
|
+
throw new ProjectCompatibilityError(
|
|
31500
|
+
`${projectRoot} keeps its adapter at its root (volter.adapter.ts), where projects made before 0.5.203 kept it; this editor reads ${ADAPTER_MODULE_FILENAME}.`,
|
|
31501
|
+
{
|
|
31502
|
+
kind: "bring-project-up-to-date",
|
|
31503
|
+
title: "Bring this project up to date",
|
|
31504
|
+
guidance: product.upgrade === true ? `To move it: npx ${product.name}@latest upgrade, in the project folder. It moves the adapter into editor/ and the kit's packages to their current names; then npm install, and open the project again.` : `To move it: put volter.adapter.ts, src/contributions and src/tools into editor/, and rename the kit's packages (@volter/editor-project, editor-sdk, editor-live and editor-model-play are @volter/project, sdk, live and play); then npm install, and open the project again.`,
|
|
31505
|
+
summary: "adapter at the project root"
|
|
31506
|
+
}
|
|
31507
|
+
);
|
|
31508
|
+
}
|
|
31509
|
+
if (existsSync6(join7(projectRoot, MANIFEST_FILENAME2))) {
|
|
31510
|
+
throw new ProjectCompatibilityError(`${projectRoot} is a project with no ${ADAPTER_MODULE_FILENAME}.`, {
|
|
31511
|
+
kind: "bring-project-up-to-date",
|
|
31512
|
+
title: "Bring this project up to date",
|
|
31513
|
+
guidance: `Add one: a project made by npx ${product.name} create <another folder> has an ${ADAPTER_MODULE_FILENAME} to copy into this project's editor/ folder; then open this project again.`,
|
|
31514
|
+
summary: "no adapter"
|
|
31515
|
+
});
|
|
31516
|
+
}
|
|
31198
31517
|
throw new ProjectCompatibilityError(`${projectRoot} has no ${ADAPTER_MODULE_FILENAME}.`, {
|
|
31199
31518
|
kind: "make-project",
|
|
31200
31519
|
title: "Make a project",
|
|
@@ -31272,9 +31591,9 @@ function describeEditorBootFailure(outcome, ctx) {
|
|
|
31272
31591
|
}
|
|
31273
31592
|
|
|
31274
31593
|
// ../editor-core/dist/server/chunk-SDCQ4SU3.js
|
|
31275
|
-
import { existsSync as existsSync7, readFileSync as
|
|
31594
|
+
import { existsSync as existsSync7, readFileSync as readFileSync3 } from "node:fs";
|
|
31276
31595
|
import { createRequire } from "node:module";
|
|
31277
|
-
import { dirname as dirname5, join as
|
|
31596
|
+
import { dirname as dirname5, join as join8 } from "node:path";
|
|
31278
31597
|
import { pathToFileURL } from "node:url";
|
|
31279
31598
|
var PRODUCT_DECLARATION_KEY = "volter.product";
|
|
31280
31599
|
var PRODUCT_INSTALL_LINES = [
|
|
@@ -31284,10 +31603,10 @@ var PRODUCT_INSTALL_LINES = [
|
|
|
31284
31603
|
var PRODUCT_CREATE_LINES = [" npx @volter/editor-core create <name>"];
|
|
31285
31604
|
var PRODUCT_COLOR_THEMES = ["dark", "light"];
|
|
31286
31605
|
function readProductManifest(packageDir) {
|
|
31287
|
-
const manifestPath =
|
|
31606
|
+
const manifestPath = join8(packageDir, "package.json");
|
|
31288
31607
|
let manifest;
|
|
31289
31608
|
try {
|
|
31290
|
-
manifest = JSON.parse(
|
|
31609
|
+
manifest = JSON.parse(readFileSync3(manifestPath, "utf8"));
|
|
31291
31610
|
} catch {
|
|
31292
31611
|
return null;
|
|
31293
31612
|
}
|
|
@@ -31298,7 +31617,7 @@ function readProductManifest(packageDir) {
|
|
|
31298
31617
|
throw new Error(
|
|
31299
31618
|
`${manifestPath} declares ${PRODUCT_DECLARATION_KEY} but its "entry" is ${JSON.stringify(entry)}. It must be a ./-relative module \u2014 the product's ONE source entry, which is also its frame entry (e.g. "./src/index.ts").`
|
|
31300
31619
|
);
|
|
31301
|
-
const resolved =
|
|
31620
|
+
const resolved = join8(packageDir, entry);
|
|
31302
31621
|
if (!existsSync7(resolved))
|
|
31303
31622
|
throw new Error(
|
|
31304
31623
|
`${manifestPath} declares ${PRODUCT_DECLARATION_KEY}.entry ${JSON.stringify(entry)}, which does not exist (${resolved}).`
|
|
@@ -31398,7 +31717,7 @@ function declaredVolterPackages(projectRoot) {
|
|
|
31398
31717
|
let manifest;
|
|
31399
31718
|
try {
|
|
31400
31719
|
manifest = JSON.parse(
|
|
31401
|
-
|
|
31720
|
+
readFileSync3(join8(projectRoot, "package.json"), "utf8")
|
|
31402
31721
|
);
|
|
31403
31722
|
} catch {
|
|
31404
31723
|
return [];
|
|
@@ -31406,16 +31725,16 @@ function declaredVolterPackages(projectRoot) {
|
|
|
31406
31725
|
return Object.keys({ ...manifest.dependencies ?? {}, ...manifest.devDependencies ?? {} }).filter((name) => name.startsWith("@volter/")).sort();
|
|
31407
31726
|
}
|
|
31408
31727
|
function locatePackage(projectRoot, name) {
|
|
31409
|
-
const require2 = createRequire(pathToFileURL(
|
|
31728
|
+
const require2 = createRequire(pathToFileURL(join8(projectRoot, "package.json")));
|
|
31410
31729
|
try {
|
|
31411
31730
|
return dirname5(require2.resolve(`${name}/package.json`));
|
|
31412
31731
|
} catch {
|
|
31413
31732
|
try {
|
|
31414
31733
|
let dir = dirname5(require2.resolve(name));
|
|
31415
31734
|
for (; ; ) {
|
|
31416
|
-
const candidate =
|
|
31735
|
+
const candidate = join8(dir, "package.json");
|
|
31417
31736
|
try {
|
|
31418
|
-
if (JSON.parse(
|
|
31737
|
+
if (JSON.parse(readFileSync3(candidate, "utf8")).name === name)
|
|
31419
31738
|
return dir;
|
|
31420
31739
|
} catch {
|
|
31421
31740
|
}
|
|
@@ -31465,30 +31784,30 @@ import { createHash } from "node:crypto";
|
|
|
31465
31784
|
import {
|
|
31466
31785
|
createWriteStream,
|
|
31467
31786
|
existsSync as existsSync8,
|
|
31468
|
-
mkdirSync,
|
|
31469
|
-
readFileSync as
|
|
31787
|
+
mkdirSync as mkdirSync2,
|
|
31788
|
+
readFileSync as readFileSync4,
|
|
31470
31789
|
renameSync,
|
|
31471
31790
|
rmSync,
|
|
31472
|
-
writeFileSync
|
|
31791
|
+
writeFileSync as writeFileSync2
|
|
31473
31792
|
} from "node:fs";
|
|
31474
|
-
import { homedir as
|
|
31475
|
-
import { basename, isAbsolute as isAbsolute2, join as
|
|
31793
|
+
import { homedir as homedir3 } from "node:os";
|
|
31794
|
+
import { basename, isAbsolute as isAbsolute2, join as join9, resolve as resolve6, sep as sep2 } from "node:path";
|
|
31476
31795
|
import { Readable } from "node:stream";
|
|
31477
31796
|
import { pipeline } from "node:stream/promises";
|
|
31478
31797
|
var WORKBENCH_LOCATOR_PATH = ".volter/workbench.json";
|
|
31479
31798
|
var RELEASE_RECORD = "BUILD.json";
|
|
31480
|
-
var SOURCES_LAUNCHER =
|
|
31799
|
+
var SOURCES_LAUNCHER = join9("scripts", "code-server.sh");
|
|
31481
31800
|
var OVERLAY_RECORD = ".volter-overlay.json";
|
|
31482
31801
|
function workbenchDeclarationExample(projectRoot) {
|
|
31483
|
-
return `${
|
|
31802
|
+
return `${join9(projectRoot, WORKBENCH_LOCATOR_PATH)}:
|
|
31484
31803
|
{ "workbench": "<path to an extracted Code-OSS release, or to a fork checkout>" }`;
|
|
31485
31804
|
}
|
|
31486
31805
|
function readWorkbenchDeclaration(projectRoot) {
|
|
31487
|
-
const file3 =
|
|
31806
|
+
const file3 = join9(projectRoot, WORKBENCH_LOCATOR_PATH);
|
|
31488
31807
|
if (!existsSync8(file3)) return null;
|
|
31489
31808
|
let parsed;
|
|
31490
31809
|
try {
|
|
31491
|
-
parsed = JSON.parse(
|
|
31810
|
+
parsed = JSON.parse(readFileSync4(file3, "utf8"));
|
|
31492
31811
|
} catch (error50) {
|
|
31493
31812
|
throw new Error(
|
|
31494
31813
|
`${file3} is not valid JSON (${error50 instanceof Error ? error50.message : String(error50)}). It says which Code-OSS workbench this project opens in, and nothing else:
|
|
@@ -31516,27 +31835,27 @@ ${workbenchDeclarationExample(projectRoot)}`
|
|
|
31516
31835
|
${workbenchDeclarationExample(projectRoot)}`
|
|
31517
31836
|
);
|
|
31518
31837
|
}
|
|
31519
|
-
return isAbsolute2(declared) ?
|
|
31838
|
+
return isAbsolute2(declared) ? resolve6(declared) : resolve6(projectRoot, declared);
|
|
31520
31839
|
}
|
|
31521
31840
|
function writeWorkbenchDeclaration(projectRoot, workbenchDir) {
|
|
31522
|
-
|
|
31523
|
-
|
|
31524
|
-
|
|
31525
|
-
`${JSON.stringify({ workbench:
|
|
31841
|
+
mkdirSync2(join9(projectRoot, ".volter"), { recursive: true });
|
|
31842
|
+
writeFileSync2(
|
|
31843
|
+
join9(projectRoot, WORKBENCH_LOCATOR_PATH),
|
|
31844
|
+
`${JSON.stringify({ workbench: resolve6(workbenchDir) }, null, 2)}
|
|
31526
31845
|
`
|
|
31527
31846
|
);
|
|
31528
31847
|
}
|
|
31529
31848
|
function workbenchUrl(proxyPort, projectRoot) {
|
|
31530
|
-
const id = basename(
|
|
31531
|
-
const hostId = createHash("sha256").update(
|
|
31849
|
+
const id = basename(resolve6(projectRoot));
|
|
31850
|
+
const hostId = createHash("sha256").update(resolve6(projectRoot)).digest("hex").slice(0, 16);
|
|
31532
31851
|
return `http://editor-${hostId}.localhost:${proxyPort}/?project=${encodeURIComponent(id)}`;
|
|
31533
31852
|
}
|
|
31534
31853
|
function machinePlatform() {
|
|
31535
31854
|
return `${process.platform}-${process.arch}`;
|
|
31536
31855
|
}
|
|
31537
31856
|
function resolveWorkbench(dir, expectedProduct) {
|
|
31538
|
-
const root =
|
|
31539
|
-
const resolved = existsSync8(
|
|
31857
|
+
const root = resolve6(dir);
|
|
31858
|
+
const resolved = existsSync8(join9(root, RELEASE_RECORD)) ? resolveRelease(root) : existsSync8(join9(root, SOURCES_LAUNCHER)) ? resolveSources(root) : null;
|
|
31540
31859
|
if (resolved === null) {
|
|
31541
31860
|
throw new Error(
|
|
31542
31861
|
`${root} is neither a Code-OSS release nor a fork checkout: it carries no ${RELEASE_RECORD} (the record scripts/workbench/build-release.mjs writes beside its tarball) and no ${SOURCES_LAUNCHER}. Name the directory the release was extracted into, or the fork checkout itself.`
|
|
@@ -31552,11 +31871,11 @@ function resolveWorkbench(dir, expectedProduct) {
|
|
|
31552
31871
|
return resolved;
|
|
31553
31872
|
}
|
|
31554
31873
|
function resolveRelease(dir) {
|
|
31555
|
-
const record3 =
|
|
31874
|
+
const record3 = join9(dir, RELEASE_RECORD);
|
|
31556
31875
|
const cut = `node scripts/workbench/build-release.mjs --product <id> --platform ${machinePlatform()} --checkout <fork dir> --out ${dir}`;
|
|
31557
31876
|
let parsed;
|
|
31558
31877
|
try {
|
|
31559
|
-
parsed = JSON.parse(
|
|
31878
|
+
parsed = JSON.parse(readFileSync4(record3, "utf8"));
|
|
31560
31879
|
} catch (error50) {
|
|
31561
31880
|
throw new Error(`${record3} could not be read: ${String(error50)}`);
|
|
31562
31881
|
}
|
|
@@ -31580,13 +31899,13 @@ function resolveRelease(dir) {
|
|
|
31580
31899
|
node scripts/workbench/build-release.mjs --product ${product} --platform ${machine} --checkout <fork dir>`
|
|
31581
31900
|
);
|
|
31582
31901
|
}
|
|
31583
|
-
const packageRoot =
|
|
31584
|
-
const serverBinPath =
|
|
31902
|
+
const packageRoot = join9(dir, target);
|
|
31903
|
+
const serverBinPath = join9(packageRoot, serverBin);
|
|
31585
31904
|
if (!existsSync8(serverBinPath)) {
|
|
31586
31905
|
const tarball = typeof parsed["tarball"] === "string" ? parsed["tarball"] : `${target}-<commit>.tar.gz`;
|
|
31587
31906
|
throw new Error(
|
|
31588
31907
|
`${dir} records ${target}, but ${serverBinPath} is not there \u2014 the tarball has not been extracted beside ${RELEASE_RECORD}. Run:
|
|
31589
|
-
tar -xzf ${
|
|
31908
|
+
tar -xzf ${join9(dir, tarball)} -C ${dir}`
|
|
31590
31909
|
);
|
|
31591
31910
|
}
|
|
31592
31911
|
return { kind: "release", dir, commit, product, serverBin: serverBinPath, cwd: packageRoot };
|
|
@@ -31600,7 +31919,7 @@ function resolveSources(dir) {
|
|
|
31600
31919
|
`${dir} carries ${SOURCES_LAUNCHER}, so it reads as a Code-OSS fork checkout, but \`git rev-parse HEAD\` there failed (${error50 instanceof Error ? error50.message : String(error50)}). A checkout's commit is the only record of which fork this workbench is.`
|
|
31601
31920
|
);
|
|
31602
31921
|
}
|
|
31603
|
-
const marker =
|
|
31922
|
+
const marker = join9(dir, OVERLAY_RECORD);
|
|
31604
31923
|
if (!existsSync8(marker)) {
|
|
31605
31924
|
throw new Error(
|
|
31606
31925
|
`${dir} is a Code-OSS checkout with no volter overlay: ${OVERLAY_RECORD} is not there, so nothing of the editor is compiled into it and the workbench would come up as plain Code-OSS. Overlay and compile it:
|
|
@@ -31609,7 +31928,7 @@ function resolveSources(dir) {
|
|
|
31609
31928
|
}
|
|
31610
31929
|
let product;
|
|
31611
31930
|
try {
|
|
31612
|
-
product = JSON.parse(
|
|
31931
|
+
product = JSON.parse(readFileSync4(marker, "utf8"))["product"];
|
|
31613
31932
|
} catch (error50) {
|
|
31614
31933
|
throw new Error(`${marker} could not be read: ${String(error50)}`);
|
|
31615
31934
|
}
|
|
@@ -31623,24 +31942,24 @@ function resolveSources(dir) {
|
|
|
31623
31942
|
dir,
|
|
31624
31943
|
commit,
|
|
31625
31944
|
product,
|
|
31626
|
-
serverBin:
|
|
31945
|
+
serverBin: join9(dir, SOURCES_LAUNCHER),
|
|
31627
31946
|
cwd: dir
|
|
31628
31947
|
};
|
|
31629
31948
|
}
|
|
31630
31949
|
var RELEASE_REPO = "volter-ai/code-oss";
|
|
31631
|
-
var WORKBENCH_CACHE_ROOT =
|
|
31950
|
+
var WORKBENCH_CACHE_ROOT = join9(homedir3(), ".volter", "workbenches");
|
|
31632
31951
|
async function resolveWorkbenchForProject(options) {
|
|
31633
31952
|
const { projectRoot, product, override, io } = options;
|
|
31634
31953
|
const productId = workbenchProductId(product.name);
|
|
31635
31954
|
if (override !== void 0)
|
|
31636
31955
|
return {
|
|
31637
|
-
...resolveWorkbench(
|
|
31956
|
+
...resolveWorkbench(resolve6(override), productId),
|
|
31638
31957
|
source: "flag",
|
|
31639
31958
|
tag: null,
|
|
31640
31959
|
fetched: false
|
|
31641
31960
|
};
|
|
31642
31961
|
const declared = readWorkbenchDeclaration(projectRoot);
|
|
31643
|
-
const fetchRecord = declared !== null && product.workbench !== null && declared.startsWith(`${WORKBENCH_CACHE_ROOT}${
|
|
31962
|
+
const fetchRecord = declared !== null && product.workbench !== null && declared.startsWith(`${WORKBENCH_CACHE_ROOT}${sep2}`);
|
|
31644
31963
|
if (declared !== null && !fetchRecord)
|
|
31645
31964
|
return {
|
|
31646
31965
|
...resolveWorkbench(declared, productId),
|
|
@@ -31652,8 +31971,8 @@ async function resolveWorkbenchForProject(options) {
|
|
|
31652
31971
|
`${product.name} is a private source product with no released workbench. Pass --workbench <compiled checkout> or declare it in ${WORKBENCH_LOCATOR_PATH}. Public distribution requires a pinned workbench release and checksum.`
|
|
31653
31972
|
);
|
|
31654
31973
|
const tag = product.workbench.release;
|
|
31655
|
-
const dir =
|
|
31656
|
-
const fetched = !existsSync8(
|
|
31974
|
+
const dir = join9(WORKBENCH_CACHE_ROOT, tag);
|
|
31975
|
+
const fetched = !existsSync8(join9(dir, RELEASE_RECORD));
|
|
31657
31976
|
if (fetched) await fetchDeclaredRelease(product, tag, dir, io);
|
|
31658
31977
|
else io.log(`Workbench ${tag} is already installed (${dir}).`);
|
|
31659
31978
|
const workbench = resolveWorkbench(dir, productId);
|
|
@@ -31734,7 +32053,7 @@ async function fetchDeclaredRelease(product, tag, dir, io) {
|
|
|
31734
32053
|
const productId = workbenchProductId(product.name);
|
|
31735
32054
|
const machine = machinePlatform();
|
|
31736
32055
|
const token = githubToken();
|
|
31737
|
-
const partial3 =
|
|
32056
|
+
const partial3 = join9(WORKBENCH_CACHE_ROOT, `.${tag}.${process.pid}.partial`);
|
|
31738
32057
|
const cutLine = ` node scripts/workbench/build-release.mjs --product ${productId} --platform ${machine} --checkout <fork dir> --publish`;
|
|
31739
32058
|
const releaseUrl = `https://api.github.com/repos/${RELEASE_REPO}/releases/tags/${encodeURIComponent(tag)}`;
|
|
31740
32059
|
const response = await downloadOperation(
|
|
@@ -31770,7 +32089,7 @@ ${tokenDoors()}` : "")
|
|
|
31770
32089
|
${cutLine}`
|
|
31771
32090
|
);
|
|
31772
32091
|
rmSync(partial3, { recursive: true, force: true });
|
|
31773
|
-
|
|
32092
|
+
mkdirSync2(partial3, { recursive: true });
|
|
31774
32093
|
try {
|
|
31775
32094
|
const recordText = await downloadAssetText(record3, token);
|
|
31776
32095
|
const built = await downloadOperation(
|
|
@@ -31788,11 +32107,11 @@ ${cutLine}`
|
|
|
31788
32107
|
throw new Error(
|
|
31789
32108
|
`Release ${tag}'s own ${RELEASE_RECORD} records tarballSha256 ${String(built["tarballSha256"])} and ${product.name} pins ${product.workbench.tarballSha256}. A release is immutable, so these two cannot disagree about one tag: either the product declares the wrong release, or the release was replaced. Nothing was downloaded.`
|
|
31790
32109
|
);
|
|
31791
|
-
|
|
32110
|
+
writeFileSync2(join9(partial3, RELEASE_RECORD), recordText);
|
|
31792
32111
|
io.log(
|
|
31793
32112
|
`Fetching the ${productId} workbench ${tag} from ${RELEASE_REPO} \u2014 ${megabytes(tarball.size)} MB, once per machine.`
|
|
31794
32113
|
);
|
|
31795
|
-
const tarballPath =
|
|
32114
|
+
const tarballPath = join9(partial3, tarball.name);
|
|
31796
32115
|
let announced = 0;
|
|
31797
32116
|
const sha = await downloadAsset(tarball, token, tarballPath, (received) => {
|
|
31798
32117
|
if (received - announced < 4 * 1024 ** 2 && received !== tarball.size) return;
|
|
@@ -31806,13 +32125,13 @@ ${cutLine}`
|
|
|
31806
32125
|
`The download of ${tag} hashes to ${sha} and ${product.name} pins ${product.workbench.tarballSha256}. These are not the bytes this product runs in; the partial download was deleted and nothing was extracted.`
|
|
31807
32126
|
);
|
|
31808
32127
|
io.log(` sha256 ${sha.slice(0, 12)}\u2026 matches the pin. Extracting\u2026`);
|
|
31809
|
-
const tar = process.platform === "win32" ?
|
|
32128
|
+
const tar = process.platform === "win32" ? join9(process.env["SystemRoot"] ?? "C:\\Windows", "System32", "tar.exe") : "tar";
|
|
31810
32129
|
execFileSync(tar, ["-xzf", tarballPath, "-C", partial3], {
|
|
31811
32130
|
windowsHide: true,
|
|
31812
32131
|
stdio: ["ignore", "ignore", "pipe"]
|
|
31813
32132
|
});
|
|
31814
32133
|
rmSync(tarballPath, { force: true });
|
|
31815
|
-
if (existsSync8(
|
|
32134
|
+
if (existsSync8(join9(dir, RELEASE_RECORD))) {
|
|
31816
32135
|
rmSync(partial3, { recursive: true, force: true });
|
|
31817
32136
|
} else {
|
|
31818
32137
|
rmSync(dir, { recursive: true, force: true });
|
|
@@ -31870,8 +32189,8 @@ async function downloadAsset(asset, token, destination, onProgress) {
|
|
|
31870
32189
|
// ../editor-core/dist/server/chunk-VNHTPCBZ.js
|
|
31871
32190
|
import { execFileSync as execFileSync2 } from "node:child_process";
|
|
31872
32191
|
import { createHash as createHash2 } from "node:crypto";
|
|
31873
|
-
import { realpathSync as
|
|
31874
|
-
import { basename as basename2, isAbsolute as isAbsolute3, relative as
|
|
32192
|
+
import { realpathSync as realpathSync3 } from "node:fs";
|
|
32193
|
+
import { basename as basename2, isAbsolute as isAbsolute3, relative as relative4, resolve as resolve7 } from "node:path";
|
|
31875
32194
|
function hash3(value) {
|
|
31876
32195
|
return createHash2("sha256").update(value).digest("hex").slice(0, 24);
|
|
31877
32196
|
}
|
|
@@ -31880,9 +32199,9 @@ function worktreeIdForRoot(repositoryId, worktreeRoot) {
|
|
|
31880
32199
|
}
|
|
31881
32200
|
function canonical(path) {
|
|
31882
32201
|
try {
|
|
31883
|
-
return
|
|
32202
|
+
return realpathSync3(path);
|
|
31884
32203
|
} catch {
|
|
31885
|
-
return
|
|
32204
|
+
return resolve7(path);
|
|
31886
32205
|
}
|
|
31887
32206
|
}
|
|
31888
32207
|
function git(cwd, args) {
|
|
@@ -31899,7 +32218,7 @@ function git(cwd, args) {
|
|
|
31899
32218
|
}
|
|
31900
32219
|
function resolveGitPath(worktreeRoot, rawPath) {
|
|
31901
32220
|
if (!rawPath) return null;
|
|
31902
|
-
return canonical(isAbsolute3(rawPath) ? rawPath :
|
|
32221
|
+
return canonical(isAbsolute3(rawPath) ? rawPath : resolve7(worktreeRoot, rawPath));
|
|
31903
32222
|
}
|
|
31904
32223
|
function defaultBaseCommit(worktreeRoot, headCommit) {
|
|
31905
32224
|
if (!headCommit) return null;
|
|
@@ -31942,7 +32261,7 @@ function resolveWorktreeIdentity(projectRoot) {
|
|
|
31942
32261
|
const repositoryId = `repository-${hash3(repositoryKey)}`;
|
|
31943
32262
|
const branch = git(worktreeRoot, ["symbolic-ref", "--quiet", "--short", "HEAD"]);
|
|
31944
32263
|
const headCommit = git(worktreeRoot, ["rev-parse", "--verify", "HEAD"]);
|
|
31945
|
-
const projectRelativePath =
|
|
32264
|
+
const projectRelativePath = relative4(worktreeRoot, project) || ".";
|
|
31946
32265
|
if (projectRelativePath === ".." || projectRelativePath.startsWith(`..${process.platform === "win32" ? "\\" : "/"}`)) {
|
|
31947
32266
|
throw new Error(`Project ${project} is outside its reported Git worktree ${worktreeRoot}.`);
|
|
31948
32267
|
}
|
|
@@ -31959,24 +32278,24 @@ function resolveWorktreeIdentity(projectRoot) {
|
|
|
31959
32278
|
|
|
31960
32279
|
// ../editor-core/dist/server/chunk-UZKAJSSR.js
|
|
31961
32280
|
import {
|
|
31962
|
-
mkdirSync as
|
|
31963
|
-
readdirSync,
|
|
31964
|
-
readFileSync as
|
|
31965
|
-
realpathSync as
|
|
31966
|
-
unlinkSync,
|
|
31967
|
-
writeFileSync as
|
|
32281
|
+
mkdirSync as mkdirSync3,
|
|
32282
|
+
readdirSync as readdirSync2,
|
|
32283
|
+
readFileSync as readFileSync5,
|
|
32284
|
+
realpathSync as realpathSync4,
|
|
32285
|
+
unlinkSync as unlinkSync2,
|
|
32286
|
+
writeFileSync as writeFileSync3
|
|
31968
32287
|
} from "node:fs";
|
|
31969
|
-
import { homedir as
|
|
31970
|
-
import { join as
|
|
32288
|
+
import { homedir as homedir4 } from "node:os";
|
|
32289
|
+
import { join as join10, resolve as resolve8 } from "node:path";
|
|
31971
32290
|
import { setTimeout as delay } from "node:timers/promises";
|
|
31972
|
-
var
|
|
31973
|
-
function
|
|
32291
|
+
var EDITOR_SESSIONS_REGISTRY_FILE2 = join10(homedir4(), ".volter", "editor-sessions.json");
|
|
32292
|
+
function isEditorSessionEntry2(v) {
|
|
31974
32293
|
if (typeof v !== "object" || v === null) return false;
|
|
31975
32294
|
const s = v;
|
|
31976
32295
|
const optionalIdentity = (value) => value === void 0 || value === null || typeof value === "string";
|
|
31977
32296
|
return (typeof s["project"] === "string" || s["project"] === null) && typeof s["port"] === "number" && typeof s["pid"] === "number" && typeof s["startedAt"] === "string" && optionalIdentity(s["sessionId"]) && optionalIdentity(s["controlSecret"]) && optionalIdentity(s["repositoryId"]) && optionalIdentity(s["worktreeId"]) && optionalIdentity(s["worktreeRoot"]) && optionalIdentity(s["projectRelativePath"]) && optionalIdentity(s["branch"]) && optionalIdentity(s["headCommit"]) && optionalIdentity(s["baseCommit"]);
|
|
31978
32297
|
}
|
|
31979
|
-
function
|
|
32298
|
+
function normalizeEditorSessionEntry2(session) {
|
|
31980
32299
|
return {
|
|
31981
32300
|
...session,
|
|
31982
32301
|
sessionId: session.sessionId ?? null,
|
|
@@ -31990,7 +32309,7 @@ function normalizeEditorSessionEntry(session) {
|
|
|
31990
32309
|
baseCommit: session.baseCommit ?? null
|
|
31991
32310
|
};
|
|
31992
32311
|
}
|
|
31993
|
-
function
|
|
32312
|
+
function pidAlive2(pid) {
|
|
31994
32313
|
try {
|
|
31995
32314
|
process.kill(pid, 0);
|
|
31996
32315
|
return true;
|
|
@@ -31998,23 +32317,23 @@ function pidAlive(pid) {
|
|
|
31998
32317
|
return error50.code === "EPERM";
|
|
31999
32318
|
}
|
|
32000
32319
|
}
|
|
32001
|
-
function
|
|
32320
|
+
function readLiveRegisteredSessions2() {
|
|
32002
32321
|
try {
|
|
32003
|
-
const raw = JSON.parse(
|
|
32004
|
-
return Array.isArray(raw) ? raw.filter(
|
|
32322
|
+
const raw = JSON.parse(readFileSync5(EDITOR_SESSIONS_REGISTRY_FILE2, "utf8"));
|
|
32323
|
+
return Array.isArray(raw) ? raw.filter(isEditorSessionEntry2).map(normalizeEditorSessionEntry2).filter((s) => pidAlive2(s.pid)) : [];
|
|
32005
32324
|
} catch {
|
|
32006
32325
|
return [];
|
|
32007
32326
|
}
|
|
32008
32327
|
}
|
|
32009
32328
|
function announceEditorLaunch(project) {
|
|
32010
|
-
const directory =
|
|
32011
|
-
|
|
32012
|
-
const file3 =
|
|
32013
|
-
|
|
32329
|
+
const directory = join10(project, ".volter", "editor-launches");
|
|
32330
|
+
mkdirSync3(directory, { recursive: true });
|
|
32331
|
+
const file3 = join10(directory, `${process.pid}.json`);
|
|
32332
|
+
writeFileSync3(file3, JSON.stringify({ pid: process.pid }));
|
|
32014
32333
|
const clear = () => {
|
|
32015
32334
|
process.removeListener("exit", clear);
|
|
32016
32335
|
try {
|
|
32017
|
-
|
|
32336
|
+
unlinkSync2(file3);
|
|
32018
32337
|
} catch {
|
|
32019
32338
|
}
|
|
32020
32339
|
};
|
|
@@ -32022,12 +32341,12 @@ function announceEditorLaunch(project) {
|
|
|
32022
32341
|
return clear;
|
|
32023
32342
|
}
|
|
32024
32343
|
function hasPendingEditorLaunch(project) {
|
|
32025
|
-
const directory =
|
|
32344
|
+
const directory = join10(project, ".volter", "editor-launches");
|
|
32026
32345
|
try {
|
|
32027
|
-
return
|
|
32346
|
+
return readdirSync2(directory).some((name) => {
|
|
32028
32347
|
if (!/^\d+\.json$/.test(name)) return false;
|
|
32029
32348
|
const pid = Number(name.slice(0, -5));
|
|
32030
|
-
return pid !== process.pid &&
|
|
32349
|
+
return pid !== process.pid && pidAlive2(pid);
|
|
32031
32350
|
});
|
|
32032
32351
|
} catch {
|
|
32033
32352
|
return false;
|
|
@@ -32035,7 +32354,7 @@ function hasPendingEditorLaunch(project) {
|
|
|
32035
32354
|
}
|
|
32036
32355
|
async function waitForPendingEditorLaunch(project) {
|
|
32037
32356
|
const canon = canonicalizeProjectPath(project);
|
|
32038
|
-
const ready = () =>
|
|
32357
|
+
const ready = () => readLiveRegisteredSessions2().some(
|
|
32039
32358
|
(session) => session.project !== null && canonicalizeProjectPath(session.project) === canon
|
|
32040
32359
|
);
|
|
32041
32360
|
if (ready() || !hasPendingEditorLaunch(canon)) return;
|
|
@@ -32061,9 +32380,9 @@ function servedProjectAnswer(body) {
|
|
|
32061
32380
|
};
|
|
32062
32381
|
}
|
|
32063
32382
|
function canonicalizeProjectPath(p) {
|
|
32064
|
-
const absolute =
|
|
32383
|
+
const absolute = resolve8(p);
|
|
32065
32384
|
try {
|
|
32066
|
-
return
|
|
32385
|
+
return realpathSync4(absolute);
|
|
32067
32386
|
} catch {
|
|
32068
32387
|
return absolute;
|
|
32069
32388
|
}
|
|
@@ -32081,7 +32400,7 @@ async function loopbackPortFree(port) {
|
|
|
32081
32400
|
});
|
|
32082
32401
|
}
|
|
32083
32402
|
function liveSessions() {
|
|
32084
|
-
return
|
|
32403
|
+
return readLiveRegisteredSessions2();
|
|
32085
32404
|
}
|
|
32086
32405
|
async function fetchEditorSession(port, timeoutMs = 5e3) {
|
|
32087
32406
|
try {
|
|
@@ -32397,13 +32716,13 @@ function killEditorSessionProcess(pid, signal = "SIGTERM") {
|
|
|
32397
32716
|
}
|
|
32398
32717
|
async function waitForPidExit(pid, timeoutMs) {
|
|
32399
32718
|
const deadline = Date.now() + timeoutMs;
|
|
32400
|
-
while (
|
|
32401
|
-
await new Promise((
|
|
32719
|
+
while (pidAlive2(pid) && Date.now() < deadline) {
|
|
32720
|
+
await new Promise((resolve14) => setTimeout(resolve14, 50));
|
|
32402
32721
|
}
|
|
32403
|
-
return !
|
|
32722
|
+
return !pidAlive2(pid);
|
|
32404
32723
|
}
|
|
32405
32724
|
async function terminateEditorSession(session, graceMs = 5500) {
|
|
32406
|
-
if (!
|
|
32725
|
+
if (!pidAlive2(session.pid)) return "already-gone";
|
|
32407
32726
|
try {
|
|
32408
32727
|
killEditorSessionProcess(session.pid, "SIGTERM");
|
|
32409
32728
|
} catch (error50) {
|
|
@@ -32422,20 +32741,20 @@ async function terminateEditorSession(session, graceMs = 5500) {
|
|
|
32422
32741
|
return "forced";
|
|
32423
32742
|
}
|
|
32424
32743
|
|
|
32425
|
-
// ../editor-core/dist/server/chunk-
|
|
32744
|
+
// ../editor-core/dist/server/chunk-42TLBVCO.js
|
|
32426
32745
|
import { spawn as spawn3 } from "node:child_process";
|
|
32427
32746
|
import { createRequire as createRequire2 } from "node:module";
|
|
32428
|
-
import { mkdirSync as mkdirSync22, openSync, closeSync, realpathSync as
|
|
32429
|
-
import { join as join22, resolve as
|
|
32747
|
+
import { mkdirSync as mkdirSync22, openSync, closeSync, realpathSync as realpathSync5 } from "node:fs";
|
|
32748
|
+
import { join as join22, resolve as resolve9 } from "node:path";
|
|
32430
32749
|
import { createHash as createHash3 } from "node:crypto";
|
|
32431
|
-
import { mkdirSync as
|
|
32432
|
-
import { homedir as
|
|
32433
|
-
import { dirname as dirname6, join as
|
|
32750
|
+
import { mkdirSync as mkdirSync4, readFileSync as readFileSync6, renameSync as renameSync2, rmdirSync, statSync as statSync2, writeFileSync as writeFileSync4 } from "node:fs";
|
|
32751
|
+
import { homedir as homedir5 } from "node:os";
|
|
32752
|
+
import { dirname as dirname6, join as join11 } from "node:path";
|
|
32434
32753
|
var MIN_PORT = 1024;
|
|
32435
32754
|
var MAX_PORT = 65535;
|
|
32436
32755
|
var WORKTREE_EDITOR_PORT_MIN = 20200;
|
|
32437
32756
|
var WORKTREE_EDITOR_PORT_MAX = 29999;
|
|
32438
|
-
var DEFAULT_PORT_REGISTRY =
|
|
32757
|
+
var DEFAULT_PORT_REGISTRY = join11(homedir5(), ".volter", "worktree-ports.json");
|
|
32439
32758
|
var LOCK_STALE_MS = 1e4;
|
|
32440
32759
|
var lockWait = new Int32Array(new SharedArrayBuffer(4));
|
|
32441
32760
|
function assertPort(value, source) {
|
|
@@ -32452,7 +32771,7 @@ function isEntry(value) {
|
|
|
32452
32771
|
function readEntries(registryFile) {
|
|
32453
32772
|
let raw;
|
|
32454
32773
|
try {
|
|
32455
|
-
raw =
|
|
32774
|
+
raw = readFileSync6(registryFile, "utf8");
|
|
32456
32775
|
} catch (error50) {
|
|
32457
32776
|
if (error50.code === "ENOENT") return [];
|
|
32458
32777
|
throw new Error(
|
|
@@ -32481,19 +32800,19 @@ function readEntries(registryFile) {
|
|
|
32481
32800
|
return entries;
|
|
32482
32801
|
}
|
|
32483
32802
|
function writeEntries(registryFile, entries) {
|
|
32484
|
-
|
|
32803
|
+
mkdirSync4(dirname6(registryFile), { recursive: true });
|
|
32485
32804
|
const temp = `${registryFile}.${process.pid}.tmp`;
|
|
32486
|
-
|
|
32805
|
+
writeFileSync4(temp, `${JSON.stringify(entries, null, 2)}
|
|
32487
32806
|
`);
|
|
32488
32807
|
renameSync2(temp, registryFile);
|
|
32489
32808
|
}
|
|
32490
32809
|
function withRegistryLock(registryFile, action) {
|
|
32491
32810
|
const lock = `${registryFile}.lock`;
|
|
32492
|
-
|
|
32811
|
+
mkdirSync4(dirname6(registryFile), { recursive: true });
|
|
32493
32812
|
const deadline = Date.now() + 5e3;
|
|
32494
32813
|
for (; ; ) {
|
|
32495
32814
|
try {
|
|
32496
|
-
|
|
32815
|
+
mkdirSync4(lock);
|
|
32497
32816
|
break;
|
|
32498
32817
|
} catch (error50) {
|
|
32499
32818
|
if (error50.code !== "EEXIST") throw error50;
|
|
@@ -32587,7 +32906,7 @@ function refuseProjectWithoutAdapter(project, product) {
|
|
|
32587
32906
|
if (refusal !== null) throw new Error(refusal);
|
|
32588
32907
|
}
|
|
32589
32908
|
async function launch(folder, launching, options = {}) {
|
|
32590
|
-
const project =
|
|
32909
|
+
const project = realpathSync5(resolve9(folder));
|
|
32591
32910
|
const product = resolveProductForProject(project);
|
|
32592
32911
|
if (product.name !== launching.packageName) throw new Error(`${project} declares ${product.name}, not ${launching.displayName}.`);
|
|
32593
32912
|
refuseProjectWithoutAdapter(project, product);
|
|
@@ -32630,7 +32949,7 @@ async function launch(folder, launching, options = {}) {
|
|
|
32630
32949
|
stdio: ["ignore", log, log],
|
|
32631
32950
|
env: {
|
|
32632
32951
|
...process.env,
|
|
32633
|
-
VOLTER_CLI_ENTRY:
|
|
32952
|
+
VOLTER_CLI_ENTRY: resolve9(process.argv[1]),
|
|
32634
32953
|
VOLTER_PROJECT: project,
|
|
32635
32954
|
VOLTER_PRODUCT_DIR: product.dir,
|
|
32636
32955
|
VOLTER_EDITOR_PORT: String(port),
|
|
@@ -32673,7 +32992,7 @@ async function launch(folder, launching, options = {}) {
|
|
|
32673
32992
|
}
|
|
32674
32993
|
}
|
|
32675
32994
|
async function prepareSession(folder, launching) {
|
|
32676
|
-
const project =
|
|
32995
|
+
const project = realpathSync5(resolve9(folder));
|
|
32677
32996
|
const product = resolveProductForProject(project);
|
|
32678
32997
|
if (product.name !== launching.packageName) throw new Error(`${project} declares ${product.name}, not ${launching.displayName}.`);
|
|
32679
32998
|
refuseProjectWithoutAdapter(project, product);
|
|
@@ -32704,7 +33023,7 @@ async function refuseIncompatibleProject(serverUrl, command, noOpen) {
|
|
|
32704
33023
|
const refusal = await read();
|
|
32705
33024
|
if (!refusal) return;
|
|
32706
33025
|
const kind = refusal.recovery?.kind;
|
|
32707
|
-
if (kind !== "use-compatible-editor" && kind !== "upgrade-project") return;
|
|
33026
|
+
if (kind !== "use-compatible-editor" && kind !== "upgrade-project" && kind !== "bring-project-up-to-date") return;
|
|
32708
33027
|
const message = refusal.error;
|
|
32709
33028
|
const guidance = typeof refusal.recovery?.guidance === "string" ? refusal.recovery.guidance : null;
|
|
32710
33029
|
const verbs = refusal.recovery?.verbs;
|
|
@@ -32811,7 +33130,7 @@ async function connectHostedAttachment(attachment) {
|
|
|
32811
33130
|
const socket = new WebSocket(hostedSocketUrl(attachment.endpoint));
|
|
32812
33131
|
const pending = /* @__PURE__ */ new Map();
|
|
32813
33132
|
let state = {};
|
|
32814
|
-
const ready = new Promise((
|
|
33133
|
+
const ready = new Promise((resolve14, reject) => {
|
|
32815
33134
|
const timer = setTimeout(() => {
|
|
32816
33135
|
reject(new Error("Hosted attachment did not answer."));
|
|
32817
33136
|
socket.close();
|
|
@@ -32823,7 +33142,7 @@ async function connectHostedAttachment(attachment) {
|
|
|
32823
33142
|
if (value.type === "ready") {
|
|
32824
33143
|
state = value.state ?? {};
|
|
32825
33144
|
clearTimeout(timer);
|
|
32826
|
-
|
|
33145
|
+
resolve14();
|
|
32827
33146
|
} else if (value.type === "state") state = value.state ?? {};
|
|
32828
33147
|
else if (value.type === "response") {
|
|
32829
33148
|
const call = pending.get(value.id);
|
|
@@ -32868,7 +33187,7 @@ async function connectHostedAttachment(attachment) {
|
|
|
32868
33187
|
if (request.body) message.body = await request.text();
|
|
32869
33188
|
if (!isHostedRequest(message)) throw new Error("Hosted attachment only carries bounded editor HTTP requests.");
|
|
32870
33189
|
request.signal.throwIfAborted();
|
|
32871
|
-
return await new Promise((
|
|
33190
|
+
return await new Promise((resolve14, reject) => {
|
|
32872
33191
|
const abort = () => {
|
|
32873
33192
|
pending.delete(message.id);
|
|
32874
33193
|
if (socket.readyState === WebSocket.OPEN) socket.send(JSON.stringify({ type: "cancel", id: message.id }));
|
|
@@ -32878,7 +33197,7 @@ async function connectHostedAttachment(attachment) {
|
|
|
32878
33197
|
reject(new Error("Hosted attachment is disconnected."));
|
|
32879
33198
|
return;
|
|
32880
33199
|
}
|
|
32881
|
-
pending.set(message.id, { resolve:
|
|
33200
|
+
pending.set(message.id, { resolve: resolve14, reject, cleanup: () => request.signal.removeEventListener("abort", abort) });
|
|
32882
33201
|
request.signal.addEventListener("abort", abort, { once: true });
|
|
32883
33202
|
socket.send(JSON.stringify(message));
|
|
32884
33203
|
});
|
|
@@ -33066,7 +33385,7 @@ var EditorClient = class {
|
|
|
33066
33385
|
const { code, detail } = describeFetchFailure(error50);
|
|
33067
33386
|
if (options?.retryTransport === true && !retried && RETRYABLE_TRANSPORT_CODES.has(code)) {
|
|
33068
33387
|
retried = true;
|
|
33069
|
-
await new Promise((
|
|
33388
|
+
await new Promise((resolve14) => setTimeout(resolve14, TRANSPORT_RETRY_DELAY_MS));
|
|
33070
33389
|
continue;
|
|
33071
33390
|
}
|
|
33072
33391
|
throw new EditorCommandError(
|
|
@@ -34120,11 +34439,11 @@ function spawnOpener(cmd, cmdArgs, fallback) {
|
|
|
34120
34439
|
}
|
|
34121
34440
|
|
|
34122
34441
|
// ../editor-core/dist/server/chunk-JQ4HMG7T.js
|
|
34123
|
-
import { existsSync as existsSync9, readFileSync as
|
|
34442
|
+
import { existsSync as existsSync9, readFileSync as readFileSync7 } from "node:fs";
|
|
34124
34443
|
function isWSL() {
|
|
34125
34444
|
if (process.platform !== "linux") return false;
|
|
34126
34445
|
try {
|
|
34127
|
-
return
|
|
34446
|
+
return readFileSync7("/proc/version", "utf8").toLowerCase().includes("microsoft");
|
|
34128
34447
|
} catch {
|
|
34129
34448
|
return false;
|
|
34130
34449
|
}
|
|
@@ -34154,9 +34473,9 @@ function openBrowserUrl(browserUrl, options) {
|
|
|
34154
34473
|
|
|
34155
34474
|
// ../editor-core/dist/server/chunk-N6NBRKBO.js
|
|
34156
34475
|
import { createHash as createHash4 } from "node:crypto";
|
|
34157
|
-
import { mkdirSync as
|
|
34158
|
-
import { homedir as
|
|
34159
|
-
import { dirname as dirname7, join as
|
|
34476
|
+
import { mkdirSync as mkdirSync5, readFileSync as readFileSync8, writeFileSync as writeFileSync5, rmSync as rmSync2, existsSync as existsSync10 } from "node:fs";
|
|
34477
|
+
import { homedir as homedir6 } from "node:os";
|
|
34478
|
+
import { dirname as dirname7, join as join12, resolve as resolve10 } from "node:path";
|
|
34160
34479
|
import { LiveEditor, LiveTools } from "@volter/live";
|
|
34161
34480
|
import { connect as connect5, unconnectedBindings, withEditorMemberHints } from "@volter/live";
|
|
34162
34481
|
var NOISE = /* @__PURE__ */ new Set(["constructor", "then", "catch", "finally"]);
|
|
@@ -34298,8 +34617,8 @@ async function control(command, verb, argument, reason, scope, attachment) {
|
|
|
34298
34617
|
}
|
|
34299
34618
|
var HOSTED_USAGE = "hosted attach <https-url> | hosted status | hosted eval <JavaScript> | hosted screenshot <file.png> | hosted detach";
|
|
34300
34619
|
function stateFile() {
|
|
34301
|
-
const key = createHash4("sha256").update(
|
|
34302
|
-
return
|
|
34620
|
+
const key = createHash4("sha256").update(resolve10(process.cwd())).digest("hex");
|
|
34621
|
+
return join12(homedir6(), ".local", "state", "volter-editor", "hosted", `${key}.json`);
|
|
34303
34622
|
}
|
|
34304
34623
|
async function hostedControl(command, args) {
|
|
34305
34624
|
const [verb, argument] = args;
|
|
@@ -34322,8 +34641,8 @@ async function hostedControl(command, args) {
|
|
|
34322
34641
|
const created = await response.json();
|
|
34323
34642
|
if (created.page !== page.href || new URL(created.endpoint).origin !== page.origin || !/^[a-f0-9]{64}$/.test(created.clientToken) || !/^[a-f0-9]{64}$/.test(created.workerToken)) throw new Error("Invalid hosted attachment response.");
|
|
34324
34643
|
const common = { id: created.id, endpoint: created.endpoint, page: created.page, expiresAt: created.expiresAt };
|
|
34325
|
-
|
|
34326
|
-
|
|
34644
|
+
mkdirSync5(dirname7(file3), { recursive: true, mode: 448 });
|
|
34645
|
+
writeFileSync5(file3, JSON.stringify({ ...common, token: created.clientToken }), { mode: 384, flag: "wx" });
|
|
34327
34646
|
page.hash = new URLSearchParams({ [HOSTED_ATTACHMENT_FRAGMENT]: JSON.stringify({ ...common, token: created.workerToken }) }).toString();
|
|
34328
34647
|
openBrowserUrl(page.href, { background: true });
|
|
34329
34648
|
console.log(`Attaching to hosted editor: ${created.page}
|
|
@@ -34334,7 +34653,7 @@ Use ${command} hosted status from this directory. Attachment expires ${new Date(
|
|
|
34334
34653
|
if (!["status", "eval", "screenshot", "detach"].includes(verb ?? "")) throw new Error(HOSTED_USAGE);
|
|
34335
34654
|
let attachment;
|
|
34336
34655
|
try {
|
|
34337
|
-
attachment = JSON.parse(
|
|
34656
|
+
attachment = JSON.parse(readFileSync8(file3, "utf8"));
|
|
34338
34657
|
} catch {
|
|
34339
34658
|
throw new Error(`No hosted attachment in this directory. Run ${command} hosted attach <https-url>.`);
|
|
34340
34659
|
}
|
|
@@ -34374,8 +34693,8 @@ Use ${command} hosted status from this directory. Attachment expires ${new Date(
|
|
|
34374
34693
|
if (!argument?.endsWith(".png")) throw new Error("hosted screenshot requires an output .png path.");
|
|
34375
34694
|
const shot = await live.editor.captureActiveDocument();
|
|
34376
34695
|
if (shot.mimeType !== "image/png") throw new Error("Editor did not return a PNG of the active document.");
|
|
34377
|
-
|
|
34378
|
-
console.log(
|
|
34696
|
+
writeFileSync5(resolve10(argument), Buffer.from(shot.base64, "base64"));
|
|
34697
|
+
console.log(resolve10(argument));
|
|
34379
34698
|
} else await control(command, verb, argument, void 0, void 0, { live, client, consolePolicy: "report" });
|
|
34380
34699
|
} finally {
|
|
34381
34700
|
remote.close();
|
|
@@ -34505,11 +34824,11 @@ var RELAY_COMMANDS = {
|
|
|
34505
34824
|
var RELAY_COMMAND_TYPES = Object.keys(RELAY_COMMANDS);
|
|
34506
34825
|
|
|
34507
34826
|
// ../editor-core/dist/server/launcher/session-verbs.js
|
|
34508
|
-
import { existsSync as existsSync11, mkdirSync as
|
|
34827
|
+
import { existsSync as existsSync11, mkdirSync as mkdirSync6, readFileSync as readFileSync9, statSync as statSync3, writeFileSync as writeFileSync6 } from "node:fs";
|
|
34509
34828
|
import { basename as basename3, dirname as dirname8, join as join23, resolve as resolve22 } from "node:path";
|
|
34510
34829
|
import { setTimeout as delay2 } from "node:timers/promises";
|
|
34511
34830
|
import { resolveSession } from "@volter/live";
|
|
34512
|
-
import { isAbsolute as isAbsolute4, join as
|
|
34831
|
+
import { isAbsolute as isAbsolute4, join as join13, relative as relative5, resolve as resolve11 } from "node:path";
|
|
34513
34832
|
var MODEL_TARGET_EXTENSIONS = [".glb", ".gltf", ".spz"];
|
|
34514
34833
|
var MODULE_TARGET_EXTENSIONS = [".ts", ".tsx"];
|
|
34515
34834
|
var endsWithAny = (value, suffixes) => {
|
|
@@ -34524,9 +34843,9 @@ function classifyScreenshotTarget(target) {
|
|
|
34524
34843
|
}
|
|
34525
34844
|
function resolveModelTarget(target, options) {
|
|
34526
34845
|
const { cwd, projectRoot, exists } = options;
|
|
34527
|
-
const candidates = [
|
|
34846
|
+
const candidates = [resolve11(cwd, target)];
|
|
34528
34847
|
if (target.startsWith("/") && projectRoot) {
|
|
34529
|
-
candidates.push(
|
|
34848
|
+
candidates.push(join13(projectRoot, target), join13(projectRoot, "public", target));
|
|
34530
34849
|
}
|
|
34531
34850
|
const file3 = candidates.find((candidate) => exists(candidate));
|
|
34532
34851
|
if (file3 === void 0) {
|
|
@@ -34541,7 +34860,7 @@ A model target is a path on disk (or the served path the editor loads it from, e
|
|
|
34541
34860
|
The editor loads models same-origin from the project it is serving; run this from inside the project.`
|
|
34542
34861
|
};
|
|
34543
34862
|
}
|
|
34544
|
-
const withinProject =
|
|
34863
|
+
const withinProject = relative5(projectRoot, file3);
|
|
34545
34864
|
if (withinProject.startsWith("..") || isAbsolute4(withinProject)) {
|
|
34546
34865
|
return {
|
|
34547
34866
|
error: `${file3} is outside ${projectRoot}.
|
|
@@ -34743,8 +35062,8 @@ async function sessionLook(client, projectRoot) {
|
|
|
34743
35062
|
capture3 = await client.captureGame({ refreshStarvedFrame: true });
|
|
34744
35063
|
loopRecoveryFrame = true;
|
|
34745
35064
|
}
|
|
34746
|
-
|
|
34747
|
-
|
|
35065
|
+
mkdirSync6(dirname8(outPath), { recursive: true });
|
|
35066
|
+
writeFileSync6(outPath, Buffer.from(capture3.base64, "base64"));
|
|
34748
35067
|
console.log(outPath);
|
|
34749
35068
|
if (capture3.flatness?.degenerate === true && capture3.flatness.warning !== void 0) console.error(`warning \u2014 ${capture3.flatness.warning}`);
|
|
34750
35069
|
if (loopRecoveryFrame || capture3.loopRecoveryFrame === true) {
|
|
@@ -34755,8 +35074,8 @@ async function sessionLook(client, projectRoot) {
|
|
|
34755
35074
|
return;
|
|
34756
35075
|
}
|
|
34757
35076
|
const capture2 = await client.captureActiveDocument();
|
|
34758
|
-
|
|
34759
|
-
|
|
35077
|
+
mkdirSync6(dirname8(outPath), { recursive: true });
|
|
35078
|
+
writeFileSync6(outPath, Buffer.from(capture2.base64, "base64"));
|
|
34760
35079
|
console.log(outPath);
|
|
34761
35080
|
console.error(`${capture2.document.title} (${capture2.document.kind}${capture2.document.sourcePath ? `, ${capture2.document.sourcePath}` : ""}) \u2014 ${capture2.source}`);
|
|
34762
35081
|
}
|
|
@@ -34779,11 +35098,11 @@ async function capture(options) {
|
|
|
34779
35098
|
const stamp = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
|
|
34780
35099
|
const slug = name ? name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "").slice(0, 48) : "";
|
|
34781
35100
|
const outPath = named ?? join23(session.projectRoot, ".volter", "captures", `${slug ? `${slug}-` : ""}${region}-${stamp}.png`);
|
|
34782
|
-
|
|
34783
|
-
|
|
35101
|
+
mkdirSync6(dirname8(outPath), { recursive: true });
|
|
35102
|
+
writeFileSync6(outPath, Buffer.from(shot.base64, "base64"), { flag: options.force === true ? "w" : "wx" });
|
|
34784
35103
|
console.log(outPath);
|
|
34785
35104
|
console.error(`${region}: ${shot.size.width}x${shot.size.height} at ${shot.scale}x (${shot.layers.canvases} canvas, ${shot.layers.domOverlays} DOM layer${shot.layers.domOverlays === 1 ? "" : "s"})`);
|
|
34786
|
-
if (shot.flatness?.degenerate === true && shot.flatness.warning !== void 0) console.error(`warning \u2014 ${shot.flatness.warning}`);
|
|
35105
|
+
if (region !== "page" && shot.flatness?.degenerate === true && shot.flatness.warning !== void 0) console.error(`warning \u2014 ${shot.flatness.warning}`);
|
|
34787
35106
|
}
|
|
34788
35107
|
async function assertUnambiguousTarget(client, target, file3) {
|
|
34789
35108
|
const entities = await liveEntityRows(client);
|
|
@@ -34802,10 +35121,10 @@ async function assetLabLook(client, source, flags, outputDirectory, defaultStage
|
|
|
34802
35121
|
...flags.width === void 0 ? {} : { width: flags.width },
|
|
34803
35122
|
...flags.height === void 0 ? {} : { height: flags.height }
|
|
34804
35123
|
};
|
|
34805
|
-
|
|
35124
|
+
mkdirSync6(outputDirectory, { recursive: true });
|
|
34806
35125
|
if (flags.compare !== void 0) {
|
|
34807
35126
|
if (flags.shots !== void 0) throw new Error("--compare cannot be combined with --shots");
|
|
34808
|
-
const refBytes =
|
|
35127
|
+
const refBytes = readFileSync9(resolve22(flags.compare));
|
|
34809
35128
|
const maxRefBytes = 32 * 1024 * 1024;
|
|
34810
35129
|
if (refBytes.byteLength > maxRefBytes) throw new Error(`--compare reference GLB must be ${maxRefBytes / 1024 / 1024} MiB or less.`);
|
|
34811
35130
|
const capture3 = await client.captureAssetComparePreview(source, refBytes.toString("base64"), dimensions);
|
|
@@ -34813,7 +35132,7 @@ async function assetLabLook(client, source, flags, outputDirectory, defaultStage
|
|
|
34813
35132
|
for (const view of capture3.views) {
|
|
34814
35133
|
iou[view.view] = view.iou;
|
|
34815
35134
|
for (const [suffix, image] of [["overlay", view.overlay], ["asset", view.asset], ["ref", view.ref]]) {
|
|
34816
|
-
|
|
35135
|
+
writeFileSync6(join23(outputDirectory, `compare-${view.view}-${suffix}.png`), Buffer.from(image.base64, "base64"));
|
|
34817
35136
|
}
|
|
34818
35137
|
}
|
|
34819
35138
|
console.log(JSON.stringify({ compare: { iou } }));
|
|
@@ -34833,18 +35152,18 @@ async function assetLabLook(client, source, flags, outputDirectory, defaultStage
|
|
|
34833
35152
|
const warnings = new Map((capture3.warnings ?? []).map((warning) => [warning.label, warning]));
|
|
34834
35153
|
for (const image of capture3.shots) {
|
|
34835
35154
|
const file3 = join23(outputDirectory, `${image.label}.png`);
|
|
34836
|
-
|
|
35155
|
+
writeFileSync6(file3, Buffer.from(image.base64, "base64"));
|
|
34837
35156
|
const warning = warnings.get(image.label);
|
|
34838
35157
|
if (warning) console.warn(`WARNING ${file3}: ${warning.message}`);
|
|
34839
35158
|
}
|
|
34840
|
-
|
|
35159
|
+
writeFileSync6(join23(outputDirectory, "contact-sheet.png"), Buffer.from(capture3.contactSheet.base64, "base64"));
|
|
34841
35160
|
const empty = capture3.warnings?.length ?? 0;
|
|
34842
35161
|
console.log(`Shot set '${flags.shots}' preview (${capture3.shots.length} shots${empty > 0 ? `, ${empty} EMPTY \u2014 see the warnings above` : ""}) written to ${outputDirectory}`);
|
|
34843
35162
|
return;
|
|
34844
35163
|
}
|
|
34845
35164
|
const capture2 = await client.captureAssetPreview(source, { ...dimensions, ...defaultStage === void 0 ? {} : { stage: defaultStage } });
|
|
34846
|
-
for (const image of capture2.views)
|
|
34847
|
-
|
|
35165
|
+
for (const image of capture2.views) writeFileSync6(join23(outputDirectory, `${image.view}.png`), Buffer.from(image.base64, "base64"));
|
|
35166
|
+
writeFileSync6(join23(outputDirectory, "contact-sheet.png"), Buffer.from(capture2.contactSheet.base64, "base64"));
|
|
34848
35167
|
console.log(`${join23(outputDirectory, "contact-sheet.png")} \u2190 every view on one sheet`);
|
|
34849
35168
|
console.log(` per-view frames beside it: ${capture2.views.map((image) => `${image.view}.png`).join(" ")}`);
|
|
34850
35169
|
if (capture2.orientation && capture2.orientation.yawDegrees !== 0) {
|
|
@@ -34906,23 +35225,23 @@ import { execFileSync as execFileSync4 } from "node:child_process";
|
|
|
34906
35225
|
import {
|
|
34907
35226
|
createWriteStream as createWriteStream2,
|
|
34908
35227
|
existsSync as existsSync12,
|
|
34909
|
-
mkdirSync as
|
|
34910
|
-
readFileSync as
|
|
35228
|
+
mkdirSync as mkdirSync7,
|
|
35229
|
+
readFileSync as readFileSync10,
|
|
34911
35230
|
renameSync as renameSync3,
|
|
34912
35231
|
rmSync as rmSync3,
|
|
34913
|
-
writeFileSync as
|
|
35232
|
+
writeFileSync as writeFileSync7
|
|
34914
35233
|
} from "node:fs";
|
|
34915
|
-
import { homedir as
|
|
34916
|
-
import { basename as basename4, isAbsolute as isAbsolute5, join as
|
|
35234
|
+
import { homedir as homedir7 } from "node:os";
|
|
35235
|
+
import { basename as basename4, isAbsolute as isAbsolute5, join as join14, resolve as resolve12, sep as sep3 } from "node:path";
|
|
34917
35236
|
var WORKBENCH_LOCATOR_PATH2 = ".volter/workbench.json";
|
|
34918
35237
|
var RELEASE_RECORD2 = "BUILD.json";
|
|
34919
|
-
var SOURCES_LAUNCHER2 =
|
|
35238
|
+
var SOURCES_LAUNCHER2 = join14("scripts", "code-server.sh");
|
|
34920
35239
|
var OVERLAY_RECORD2 = ".volter-overlay.json";
|
|
34921
35240
|
function writeWorkbenchDeclaration2(projectRoot, workbenchDir) {
|
|
34922
|
-
|
|
34923
|
-
|
|
34924
|
-
|
|
34925
|
-
`${JSON.stringify({ workbench:
|
|
35241
|
+
mkdirSync7(join14(projectRoot, ".volter"), { recursive: true });
|
|
35242
|
+
writeFileSync7(
|
|
35243
|
+
join14(projectRoot, WORKBENCH_LOCATOR_PATH2),
|
|
35244
|
+
`${JSON.stringify({ workbench: resolve12(workbenchDir) }, null, 2)}
|
|
34926
35245
|
`
|
|
34927
35246
|
);
|
|
34928
35247
|
}
|
|
@@ -34930,8 +35249,8 @@ function machinePlatform2() {
|
|
|
34930
35249
|
return `${process.platform}-${process.arch}`;
|
|
34931
35250
|
}
|
|
34932
35251
|
function resolveWorkbench2(dir, expectedProduct) {
|
|
34933
|
-
const root =
|
|
34934
|
-
const resolved = existsSync12(
|
|
35252
|
+
const root = resolve12(dir);
|
|
35253
|
+
const resolved = existsSync12(join14(root, RELEASE_RECORD2)) ? resolveRelease2(root) : existsSync12(join14(root, SOURCES_LAUNCHER2)) ? resolveSources2(root) : null;
|
|
34935
35254
|
if (resolved === null) {
|
|
34936
35255
|
throw new Error(
|
|
34937
35256
|
`${root} is neither a Code-OSS release nor a fork checkout: it carries no ${RELEASE_RECORD2} (the record scripts/workbench/build-release.mjs writes beside its tarball) and no ${SOURCES_LAUNCHER2}. Name the directory the release was extracted into, or the fork checkout itself.`
|
|
@@ -34947,11 +35266,11 @@ function resolveWorkbench2(dir, expectedProduct) {
|
|
|
34947
35266
|
return resolved;
|
|
34948
35267
|
}
|
|
34949
35268
|
function resolveRelease2(dir) {
|
|
34950
|
-
const record3 =
|
|
35269
|
+
const record3 = join14(dir, RELEASE_RECORD2);
|
|
34951
35270
|
const cut = `node scripts/workbench/build-release.mjs --product <id> --platform ${machinePlatform2()} --checkout <fork dir> --out ${dir}`;
|
|
34952
35271
|
let parsed;
|
|
34953
35272
|
try {
|
|
34954
|
-
parsed = JSON.parse(
|
|
35273
|
+
parsed = JSON.parse(readFileSync10(record3, "utf8"));
|
|
34955
35274
|
} catch (error50) {
|
|
34956
35275
|
throw new Error(`${record3} could not be read: ${String(error50)}`);
|
|
34957
35276
|
}
|
|
@@ -34975,13 +35294,13 @@ function resolveRelease2(dir) {
|
|
|
34975
35294
|
node scripts/workbench/build-release.mjs --product ${product} --platform ${machine} --checkout <fork dir>`
|
|
34976
35295
|
);
|
|
34977
35296
|
}
|
|
34978
|
-
const packageRoot =
|
|
34979
|
-
const serverBinPath =
|
|
35297
|
+
const packageRoot = join14(dir, target);
|
|
35298
|
+
const serverBinPath = join14(packageRoot, serverBin);
|
|
34980
35299
|
if (!existsSync12(serverBinPath)) {
|
|
34981
35300
|
const tarball = typeof parsed["tarball"] === "string" ? parsed["tarball"] : `${target}-<commit>.tar.gz`;
|
|
34982
35301
|
throw new Error(
|
|
34983
35302
|
`${dir} records ${target}, but ${serverBinPath} is not there \u2014 the tarball has not been extracted beside ${RELEASE_RECORD2}. Run:
|
|
34984
|
-
tar -xzf ${
|
|
35303
|
+
tar -xzf ${join14(dir, tarball)} -C ${dir}`
|
|
34985
35304
|
);
|
|
34986
35305
|
}
|
|
34987
35306
|
return { kind: "release", dir, commit, product, serverBin: serverBinPath, cwd: packageRoot };
|
|
@@ -34995,7 +35314,7 @@ function resolveSources2(dir) {
|
|
|
34995
35314
|
`${dir} carries ${SOURCES_LAUNCHER2}, so it reads as a Code-OSS fork checkout, but \`git rev-parse HEAD\` there failed (${error50 instanceof Error ? error50.message : String(error50)}). A checkout's commit is the only record of which fork this workbench is.`
|
|
34996
35315
|
);
|
|
34997
35316
|
}
|
|
34998
|
-
const marker =
|
|
35317
|
+
const marker = join14(dir, OVERLAY_RECORD2);
|
|
34999
35318
|
if (!existsSync12(marker)) {
|
|
35000
35319
|
throw new Error(
|
|
35001
35320
|
`${dir} is a Code-OSS checkout with no volter overlay: ${OVERLAY_RECORD2} is not there, so nothing of the editor is compiled into it and the workbench would come up as plain Code-OSS. Overlay and compile it:
|
|
@@ -35004,7 +35323,7 @@ function resolveSources2(dir) {
|
|
|
35004
35323
|
}
|
|
35005
35324
|
let product;
|
|
35006
35325
|
try {
|
|
35007
|
-
product = JSON.parse(
|
|
35326
|
+
product = JSON.parse(readFileSync10(marker, "utf8"))["product"];
|
|
35008
35327
|
} catch (error50) {
|
|
35009
35328
|
throw new Error(`${marker} could not be read: ${String(error50)}`);
|
|
35010
35329
|
}
|
|
@@ -35018,16 +35337,16 @@ function resolveSources2(dir) {
|
|
|
35018
35337
|
dir,
|
|
35019
35338
|
commit,
|
|
35020
35339
|
product,
|
|
35021
|
-
serverBin:
|
|
35340
|
+
serverBin: join14(dir, SOURCES_LAUNCHER2),
|
|
35022
35341
|
cwd: dir
|
|
35023
35342
|
};
|
|
35024
35343
|
}
|
|
35025
|
-
var WORKBENCH_CACHE_ROOT2 =
|
|
35344
|
+
var WORKBENCH_CACHE_ROOT2 = join14(homedir7(), ".volter", "workbenches");
|
|
35026
35345
|
|
|
35027
35346
|
// node/cli.ts
|
|
35028
35347
|
var PRODUCT = { packageName: package_default.name, id: "cyclotron", displayName: package_default.volter.product.displayName, command: Object.keys(package_default.bin)[0] };
|
|
35029
35348
|
function refuseRetired(from) {
|
|
35030
|
-
for (let dir =
|
|
35349
|
+
for (let dir = resolve13(from); ; dir = dirname10(dir)) {
|
|
35031
35350
|
if (hasManifest(dir)) {
|
|
35032
35351
|
const retired = declaredRetiredProduct(UPGRADING, dir);
|
|
35033
35352
|
if (retired !== null) throw retiredProjectError(UPGRADING, retired, dir);
|
|
@@ -35114,7 +35433,7 @@ try {
|
|
|
35114
35433
|
await hostedControl(PRODUCT.command, positionals.slice(1));
|
|
35115
35434
|
} else if (verb === "blender-mcp") {
|
|
35116
35435
|
if (positionals.length !== 1) throw new Error("Usage: cyclotron blender-mcp");
|
|
35117
|
-
let project =
|
|
35436
|
+
let project = resolve13(process.cwd());
|
|
35118
35437
|
while (!hasManifest(project)) {
|
|
35119
35438
|
const parent = dirname10(project);
|
|
35120
35439
|
if (parent === project) throw new Error("Run cyclotron blender-mcp inside a modeling project.");
|
|
@@ -35181,13 +35500,14 @@ try {
|
|
|
35181
35500
|
if (verb !== "create" && verb !== "edit") throw new Error(`Unknown command: ${verb}`);
|
|
35182
35501
|
if (verb === "create") {
|
|
35183
35502
|
if (!positionals[1]) throw new Error("create requires a new folder name.");
|
|
35184
|
-
if (values.workbench) resolveWorkbench2(
|
|
35185
|
-
console.log(`Creating Cyclotron project at ${
|
|
35186
|
-
await declaration.create({ name: folder.split(/[\\/]/).at(-1), targetDir:
|
|
35187
|
-
if (values.workbench) writeWorkbenchDeclaration2(
|
|
35503
|
+
if (values.workbench) resolveWorkbench2(resolve13(values.workbench), PRODUCT.id);
|
|
35504
|
+
console.log(`Creating Cyclotron project at ${resolve13(folder)}\u2026`);
|
|
35505
|
+
await declaration.create({ name: folder.split(/[\\/]/).at(-1), targetDir: resolve13(folder), ...values.template ? { template: values.template } : {} });
|
|
35506
|
+
if (values.workbench) writeWorkbenchDeclaration2(resolve13(folder), resolve13(values.workbench));
|
|
35188
35507
|
}
|
|
35189
35508
|
const project = verb === "edit" && positionals.length < 2 ? await startupProject(declaration.create) : folder;
|
|
35190
|
-
console.log(`Opening Cyclotron for ${
|
|
35509
|
+
console.log(`Opening Cyclotron for ${resolve13(project)}\u2026`);
|
|
35510
|
+
await refreshStarterGuidance(resolve13(project));
|
|
35191
35511
|
await launch(project, PRODUCT, {
|
|
35192
35512
|
...values.workbench ? { workbench: values.workbench } : {},
|
|
35193
35513
|
...values["no-open"] ? { noOpen: true } : {},
|