@fps-games/editor 0.2.0-beta.1 → 0.2.0-beta.3
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/dist/agent-bridge/capabilities/assets.js.map +1 -1
- package/dist/agent-bridge/capabilities/editor-state.js.map +1 -1
- package/dist/agent-bridge/capabilities/host-lifecycle.js.map +1 -1
- package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
- package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
- package/dist/agent-bridge/capabilities/selection.js.map +1 -1
- package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
- package/dist/agent-bridge/capabilities/transform.js.map +1 -1
- package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
- package/dist/agent-bridge/capabilities/viewport.js.map +1 -1
- package/dist/agent-bridge/capability-sources.js.map +1 -1
- package/dist/agent-bridge/diagnostics.js.map +1 -1
- package/dist/agent-bridge/index.js.map +1 -1
- package/dist/agent-bridge/register.js.map +1 -1
- package/dist/agent-bridge/shared.js.map +1 -1
- package/dist/agent-bridge/source-types.js.map +1 -1
- package/dist/authoring-apply.js.map +1 -1
- package/dist/build-info.json +48 -48
- package/dist/editor-plugin-agent-capabilities.js.map +1 -1
- package/dist/editor-plugin-hierarchy-command.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/local-editor-lifecycle-operations.js.map +1 -1
- package/dist/local-editor-agent-actions.js.map +1 -1
- package/dist/local-editor-agent-bridge-transport.js.map +1 -1
- package/dist/local-editor-agent-bridge.js.map +1 -1
- package/dist/local-editor-agent-context.js.map +1 -1
- package/dist/local-editor-harness.d.ts +57 -1
- package/dist/local-editor-harness.d.ts.map +1 -1
- package/dist/local-editor-harness.js +129 -0
- package/dist/local-editor-harness.js.map +1 -1
- package/dist/local-editor-marker-graph.js.map +1 -1
- package/dist/local-editor-performance-stats.js.map +1 -1
- package/dist/local-editor-plugin-inspector.js.map +1 -1
- package/dist/local-editor-plugin-panel.js.map +1 -1
- package/dist/local-editor-scene-render-scheduler.js.map +1 -1
- package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
- package/dist/local-editor-viewport-render-coordinator.js.map +1 -1
- package/dist/playable-babylon-facade.js.map +1 -1
- package/dist/playable-babylon-outline-inspector.js.map +1 -1
- package/dist/playable-babylon-outline-runtime.js.map +1 -1
- package/dist/playable-babylon-rendering.js.map +1 -1
- package/dist/playable-local-editor-host.d.ts +36 -0
- package/dist/playable-local-editor-host.d.ts.map +1 -1
- package/dist/playable-local-editor-host.js.map +1 -1
- package/dist/playable-product-local-editor.js.map +1 -1
- package/dist/playable-product-projection-preview.js.map +1 -1
- package/dist/playable-product-rendering.js.map +1 -1
- package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
- package/dist/playable-product-scene-capabilities.js +50 -3
- package/dist/playable-product-scene-capabilities.js.map +1 -1
- package/dist/playable-runtime-babylon.js.map +1 -1
- package/dist/playable-runtime.js.map +1 -1
- package/dist/playable-sdk-upgrade-doctor.js.map +1 -1
- package/dist/playable-sdk-vite.js.map +1 -1
- package/dist/playable-sdk.js.map +1 -1
- package/dist/playable-standard-project.d.ts.map +1 -1
- package/dist/playable-standard-project.js +8 -3
- package/dist/playable-standard-project.js.map +1 -1
- package/dist/static-shadow-cpu-worker.js.map +1 -1
- package/dist/vite.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/environment-texture-controller.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/profile.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/environment/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/lighting/directional-light-angles.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/apply.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/babylon-default/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/outlines/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/placement/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/placement/runtime-drop-position.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/profile.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/volume-stack.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/rendering/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/rendering/node-rendering.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-shaders.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-shaders.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-atlas.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-bake.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-options.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-rendering.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
- package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/edit-session.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/editor-sky.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/editor-world.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/event-guard.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/infinite-grid-layer.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/input-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/inspector-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/inspector-host.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/monitor.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/outline-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/performance-monitor.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/primitive-projection-instancing.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-pick-resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-selection-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-source-owner-path.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/runtime-globals.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-camera-preview.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-measurement-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/selection-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/tool-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-solver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/types.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/package.json +5 -5
- package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-clipboard.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-rendering-actions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-root-ownership.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-auto-scroll.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-plugin-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-auto-scroll.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-preview.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-session.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-camera-debug-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug-panel-shell.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-lighting-debug-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/package.json +4 -4
- package/node_modules/@fps-games/editor-core/dist/agent-bridge.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/agent-interaction.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/authoring-source.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/document-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js +17 -2
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +6 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-session.js +9 -0
- package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/events.d.ts +1 -1
- package/node_modules/@fps-games/editor-core/dist/events.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/events.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/index.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/schema.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/types.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/field-schema/validators.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/host-services.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/lifecycle.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/marker-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/scene-view-input.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/selection-strategy.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/serialized-object.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-command.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-gizmo.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-operation-policy.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/transform-operations.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/viewport-tools.js.map +1 -1
- package/node_modules/@fps-games/editor-core/package.json +6 -6
- package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js.map +1 -1
- package/node_modules/@fps-games/editor-forge-play/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/drop-cache.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js +28 -5
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/payload.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-bridge/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/config.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js +10 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/managed-facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.d.ts +8 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js +24 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/manager-core.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js +6 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js +83 -23
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js +8 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/catalog.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.d.ts +22 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js +108 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.d.ts +3 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/types.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/identity.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/managed-runtime-instance.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/runtime-scene.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js +3 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/result.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/transport.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js +7 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-registration/workflow.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/constants.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/drift.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/runtime-transform-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring/source.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/client.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-client/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/payload.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/response.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/adapter-dispatcher.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/payload.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/project-asset-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/readers.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/binding.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/math.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/pan.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-format.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-state.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-storage.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/panel-text.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/rig.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/save-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/snapshot.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/camera-debug/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/commands/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/commands/transform.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/commands/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/core-contracts/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.js +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/camera-section.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-property.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/format.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/light-sections.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/marker-section.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/object-assembly.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/readonly.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-sections.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime-summary.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/runtime.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/safe-value.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/validation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/internal/local-harness.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/binding.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/math.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/save-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/snapshot.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/storage.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/text.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/math.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/profile.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-preview/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js +4 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/lifecycle.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/loading-overlay.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/loading-overlay.js +54 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/loading-overlay.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts +18 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js +60 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/project-asset-commands.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/timing.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/game-objects.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/geometry.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/marker-scene/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/default-assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js +28 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/document-assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/duplicate.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/paths.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/preview.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/profile.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js +26 -9
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/reimport.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js +0 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/text.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts +8 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/json-field.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/rendering-alpha-index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/transform.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js +18 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/shadow-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/source-structure-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/structure.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/asset-manager.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal-scene-feature.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js +3 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts +3 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js +10 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-source.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-asset-actions.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/draft.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/route.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/import-plan.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +82 -6
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts +11 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js +46 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/validation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/artifacts.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/companion-configs.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts +3 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/validation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/object.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/classification.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/identity.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/object-command-facade.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/property-patches.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/system-defaults.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/transform.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shared/http.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shared/json.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shared/json.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shared/json.js +25 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shared/json.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/host.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/inspectors.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/report.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/upgrade-doctor/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/asset-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/authoring-http.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-core.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/build-info-node.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts +6 -5
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js +37 -20
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts +3 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js +37 -8
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/module-invalidation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/path-write-coordinator.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts +4 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +14 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts +5 -4
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-adapter.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts +3 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js +10 -17
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-asset-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts +8 -7
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +84 -6
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-rendering-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts +4 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js +1 -4
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-scene-authoring.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +0 -33
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/package.json +9 -6
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/marker-graph.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/package.json +2 -2
- package/node_modules/@fps-games/editor-tooling/dist/contributions.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/data-object.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/migration.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/vite.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/package.json +3 -3
- package/node_modules/@fps-games/playable-assets/dist/identity.js.map +1 -1
- package/node_modules/@fps-games/playable-assets/dist/index.d.ts +1 -0
- package/node_modules/@fps-games/playable-assets/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-assets/dist/index.js +1 -0
- package/node_modules/@fps-games/playable-assets/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts +2 -0
- package/node_modules/@fps-games/playable-assets/dist/portable-path.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-assets/dist/portable-path.js +25 -0
- package/node_modules/@fps-games/playable-assets/dist/portable-path.js.map +1 -0
- package/node_modules/@fps-games/playable-assets/package.json +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/marker-graph-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/marker-graph.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/package.json +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-authoring.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-types.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-values.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-quality.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-settings.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-types.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/value.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/package.json +2 -2
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js +5 -1
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/runtime-data.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/standard-plugins.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/tokens.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/types.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/package.json +12 -12
- package/node_modules/@fps-games/playable-runtime-data/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
- package/node_modules/@fps-games/playable-scene/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-scene/dist/transform-math.js.map +1 -1
- package/node_modules/@fps-games/playable-scene/package.json +2 -2
- package/node_modules/@fps-games/plugin-api/dist/index.js.map +1 -1
- package/node_modules/@fps-games/plugin-api/package.json +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-assets/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-assets/package.json +5 -5
- package/node_modules/@fps-games/plugin-host/dist/index.js.map +1 -1
- package/node_modules/@fps-games/plugin-host/package.json +2 -2
- package/node_modules/@fps-games/plugin-markers/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-markers/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-markers/package.json +5 -5
- package/node_modules/@fps-games/plugin-materials/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-materials/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-materials/package.json +5 -5
- package/node_modules/@fps-games/plugin-rendering/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-rendering/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-rendering/package.json +5 -5
- package/node_modules/@fps-games/plugin-scene/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-scene/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-scene/package.json +5 -5
- package/node_modules/@fps-games/plugin-shadows/dist/reference.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
- package/package.json +27 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-editor-harness.js","sourceRoot":"","sources":["../src/local-editor-harness.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"local-editor-harness.js","sourceRoot":"","sources":["../src/local-editor-harness.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type AuthoringCommandResult,\n type AuthoringSourceDescriptor,\n createEditorSession,\n FPS_EDITOR_ACTIVE_TOOL_CHANGED,\n FPS_EDITOR_DOCUMENT_CHANGED,\n FPS_EDITOR_HISTORY_CHANGED,\n FPS_EDITOR_SELECTION_CHANGED,\n createEditorAgentBridge,\n createInspectorRegistry,\n DEFAULT_EDITOR_TRANSFORM_OPERATION_SETTINGS,\n DEFAULT_EDITOR_VIEWPORT_TOOL_STATE,\n createEmptyEditorViewportSpatialOverlayState,\n type DocumentCommand,\n type EditorPlacementHit,\n type EditorProjectionImpact,\n type EditorSelectionState,\n type EditorSession,\n type EditorSessionChange,\n type EditorSessionDispatchResult,\n type EditorSessionHistoryResult,\n type EditorPlacementMode,\n type EditorTransformAction,\n type EditorTransformBatchCommit,\n type EditorTransformCanonicalConstraint,\n type EditorTransformConstraint,\n type EditorTransformDocumentCapabilities,\n type EditorTransformOperationSettings,\n type EditorTransformPivot,\n type EditorTransformSnapshot,\n type EditorTransformSpace,\n type EditorTransformTargetSnapshot,\n type EditorTransformTrsSnapshot,\n type EditorTransformTool,\n type EditorTransformVec3,\n type EditorViewportGroundMeasurement,\n type EditorViewportOverlaySettings,\n type EditorViewportProjectionMode,\n type EditorViewportSpatialOverlayState,\n type EditorViewportToolState,\n type EditorViewportUtilityTool,\n type EditorViewportViewPreset,\n cloneEditorTransformSnapshot as cloneCoreEditorTransformSnapshot,\n composeEditorTransformMatrix,\n editorTransformMatricesAlmostEqual,\n cloneEditorViewportToolState,\n cloneEditorViewportSpatialOverlayState,\n type SelectionCommand,\n type SceneGraphCreateGroupIntent,\n type SceneGraphCreatePrimitiveIntent,\n type SceneGraphDeleteIntent,\n type SceneGraphDropIntent,\n type SceneGraphGroupSelectionIntent,\n type SceneGraphMoveIntent,\n type SceneGraphRenameIntent,\n type SceneGraphValidationResult,\n aggregateInspectorObjectsToMultiObject,\n createInspectorEditPayload,\n type InspectorControlKind,\n type InspectorCommitMode,\n type InspectorComponentRegistration,\n type InspectorEditPayload,\n type InspectorObject,\n type InspectorPersistenceMode,\n type InspectorProperty,\n type InspectorRegistry,\n type InspectorRegistryConflictStrategy,\n type InspectorSection,\n type InspectorSelectionContext,\n type EditorHostServices,\n type EditorAgentBridge,\n compareInspectorSections,\n computeEditorTransformActionTargets,\n mergeInspectorSections,\n isEditorTransformTrsSnapshot,\n normalizeEditorTransformConstraint,\n readEditorTransformPosition,\n type ProjectAuthoringHost,\n resolveEditorSelectionCommand,\n validateSceneGraphDelete,\n validateSceneGraphDrop,\n validateSceneGraphGroupSelection,\n validateSceneGraphMove,\n validateSceneGraphRename,\n} from '@fps-games/editor-core';\nimport {\n type EditorAgentBridgePrefabStageState,\n type EditorAgentBridgePrefabSummary,\n type ArtistMaterialTextureRef,\n type SpatialMarkerGeometry,\n type SpatialMarkerGraph,\n type SpatialMarkerNode,\n type SpatialMarkerTypeDefinition,\n type SpatialRelation,\n type SpatialRelationTypeDefinition,\n} from '@fps-games/editor-protocol';\nimport {\n createLocalEditorBrowserUi,\n type LocalEditorBrowserUi,\n type LocalEditorBrowserAssetActionInput,\n type LocalEditorBrowserUiAssetItem,\n type LocalEditorBrowserHierarchyContextActionContext,\n type LocalEditorBrowserHierarchyContextActionRegistration,\n type LocalEditorBrowserHierarchySelectionInput,\n type LocalEditorBrowserInspectorActionInput,\n type LocalEditorBrowserInspectorOptions,\n type LocalEditorBrowserPerformanceStats,\n type LocalEditorBrowserPrefabStageComparisonPreview,\n type LocalEditorBrowserPrefabStageImportStats,\n type LocalEditorBrowserRenderingPanelState,\n type LocalEditorBrowserRenderingActionInput,\n type LocalEditorBrowserRenderingPropertyChangeInput,\n type LocalEditorBrowserSceneGraphActionResult,\n type LocalEditorBrowserMarkerRelationActionInput,\n type LocalEditorBrowserMarkerTypeActionInput,\n type LocalEditorBrowserUiCallbacks,\n type LocalEditorBrowserUiPropertyInput,\n type LocalEditorBrowserUiHierarchyItem,\n type LocalEditorBrowserUiState,\n type LocalEditorContextAction,\n type LocalEditorThemeController,\n type LocalEditorThemeName,\n toTransformOperationPolicyStatusLabel,\n} from '@fps-games/editor-browser';\nimport type { FpsEditorPluginHost } from '@fps-games/editor-core/plugin-host';\nimport { createLocalEditorHarnessPluginInspectorOptions } from './local-editor-plugin-inspector.js';\nimport {\n registerLocalEditorHarnessLifecycleOperations,\n} from './internal/local-editor-lifecycle-operations.js';\nimport { createLocalEditorPluginPanelState } from './local-editor-plugin-panel.js';\nimport {\n createBabylonEnvironmentTextureController,\n createBabylonDefaultPostProcessPipelineController,\n type BabylonEnvironmentTextureController,\n type BabylonEnvironmentTextureProfile,\n type BabylonDefaultPostProcessPipelineController,\n type BabylonDefaultPostProcessProfile,\n} from '@fps-games/babylon-renderer';\nimport {\n createBabylonEditorProjection,\n createBabylonEditorMarkerOverlayController,\n createBabylonMarkerOverlayProjectionAdapter,\n createBabylonEditorWorld,\n createBabylonPrefabComparisonPreviewController,\n createBabylonProjectionSelectionController,\n createBabylonSceneCameraPreviewController,\n createBabylonSceneViewCameraController,\n createBabylonSceneViewInputController,\n createBabylonSceneViewMeasurementController,\n createBabylonSceneViewSpatialOverlayController,\n createBabylonEditorShadowPreviewController,\n createBabylonTransformGizmoController,\n createBabylonEditorPerformanceMonitor,\n focusEditorViewportSelection,\n type BabylonEditorProjection,\n type BabylonEditorProjectionBounds,\n type BabylonEditorMarkerOverlayController,\n type BabylonEditorMarkerOverlayRelationEntry,\n type BabylonEditorProjectionBatchStatus,\n type BabylonEditorProjectionIdleState,\n type BabylonEditorProjectionImportStructureSnapshot,\n type BabylonProjectionSelectionBox,\n type BabylonProjectionSelectionController,\n type BabylonSceneViewCameraController,\n type BabylonSceneViewInputController,\n type BabylonSceneViewMeasurementController,\n type BabylonSceneViewSpatialOverlayController,\n type BabylonEditorShadowPreviewController,\n type BabylonEditorShadowPreviewOptions,\n type BabylonEditorProjectionImportContext,\n type BabylonEditorProjectionImportResult,\n type BabylonEditorProjectionMaterialProfileDiagnostic,\n type BabylonEditorProjectionNode,\n type BabylonEditorProjectionSelectionEdgesPrewarm,\n type BabylonPrefabComparisonPreviewController,\n type BabylonSceneCameraPreviewController,\n type BabylonSceneCameraPreviewRig,\n type BabylonEditorGridController,\n type BabylonEditorGridColorOptions,\n type BabylonTransformGizmoCommit,\n type BabylonTransformGizmoBlockEvent,\n type BabylonTransformGizmoController,\n type BabylonTransformGizmoDragEvent,\n type BabylonTransformGizmoDuplicateDragInput,\n type BabylonTransformGizmoDuplicateDragResult,\n type BabylonEditorWorld,\n type BabylonEditorWorldAppearanceOptions,\n type BabylonEditorSkyOptions,\n type BabylonEditorPerformanceMonitor,\n type BabylonRuntimeGlobal,\n type RuntimeScene,\n} from '@fps-games/editor-babylon';\nimport {\n createLocalEditorSceneRenderScheduler,\n type LocalEditorSceneRenderScheduler,\n type LocalEditorSceneRenderStats,\n} from './local-editor-scene-render-scheduler.js';\nimport {\n createPlayableBabylonOutlineInspectorSection,\n createPlayableBabylonOutlineInspectorSeedPatchValue,\n isPlayableBabylonOutlineInspectorPatchPath,\n type PlayableBabylonOutlineInspectorLanguage,\n type PlayableBabylonOutlineOverrideConfig,\n} from './playable-babylon-outline-inspector.js';\nimport {\n createLocalEditorViewportRenderCoordinator,\n type LocalEditorViewportRenderCoordinator,\n} from './local-editor-viewport-render-coordinator.js';\nimport {\n createLocalEditorSceneViewInteractionRuntime,\n type LocalEditorSceneViewInteractionRuntime,\n} from './local-editor-scene-view-interaction-runtime.js';\nimport {\n cloneLocalEditorPerformanceStats,\n countLocalEditorAuthoredObjects,\n createLocalEditorPerformanceStats,\n LOCAL_EDITOR_PERFORMANCE_MONITOR_REASON,\n} from './local-editor-performance-stats.js';\nimport { registerLocalEditorAgentBridgeCapabilities } from './local-editor-agent-bridge.js';\nimport { registerEditorPluginAgentCapabilities } from './editor-plugin-agent-capabilities.js';\nimport { createLocalEditorHarnessPluginHierarchyContextActions } from './editor-plugin-hierarchy-command.js';\nimport {\n createLocalEditorAgentBridgeCapabilitySources,\n type LocalEditorAgentBridgeCapabilitySourceOperations,\n type LocalEditorAgentBridgePrefabStageDetails,\n type LocalEditorAgentBridgeHarnessState,\n type LocalEditorAgentBridgeRenderingActionResult,\n} from './agent-bridge/capability-sources.js';\nimport {\n createDisabledLocalEditorAgentBridgeTransportStatus,\n createLocalEditorAgentBridgeWebSocketTransportFromQuery,\n type LocalEditorAgentBridgeSessionMetadata,\n type LocalEditorAgentBridgeTransportController,\n type LocalEditorAgentBridgeTransportStatus,\n} from './local-editor-agent-bridge-transport.js';\nimport type {\n PlayableLocalEditorInteractionPolicy,\n PlayableLocalEditorSaveFailureInput,\n PlayableLocalEditorSaveFailureState,\n PlayableLocalEditorUnsavedChangesState,\n} from '@fps-games/editor-playable-sdk';\nimport {\n PLAYABLE_LOCAL_EDITOR_APPLICATION_SCOPE_ID,\n PLAYABLE_LOCAL_EDITOR_MAIN_DOCUMENT_SCOPE_ID,\n PLAYABLE_LOCAL_EDITOR_MAIN_PREVIEW_SCOPE_ID,\n PLAYABLE_LOCAL_EDITOR_MAIN_SESSION_SCOPE_ID,\n PLAYABLE_LOCAL_EDITOR_PROJECT_SCOPE_ID,\n type PlayableLocalEditorLifecycleController,\n} from '@fps-games/editor-playable-sdk/internal/local-harness';\nimport type {\n FpsEditorLifecycleChangedEvent,\n FpsEditorLifecycleService,\n} from '@fps-games/editor-core/lifecycle';\nimport { FPS_EDITOR_LIFECYCLE_TRANSITION_TYPES } from '@fps-games/editor-core/lifecycle';\nimport {\n createMarkerGraphHierarchyItems,\n createMarkerGraphInspectorObject,\n createMarkerGraphRootInspectorObject,\n createMarkerPanelState,\n createMarkerRelationCommand,\n createMarkerRelationCreateManyCommand,\n createMarkerRelationDeleteConnectedCommand,\n createMarkerRelationReverseCommand,\n createMarkerGraphPatchFromInspectorEdit,\n findSpatialMarkerById,\n getSpatialMarkerDirectRelations,\n isMarkerGraphHierarchyId,\n isMarkerGraphHierarchyRootRowId,\n isSpatialMarkerBackedByHierarchyRow,\n isSpatialMarkerHierarchyVisible,\n readMarkerGraphHierarchyMarkerIdForGraph,\n readSpatialMarkerIdFromHierarchySelection,\n type MarkerGraphHierarchyVisibility,\n type MarkerRelationVisibilityOptions,\n} from './local-editor-marker-graph.js';\n\nexport type LocalEditorHarnessMode = 'game' | 'editor';\ntype LocalEditorMaybePromise<T> = T | Promise<T>;\n\nconst BATCH_EDIT_REQUIRES_MULTI_PATCH_REASON = 'Batch edit requires multi-property patch support.';\nconst LARGE_SELECTION_THRESHOLD = 200;\nconst LARGE_SHADOW_MODE_BATCH_THRESHOLD = 200;\nconst EDITOR_PROJECTION_IDLE_BEFORE_RUN_GAME_TIMEOUT_MS = 1500;\nconst EDITOR_WORLD_DISPOSE_BOUNDARY_DELAY_MS = 500;\nconst RENDERING_ACTION_PROGRESS_MIN_VISIBLE_MS = 1000;\nconst EMPTY_EDITOR_SELECTION: EditorSelectionState = { selectedIds: [], activeId: null };\nconst MARKER_RELATION_HIGHLIGHT_RENDER_REASON = 'marker-relation-highlight';\n\ninterface LocalEditorMarkerRelationEndpointInput {\n kind: string;\n id: string;\n}\n\ninterface LocalEditorMarkerRelationPickState {\n active: boolean;\n type?: string;\n typeLabel?: string;\n directed?: boolean;\n from?: LocalEditorMarkerRelationEndpointInput | null;\n status?: string;\n statusTone?: 'default' | 'success' | 'warning' | 'error';\n}\n\ninterface LocalEditorMarkerCreateReservations {\n ids: Set<string>;\n labels: Set<string>;\n}\n\ninterface LocalEditorBrowserSceneGraphCreateMarkerIntent {\n markerType?: string;\n parentId?: string | null;\n activeId?: string | null;\n name?: string;\n}\n\ntype LocalEditorHarnessContextAction = LocalEditorContextAction\n | {\n region: 'hierarchy';\n action: 'create-marker';\n parentId?: string | null;\n activeId?: string | null;\n markerType?: string;\n name?: string;\n };\n\ntype LocalEditorHarnessBrowserCallbacks = LocalEditorBrowserUiCallbacks & {\n onSceneGraphCreateMarker?: (intent: LocalEditorBrowserSceneGraphCreateMarkerIntent) => void;\n};\n\ntype LocalEditorMarkerRelationActionInput =\n | (Extract<LocalEditorBrowserMarkerRelationActionInput, { action: 'create' }> & {\n toEndpoints?: readonly LocalEditorMarkerRelationEndpointInput[];\n })\n | Exclude<LocalEditorBrowserMarkerRelationActionInput, { action: 'create' }>\n | {\n action: 'delete-connected';\n markerId?: string;\n }\n | {\n action: 'reverse';\n relationId: string;\n }\n | {\n action: 'pick-start';\n type: string;\n fromKind?: string;\n fromId?: string;\n directed?: boolean;\n }\n | {\n action: 'pick-cancel';\n };\n\nexport interface LocalEditorAuthoringFailureStatus {\n status: string;\n details: string;\n}\n\nexport interface LocalEditorHarnessAssetItem {\n id: string;\n label: string;\n guid?: string;\n assetId?: string;\n kind?: string;\n external?: {\n platformAssetId?: string;\n assetPath?: string;\n assetUrl?: string;\n [key: string]: unknown;\n };\n origin?: string;\n dedupeKey?: string;\n displayName?: string;\n meta?: string;\n placeable?: boolean;\n preview?: LocalEditorBrowserUiAssetItem['preview'];\n prefab?: LocalEditorBrowserUiAssetItem['prefab'];\n disabled?: boolean;\n raw?: unknown;\n}\n\nexport interface LocalEditorHarnessViewportMeasurementState {\n viewportTools: EditorViewportToolState;\n viewportMeasurement: EditorViewportGroundMeasurement;\n sceneViewMeasurement: Pick<\n BabylonSceneViewMeasurementController,\n 'beginAt' | 'previewAt' | 'completeAt' | 'clear'\n > | null;\n status: string;\n statusTone?: 'default' | 'success' | 'warning' | 'error';\n statusToneStatus: string;\n statusDetails: string;\n}\n\nexport interface LocalEditorHarnessPropertyInput<TDocument = unknown> {\n document: TDocument;\n targetId: string;\n targetIds?: string[];\n path: string;\n value: unknown;\n control?: InspectorControlKind;\n valueType?: InspectorProperty['valueType'];\n commitMode?: InspectorCommitMode;\n persistence?: InspectorPersistenceMode;\n source?: InspectorEditPayload['source'];\n}\n\nexport interface LocalEditorHarnessMultiPropertyInput<TDocument = unknown> {\n document: TDocument;\n targetIds: string[];\n activeId: string | null;\n path: string;\n value: unknown;\n control?: InspectorControlKind;\n valueType?: InspectorProperty['valueType'];\n commitMode?: InspectorCommitMode;\n persistence?: InspectorPersistenceMode;\n source?: InspectorEditPayload['source'];\n}\n\nexport interface LocalEditorHarnessMultiPropertyCapabilityInput<TDocument = unknown> {\n document: TDocument;\n targetIds: string[];\n activeId: string | null;\n path: string;\n control?: InspectorControlKind;\n valueType?: InspectorProperty['valueType'];\n commitMode?: InspectorCommitMode;\n persistence?: InspectorPersistenceMode;\n}\n\nexport interface LocalEditorHarnessRenderingPropertyInput<TDocument = unknown>\n extends LocalEditorBrowserRenderingPropertyChangeInput {\n document: TDocument;\n}\n\nexport interface LocalEditorHarnessRenderingActionInput<TDocument = unknown>\n extends LocalEditorBrowserRenderingActionInput {\n document: TDocument;\n scene?: RuntimeScene | null;\n projection?: BabylonEditorProjection | null;\n reportProgress?: (progress: LocalEditorHarnessRenderingActionProgress) => void | Promise<void>;\n}\n\nexport interface LocalEditorHarnessRenderingActionProgress {\n actionId?: string;\n label?: string;\n status?: string;\n statusTone?: LocalEditorBrowserUiState['statusTone'];\n statusDetails?: string;\n value?: number;\n indeterminate?: boolean;\n details?: Record<string, unknown>;\n}\n\nexport interface LocalEditorHarnessRenderingPropertyChangeResult<TPatch = unknown> {\n changed?: boolean;\n dirty?: boolean;\n status?: string;\n statusTone?: LocalEditorBrowserUiState['statusTone'];\n statusDetails?: string;\n details?: Record<string, unknown>;\n refreshWorldRendering?: boolean;\n documentPatch?: LocalEditorHarnessPatchResult<TPatch> | null;\n}\n\nexport interface LocalEditorHarnessRuntimeInspectorContext<TDocument = unknown> {\n document: TDocument;\n targetIds: string[];\n activeId: string | null;\n inspectorObject: InspectorObject<TDocument>;\n projectionNode?: BabylonEditorProjectionNode | null;\n projectedRoot?: unknown;\n}\n\nexport interface LocalEditorHarnessInspectorOptions<TDocument = unknown>\n extends LocalEditorBrowserInspectorOptions<TDocument> {\n components?: InspectorRegistry<TDocument> | readonly InspectorComponentRegistration<TDocument>[];\n componentConflict?: InspectorRegistryConflictStrategy;\n propertyConflict?: InspectorRegistryConflictStrategy;\n}\n\nexport interface LocalEditorHarnessInspectorComponentMergeInput<TDocument = unknown> {\n inspectorObject: InspectorObject<TDocument>;\n components?: InspectorRegistry<TDocument> | readonly InspectorComponentRegistration<TDocument>[];\n context?: InspectorSelectionContext<TDocument>;\n componentConflict?: InspectorRegistryConflictStrategy;\n propertyConflict?: InspectorRegistryConflictStrategy;\n}\n\nexport interface LocalEditorHarnessTransformInput<TDocument = unknown> {\n document: TDocument;\n targetId: string;\n tool: Exclude<EditorTransformTool, 'select'>;\n space: EditorTransformSpace;\n constraint: EditorTransformCanonicalConstraint;\n before: EditorTransformSnapshot;\n after: EditorTransformSnapshot;\n}\n\nexport interface LocalEditorHarnessTransformInspectorPreviewInput<TDocument = unknown> {\n document: TDocument;\n targetId: string;\n targetIds: string[];\n activeId: string | null;\n transform: EditorTransformSnapshot;\n}\n\nexport interface LocalEditorHarnessTransformBatchInput<TDocument = unknown> extends EditorTransformBatchCommit {\n document: TDocument;\n}\n\nexport interface LocalEditorHarnessDuplicateSelectionInput<TDocument = unknown> {\n document: TDocument;\n targetIds: string[];\n activeId: string | null;\n transforms: Record<string, EditorTransformSnapshot>;\n}\n\nexport interface LocalEditorHarnessPlacedAssetInput<TDocument = unknown, TAsset = LocalEditorHarnessAssetItem> {\n document: TDocument;\n asset: TAsset;\n hit: EditorPlacementHit;\n}\n\nexport interface LocalEditorHarnessHierarchyContextActionContext<TDocument = unknown> {\n document: TDocument;\n contextNodeId: string | null;\n targetIds: string[];\n activeId: string | null;\n hierarchyItem: LocalEditorBrowserUiHierarchyItem | null;\n projectionNode: BabylonEditorProjectionNode | null;\n hostServices: EditorHostServices | null;\n payload?: Record<string, unknown>;\n browserContext: LocalEditorBrowserHierarchyContextActionContext<TDocument>;\n}\n\nexport interface LocalEditorHarnessHierarchyContextActionRegistration<TDocument = unknown, TPatch = unknown> {\n id: string;\n label: string;\n shortcut?: string;\n danger?: boolean;\n placement?: LocalEditorBrowserHierarchyContextActionRegistration<TDocument>['placement'];\n separatorBefore?: boolean;\n children?: readonly LocalEditorHarnessHierarchyContextActionChildRegistration<TDocument>[]\n | ((context: LocalEditorHarnessHierarchyContextActionContext<TDocument>) => readonly LocalEditorHarnessHierarchyContextActionChildRegistration<TDocument>[]);\n visible?(context: LocalEditorHarnessHierarchyContextActionContext<TDocument>): boolean;\n disabled?(context: LocalEditorHarnessHierarchyContextActionContext<TDocument>): boolean | string;\n run(context: LocalEditorHarnessHierarchyContextActionContext<TDocument>): LocalEditorMaybePromise<\n boolean | void | LocalEditorHarnessPatchResult<TPatch>\n >;\n}\n\nexport interface LocalEditorHarnessHierarchyContextActionChildRegistration<TDocument = unknown> {\n id: string;\n label: string;\n shortcut?: string;\n danger?: boolean;\n disabled?(context: LocalEditorHarnessHierarchyContextActionContext<TDocument>): boolean | string;\n payload?(context: LocalEditorHarnessHierarchyContextActionContext<TDocument>): Record<string, unknown> | undefined;\n}\n\nexport interface LocalEditorHarnessPatchResult<TPatch> {\n patch: TPatch;\n label?: string;\n changedId?: string;\n createdId?: string | null;\n changedIds?: string[];\n reprojectIds?: string[];\n projectionImpact?: EditorProjectionImpact;\n}\n\nexport interface LocalEditorHarnessSceneGraphRenamePatch<TPatch> {\n patch: TPatch;\n label?: string;\n changedId?: string;\n projectionImpact?: EditorProjectionImpact;\n}\n\nexport interface LocalEditorHarnessSceneGraphCreateGroupPatch<TPatch> {\n patch: TPatch;\n label?: string;\n createdId: string;\n projectionImpact?: EditorProjectionImpact;\n}\n\nexport interface LocalEditorHarnessSceneGraphCreatePrimitivePatch<TPatch> {\n patch: TPatch;\n label?: string;\n createdId: string;\n changedIds?: string[];\n reprojectIds?: string[];\n projectionImpact?: EditorProjectionImpact;\n}\n\nexport interface LocalEditorHarnessSceneGraphDeletePatch<TPatch> {\n patch: TPatch;\n label?: string;\n deletedIds?: string[];\n fallbackSelectionId?: string | null;\n projectionImpact?: EditorProjectionImpact;\n}\n\nexport interface LocalEditorHarnessSceneGraphDropPatch<TPatch> {\n patch: TPatch;\n label?: string;\n changedIds?: string[];\n projectionImpact?: EditorProjectionImpact;\n}\n\nexport interface LocalEditorHarnessSceneGraphMovePatch<TPatch> {\n patch: TPatch;\n label?: string;\n changedIds?: string[];\n projectionImpact?: EditorProjectionImpact;\n}\n\nexport interface LocalEditorHarnessSceneGraphGroupSelectionPatch<TPatch> {\n patch: TPatch;\n label?: string;\n createdId: string;\n changedIds?: string[];\n projectionImpact?: EditorProjectionImpact;\n}\n\nexport interface LocalEditorHarnessDuplicateSelectionPatch<TPatch> {\n patch: TPatch;\n label?: string;\n createdIds: string[];\n activeId?: string | null;\n changedIds?: string[];\n reprojectIds?: string[];\n projectionImpact?: EditorProjectionImpact;\n}\n\nexport interface LocalEditorHarnessPlacedAssetPatch<TPatch> {\n patch: TPatch;\n label?: string;\n createdId?: string | null;\n changedIds?: string[];\n reprojectIds?: string[];\n projectionImpact?: EditorProjectionImpact;\n}\n\nexport interface LocalEditorHarnessAssetPatchInput<TDocument, TAsset = LocalEditorHarnessAssetItem> {\n document: TDocument;\n asset: TAsset;\n assetId: string;\n name?: string;\n placement?: EditorTransformSnapshot;\n}\n\nexport interface LocalEditorHarnessAssetReloadResult {\n ok: boolean;\n assetCount: number;\n status: string;\n error?: string;\n}\n\nexport interface LocalEditorHarnessUpdatedAssetWarning {\n code: string;\n gameObjectId?: string;\n slotId?: string;\n materialAssetId?: string;\n candidateSlotIds?: string[];\n}\n\nexport interface LocalEditorHarnessUpdatedAssetReconcileResult<TDocument> {\n document: TDocument;\n reconciledBindingCount?: number;\n warnings?: LocalEditorHarnessUpdatedAssetWarning[];\n}\n\nexport interface LocalEditorHarnessUpdatedAssetSnapshot {\n assetId: string;\n contentHash?: string;\n}\n\nexport interface LocalEditorHarnessUpdatedAssetRefreshResult extends LocalEditorHarnessAssetReloadResult {\n assetId: string;\n reconciledBindingCount: number;\n warnings: LocalEditorHarnessUpdatedAssetWarning[];\n}\n\nexport interface LocalEditorHarnessUpdatedAssetApplyResult<TDocument> {\n changed: boolean;\n workingDocument: TDocument;\n selection: EditorSelectionState;\n reconciledBindingCount: number;\n warnings: LocalEditorHarnessUpdatedAssetWarning[];\n}\n\nexport interface LocalEditorHarnessUpdatedAssetProjectionState {\n pending: boolean;\n}\n\nexport function assertLocalEditorUpdatedAssetSnapshotFreshness(\n snapshot: LocalEditorHarnessUpdatedAssetSnapshot | null,\n input: { assetId: string; expectedContentHash: string },\n): void {\n if (snapshot?.assetId === input.assetId && snapshot.contentHash === input.expectedContentHash) return;\n const error = new Error('asset_update_snapshot_stale');\n Object.assign(error, {\n code: 'asset_update_snapshot_stale',\n details: {\n assetId: input.assetId,\n expectedContentHash: input.expectedContentHash,\n actualAssetId: snapshot?.assetId ?? null,\n actualContentHash: snapshot?.contentHash ?? null,\n },\n });\n throw error;\n}\n\nexport function syncLocalEditorUpdatedAssetProjection(\n state: LocalEditorHarnessUpdatedAssetProjectionState,\n documentChanged: boolean,\n rebuild: () => void,\n): boolean {\n if (!documentChanged && !state.pending) return false;\n state.pending = true;\n rebuild();\n state.pending = false;\n return true;\n}\n\nexport function applyLocalEditorUpdatedAssetRefresh<TDocument, TPatch, TAsset>(\n session: EditorSession<TDocument, TPatch>,\n input: {\n assetId: string;\n assets: TAsset[];\n hydrateDocumentAssets(document: TDocument, assets: TAsset[]): TDocument;\n reconcileUpdatedAsset?(\n document: TDocument,\n input: { assetId: string },\n ): LocalEditorHarnessUpdatedAssetReconcileResult<TDocument>;\n compareDocuments?(left: TDocument, right: TDocument): boolean;\n },\n): LocalEditorHarnessUpdatedAssetApplyResult<TDocument> {\n const sessionState = session.getState();\n const callbackState = session.getState();\n const persistedDocument = input.hydrateDocumentAssets(callbackState.persistedDocument, input.assets);\n const workingDocument = input.hydrateDocumentAssets(callbackState.workingDocument, input.assets);\n const compareDocuments = input.compareDocuments\n ?? ((left: TDocument, right: TDocument) => JSON.stringify(left) === JSON.stringify(right));\n const projectionChanged = !compareDocuments(sessionState.persistedDocument, persistedDocument)\n || !compareDocuments(sessionState.workingDocument, workingDocument);\n // Re-run diagnostics even for a document no-op so retries preserve unresolved\n // binding warnings. The callback only receives cloned snapshots; its document\n // output is ignored unless the asset projection itself changed.\n const reconciliation = input.reconcileUpdatedAsset?.(\n workingDocument,\n { assetId: input.assetId },\n ) ?? { document: workingDocument };\n if (!projectionChanged) {\n return {\n changed: false,\n workingDocument: sessionState.workingDocument,\n selection: sessionState.selection,\n reconciledBindingCount: 0,\n warnings: reconciliation.warnings ?? [],\n };\n }\n\n // Finish all fallible project-owned calculation before mutating the session.\n session.rebaseExternalDocuments({ persistedDocument, workingDocument });\n const result = session.dispatch({\n type: 'document.replace',\n label: 'Reconcile updated asset',\n document: reconciliation.document,\n projectionImpact: {\n type: 'rebuild',\n reason: 'asset-update',\n },\n });\n return {\n changed: true,\n workingDocument: result.workingDocument,\n selection: result.selection,\n reconciledBindingCount: reconciliation.reconciledBindingCount ?? 0,\n warnings: reconciliation.warnings ?? [],\n };\n}\n\nexport interface LocalEditorHarnessAssetCreationResult {\n ok: boolean;\n assetId: string;\n changed: boolean;\n status: string;\n createdId?: string | null;\n error?: string;\n}\n\nexport interface LocalEditorHarnessAssetCreationOptions {\n name?: string;\n placement?: EditorTransformSnapshot;\n select?: boolean;\n}\n\nexport type LocalEditorHarnessOperationOrigin = 'user' | 'agent' | 'system';\nexport type LocalEditorHarnessProjectionWaitPolicy = 'none' | 'settled';\nexport type LocalEditorHarnessHistoryOperation = 'undo' | 'redo';\nexport type LocalEditorHarnessProjectionImpact = EditorProjectionImpact;\n\nexport interface LocalEditorHarnessHistoryOperationOptions {\n origin?: LocalEditorHarnessOperationOrigin;\n waitForProjection?: LocalEditorHarnessProjectionWaitPolicy;\n}\n\nexport interface LocalEditorHarnessHistoryProjectionResult {\n waitPolicy: LocalEditorHarnessProjectionWaitPolicy;\n idle: boolean;\n activeBatchIds: number[];\n lastBatch: BabylonEditorProjectionBatchStatus | null;\n}\n\nexport interface LocalEditorHarnessHistoryStateResult {\n canUndo: boolean;\n canRedo: boolean;\n}\n\nexport interface LocalEditorHarnessHistoryOperationResult<TDocument = unknown> {\n ok: boolean;\n operation: LocalEditorHarnessHistoryOperation;\n origin: LocalEditorHarnessOperationOrigin;\n waitForProjection: LocalEditorHarnessProjectionWaitPolicy;\n documentChanged: boolean;\n transactionLabel: string | null;\n workingDocument: TDocument | null;\n dirty: boolean;\n history: LocalEditorHarnessHistoryStateResult;\n status: string;\n projection: LocalEditorHarnessHistoryProjectionResult;\n}\n\nexport interface LocalEditorHarnessAssetActionPatchInput<TDocument, TAsset = LocalEditorHarnessAssetItem> extends LocalEditorBrowserAssetActionInput {\n document: TDocument;\n asset: TAsset | null;\n activeId: string | null;\n selectedIds: string[];\n}\n\nexport interface LocalEditorHarnessPrefabStageInput<TAsset = LocalEditorHarnessAssetItem> {\n assetId: string;\n browserAssetId?: string;\n asset: TAsset | null;\n}\n\nexport interface LocalEditorHarnessPrefabStageDescriptor<TDocument = unknown> {\n assetId: string;\n browserAssetId?: string;\n label: string;\n sourceAssetId?: string;\n sourceAssetGuid?: string;\n readonly?: boolean;\n previewNodeId?: string;\n document?: TDocument;\n data?: unknown;\n}\n\nexport interface LocalEditorHarnessPrefabStageContext {\n previewNodeId?: string;\n importStructureReady: boolean;\n importStructure: BabylonEditorProjectionImportStructureSnapshot | null;\n}\n\nexport interface LocalEditorHarnessPreviewTarget {\n scopeId: string;\n scopeKind: 'scene' | 'prefab-stage';\n projectionNodeId: string;\n targetId: string;\n itemId?: string;\n label?: string;\n kind?: string;\n selectable: boolean;\n transformable: boolean;\n readonly?: boolean;\n disabledReason?: string;\n}\n\nexport type LocalEditorHarnessPrefabStageStructureItemKind =\n | 'root'\n | 'source'\n | 'group'\n | 'mesh'\n | 'material'\n | 'texture'\n | 'animation'\n | 'info';\n\nexport interface LocalEditorHarnessPrefabStageStructureItem {\n id: string;\n label: string;\n kind: LocalEditorHarnessPrefabStageStructureItemKind;\n icon?: string;\n meta?: string;\n readonly?: boolean;\n itemType?: string;\n nodeId?: string;\n sourceAssetId?: string;\n sourceNodePath?: string;\n childPrefabId?: string;\n slotId?: string;\n ownerNodePath?: string;\n meshIndex?: number;\n primitiveIndex?: number;\n sourceMaterialIndex?: number;\n sourceMaterialIndices?: number[];\n sourceMaterialName?: string;\n sourceMaterialNames?: string[];\n children?: LocalEditorHarnessPrefabStageStructureItem[];\n}\n\ninterface LocalEditorHarnessPrefabStageRuntimeState<TDocument, TAsset> {\n descriptor: LocalEditorHarnessPrefabStageDescriptor<TDocument>;\n asset: TAsset | null;\n documentScopeId: string | null;\n previewScopeId: string | null;\n selectedItemId: string | null;\n restoreGridVisible: boolean;\n restoreSceneCameraPreviewEnabled: boolean;\n}\n\nexport interface LocalEditorHarnessRenderingPanelStateContext {\n scene: RuntimeScene | null;\n projection: BabylonEditorProjection | null;\n renderingAction?: LocalEditorHarnessRenderingActionProgress | null;\n}\n\nexport type LocalEditorMarkerGraphCommand =\n | {\n type: 'marker.create-box';\n marker: SpatialMarkerNode;\n parentId?: string | null;\n }\n | {\n type: 'marker.update';\n markerId: string;\n patch: Partial<Omit<SpatialMarkerNode, 'id'>>;\n }\n | {\n type: 'marker.delete';\n markerId: string;\n }\n | {\n type: 'relation.create';\n relation: SpatialRelation;\n }\n | {\n type: 'relation.create-many';\n relations: SpatialRelation[];\n }\n | {\n type: 'relation.delete';\n relationId: string;\n }\n | {\n type: 'relation.delete-many';\n relationIds: string[];\n }\n | {\n type: 'relation.reverse';\n relationId: string;\n }\n | {\n type: 'marker.sync-from-scene';\n reason?: string;\n }\n | {\n type: 'marker-type.create';\n definition: SpatialMarkerTypeDefinition;\n }\n | {\n type: 'marker-type.update';\n typeId: string;\n patch: Partial<Omit<SpatialMarkerTypeDefinition, 'type'>>;\n }\n | {\n type: 'marker-type.delete';\n typeId: string;\n };\n\nexport interface LocalEditorHarnessDocumentAdapter<TDocument, TPatch, TAsset = LocalEditorHarnessAssetItem> {\n cloneDocument?(document: TDocument): TDocument;\n compareDocuments?(left: TDocument, right: TDocument): boolean;\n prepareDocument?(document: TDocument, assets: TAsset[]): TDocument;\n hydrateDocumentAssets?(document: TDocument, assets: TAsset[]): TDocument;\n resolveUpdatedAssetSnapshot?(\n assets: TAsset[],\n input: { assetId: string },\n ): LocalEditorHarnessUpdatedAssetSnapshot | null;\n reconcileUpdatedAsset?(\n document: TDocument,\n input: { assetId: string },\n ): LocalEditorHarnessUpdatedAssetReconcileResult<TDocument>;\n reduceDocument(document: TDocument, command: DocumentCommand<TDocument, TPatch>): TDocument;\n getInspectorObject?(document: TDocument, activeId: string): InspectorObject<TDocument> | null;\n getInspectorMultiObject?(document: TDocument, selectedIds: string[], activeId: string | null): InspectorObject<TDocument> | null;\n getRuntimeInspectorSections?(context: LocalEditorHarnessRuntimeInspectorContext<TDocument>): InspectorSection<TDocument>[];\n getHierarchyItems(document: TDocument): LocalEditorBrowserUiHierarchyItem[];\n getMarkerGraph?(document: TDocument): SpatialMarkerGraph | null;\n getMarkerTypeCatalog?(document: TDocument): SpatialMarkerTypeDefinition[];\n getRelationTypeCatalog?(document: TDocument): SpatialRelationTypeDefinition[];\n getBrowserAssetItems?(document: TDocument): LocalEditorBrowserUiAssetItem[];\n getProjectionNodes(document: TDocument): BabylonEditorProjectionNode[];\n getProjectionNode(document: TDocument, id: string): BabylonEditorProjectionNode | null;\n getSceneCameraPreviewRig?(document: TDocument): BabylonSceneCameraPreviewRig | null;\n getWorldAppearance?(document: TDocument): LocalEditorHarnessWorldAppearance | null;\n getWorldRendering?(document: TDocument): LocalEditorHarnessWorldRendering | null;\n getPrefabStageDescriptor?(\n document: TDocument,\n input: LocalEditorHarnessPrefabStageInput<TAsset>,\n ): LocalEditorHarnessPrefabStageDescriptor<TDocument> | null;\n getPrefabStageProjectionNodes?(\n document: TDocument,\n descriptor: LocalEditorHarnessPrefabStageDescriptor<TDocument>,\n ): BabylonEditorProjectionNode[];\n getPrefabStageStructure?(\n document: TDocument,\n descriptor: LocalEditorHarnessPrefabStageDescriptor<TDocument>,\n context: LocalEditorHarnessPrefabStageContext,\n ): LocalEditorHarnessPrefabStageStructureItem[];\n getPrefabStageInspectorObject?(\n document: TDocument,\n descriptor: LocalEditorHarnessPrefabStageDescriptor<TDocument>,\n selectedItemId: string | null,\n context: LocalEditorHarnessPrefabStageContext,\n ): InspectorObject<TDocument> | null;\n resolvePrefabStagePreviewTarget?(\n document: TDocument,\n descriptor: LocalEditorHarnessPrefabStageDescriptor<TDocument>,\n projectionNodeId: string,\n context: LocalEditorHarnessPrefabStageContext,\n ): LocalEditorHarnessPreviewTarget | null;\n getPrefabStageProjectionNodeId?(\n document: TDocument,\n descriptor: LocalEditorHarnessPrefabStageDescriptor<TDocument>,\n nodeId: string,\n context: LocalEditorHarnessPrefabStageContext,\n ): string | null;\n getRenderingPanelState?(\n document: TDocument,\n context?: LocalEditorHarnessRenderingPanelStateContext,\n ): LocalEditorBrowserRenderingPanelState | null;\n onRenderingAction?(input: LocalEditorHarnessRenderingActionInput<TDocument>): LocalEditorMaybePromise<\n boolean | void | LocalEditorHarnessRenderingPropertyChangeResult<TPatch>\n >;\n onRenderingPropertyChange?(input: LocalEditorHarnessRenderingPropertyInput<TDocument>): LocalEditorMaybePromise<\n boolean | void | LocalEditorHarnessRenderingPropertyChangeResult<TPatch>\n >;\n isSelectable?(document: TDocument, id: string): boolean;\n isLocked?(document: TDocument, id: string): boolean;\n createPatchFromAsset(asset: TAsset, input?: LocalEditorHarnessAssetPatchInput<TDocument, TAsset>): LocalEditorHarnessPatchResult<TPatch>;\n createAssetActionPatch?(input: LocalEditorHarnessAssetActionPatchInput<TDocument, TAsset>): LocalEditorHarnessPatchResult<TPatch> | null;\n createPlacedAssetPatch?(input: LocalEditorHarnessPlacedAssetInput<TDocument, TAsset>): LocalEditorHarnessPlacedAssetPatch<TPatch> | null;\n findCreatedId?(beforeDocument: TDocument, afterDocument: TDocument): string | null;\n createSerializedPropertyPatch(input: LocalEditorHarnessPropertyInput<TDocument>): LocalEditorHarnessPatchResult<TPatch> | null;\n canCreateSerializedMultiPropertyPatch?(input: LocalEditorHarnessMultiPropertyCapabilityInput<TDocument>): boolean;\n createSerializedMultiPropertyPatch?(input: LocalEditorHarnessMultiPropertyInput<TDocument>): LocalEditorHarnessPatchResult<TPatch> | null;\n createMarkerGraphPatch?(document: TDocument, command: LocalEditorMarkerGraphCommand): LocalEditorHarnessPatchResult<TPatch> | null;\n createTransformInspectorPreview?(input: LocalEditorHarnessTransformInspectorPreviewInput<TDocument>): EditorTransformSnapshot | null;\n createTransformPatch?(input: LocalEditorHarnessTransformInput<TDocument>): LocalEditorHarnessPatchResult<TPatch> | null;\n createTransformBatchPatch?(input: LocalEditorHarnessTransformBatchInput<TDocument>): LocalEditorHarnessPatchResult<TPatch> | null;\n createDuplicateSelectionPatch?(input: LocalEditorHarnessDuplicateSelectionInput<TDocument>): LocalEditorHarnessDuplicateSelectionPatch<TPatch> | null;\n validateSceneGraphDrop?(document: TDocument, intent: SceneGraphDropIntent): SceneGraphValidationResult;\n createSceneGraphRenamePatch?(document: TDocument, intent: SceneGraphRenameIntent): LocalEditorHarnessSceneGraphRenamePatch<TPatch> | null;\n createSceneGraphCreateGroupPatch?(document: TDocument, intent: SceneGraphCreateGroupIntent): LocalEditorHarnessSceneGraphCreateGroupPatch<TPatch> | null;\n createSceneGraphCreatePrimitivePatch?(document: TDocument, intent: SceneGraphCreatePrimitiveIntent): LocalEditorHarnessSceneGraphCreatePrimitivePatch<TPatch> | null;\n createSceneGraphDeletePatch?(document: TDocument, intent: SceneGraphDeleteIntent): LocalEditorHarnessSceneGraphDeletePatch<TPatch> | null;\n createSceneGraphDropPatch?(document: TDocument, intent: SceneGraphDropIntent): LocalEditorHarnessSceneGraphDropPatch<TPatch> | null;\n validateSceneGraphMove?(document: TDocument, intent: SceneGraphMoveIntent): SceneGraphValidationResult;\n createSceneGraphMovePatch?(document: TDocument, intent: SceneGraphMoveIntent): LocalEditorHarnessSceneGraphMovePatch<TPatch> | null;\n validateSceneGraphGroupSelection?(document: TDocument, intent: SceneGraphGroupSelectionIntent): SceneGraphValidationResult;\n createSceneGraphGroupSelectionPatch?(document: TDocument, intent: SceneGraphGroupSelectionIntent): LocalEditorHarnessSceneGraphGroupSelectionPatch<TPatch> | null;\n summarize?(document: TDocument): string;\n}\n\nexport interface LocalEditorHarnessPersistenceAdapter<TDocument, TAsset = LocalEditorHarnessAssetItem> {\n loadAuthoringSource?(): LocalEditorMaybePromise<{\n source: AuthoringSourceDescriptor;\n document: TDocument;\n assets?: TAsset[];\n summary?: string;\n }>;\n loadDocument?(): LocalEditorMaybePromise<TDocument>;\n loadAssets(): LocalEditorMaybePromise<TAsset[]>;\n saveAuthoringSource?(input: {\n source: AuthoringSourceDescriptor;\n document: TDocument;\n }): LocalEditorMaybePromise<{\n source: AuthoringSourceDescriptor;\n document: TDocument;\n summary?: string;\n }>;\n saveDocument?(document: TDocument): LocalEditorMaybePromise<{ document: TDocument; summary?: string }>;\n runGame(context?: LocalEditorHarnessRunGameContext): LocalEditorMaybePromise<void>;\n}\n\nexport interface LocalEditorHarnessRunGameContext {\n reason: 'save' | 'discard';\n}\n\nexport interface LocalEditorHarnessWorldAdapter<TAsset = LocalEditorHarnessAssetItem> {\n disposeGameWorld(): LocalEditorMaybePromise<void>;\n getCanvas(): HTMLCanvasElement | null;\n loadBabylon(): LocalEditorMaybePromise<BabylonRuntimeGlobal & Record<string, any>>;\n createEngine(babylon: BabylonRuntimeGlobal & Record<string, any>, canvas: HTMLCanvasElement): any;\n importProjectionModel(context: BabylonEditorProjectionImportContext): Promise<BabylonEditorProjectionImportResult | null>;\n resolveMaterialTextureUrl?(texture: ArtistMaterialTextureRef): string | null | undefined;\n toBrowserAssetItem?(asset: TAsset): LocalEditorBrowserUiAssetItem;\n resolveAssetId?(asset: TAsset): string;\n}\n\nexport interface LocalEditorHarnessWorldAppearance {\n clearColor?: BabylonEditorWorldAppearanceOptions['clearColor'];\n sky?: BabylonEditorSkyOptions | false;\n grid?: BabylonEditorGridColorOptions;\n}\n\nconst PREFAB_STAGE_STUDIO_WORLD_APPEARANCE: LocalEditorHarnessWorldAppearance = {\n sky: {\n preset: 'atmospheric',\n topColor: { r: 0.68, g: 0.82, b: 0.9 },\n horizonColor: { r: 0.98, g: 0.98, b: 0.93 },\n bottomColor: { r: 0.44, g: 0.54, b: 0.53 },\n cloudColor: { r: 1, g: 0.97, b: 0.86 },\n cloudStrength: 0.1,\n sunColor: { r: 1, g: 0.93, b: 0.72 },\n sunDirection: { x: -0.24, y: 0.28, z: -0.93 },\n },\n};\nconst PREFAB_STAGE_STUDIO_ENVIRONMENT: BabylonEnvironmentTextureProfile = {\n textureUrl: 'https://assets.babylonjs.com/environments/studio.env',\n intensity: 1,\n rotationY: 0,\n};\n\nconst PREFAB_STAGE_COMPARISON_PREVIEW_DEFINITIONS = [{\n id: 'mesh-clone',\n label: 'Mesh Clone',\n mode: 'meshClone',\n nodeIdSuffix: 'compare-clone',\n}, {\n id: 'instanced-mesh',\n label: 'InstanceMesh',\n mode: 'instancedMesh',\n nodeIdSuffix: 'compare-instance',\n}] as const;\n\nexport interface LocalEditorHarnessWorldRendering {\n environment?: BabylonEnvironmentTextureProfile | null;\n shadowPreview?: BabylonEditorShadowPreviewOptions | null;\n postProcess?: BabylonDefaultPostProcessProfile | null;\n}\n\nexport type LocalEditorHarnessGridController = BabylonEditorGridController;\n\nexport interface LocalEditorHarnessGridContext {\n getCamera(): unknown | null;\n getEditorCamera(): unknown | null;\n}\n\nexport interface LocalEditorHarnessOptions<TDocument, TPatch, TAsset = LocalEditorHarnessAssetItem> {\n root?: HTMLElement;\n theme?: LocalEditorThemeName;\n localTestActions?: boolean;\n pluginHost?: FpsEditorPluginHost;\n authoringHost?: ProjectAuthoringHost;\n hostServices?: EditorHostServices;\n transformDocumentCapabilities?: Partial<EditorTransformDocumentCapabilities>;\n documentAdapter: LocalEditorHarnessDocumentAdapter<TDocument, TPatch, TAsset>;\n persistenceAdapter: LocalEditorHarnessPersistenceAdapter<TDocument, TAsset>;\n worldAdapter: LocalEditorHarnessWorldAdapter<TAsset>;\n world?: {\n cameraTarget?: { x: number; y: number; z: number };\n cameraRadius?: number;\n clearColor?: { r: number; g: number; b: number; a: number };\n sky?: BabylonEditorSkyOptions | false;\n grid?: BabylonEditorGridColorOptions;\n useRightHandedSystem?: boolean;\n coordinateAxes?: boolean;\n selectionEdgesPrewarm?: BabylonEditorProjectionSelectionEdgesPrewarm;\n };\n inspector?: LocalEditorHarnessInspectorOptions<TDocument>;\n hierarchy?: {\n contextActions?: readonly LocalEditorHarnessHierarchyContextActionRegistration<TDocument, TPatch>[];\n };\n agentBridge?: {\n sessionMetadata?: LocalEditorAgentBridgeSessionMetadata;\n };\n createGrid?: (\n babylon: BabylonRuntimeGlobal & Record<string, any>,\n scene: unknown,\n camera?: unknown,\n context?: LocalEditorHarnessGridContext,\n ) => LocalEditorHarnessGridController | void;\n}\n\nexport interface LocalEditorHarness<TDocument = unknown> {\n render(): void;\n notifyViewportRevealed(reason?: string): void;\n setTheme?(theme: LocalEditorThemeName): void;\n getTheme?(): LocalEditorThemeName;\n getHostServices(): EditorHostServices | null;\n getAgentBridge(): EditorAgentBridge | null;\n getWorkingDocument(): TDocument | null;\n getUnsavedChangesState(): PlayableLocalEditorUnsavedChangesState;\n getSaveFailureState(): PlayableLocalEditorSaveFailureState | null;\n getDefaultInteractionPolicy?(): PlayableLocalEditorInteractionPolicy | undefined;\n getLifecycleService(): FpsEditorLifecycleService | null;\n reloadAssets(): Promise<LocalEditorHarnessAssetReloadResult>;\n refreshUpdatedAsset(input: {\n assetId: string;\n expectedContentHash: string;\n }): Promise<LocalEditorHarnessUpdatedAssetRefreshResult>;\n createAssetFromAssetId(assetId: string, options?: LocalEditorHarnessAssetCreationOptions): LocalEditorHarnessAssetCreationResult;\n undo(options?: LocalEditorHarnessHistoryOperationOptions): Promise<LocalEditorHarnessHistoryOperationResult<TDocument>>;\n redo(options?: LocalEditorHarnessHistoryOperationOptions): Promise<LocalEditorHarnessHistoryOperationResult<TDocument>>;\n enterEditor(): Promise<void>;\n saveScene(): Promise<boolean>;\n saveAndRunGame(): Promise<boolean>;\n discardAndRunGame(): Promise<void>;\n dispose(): void;\n}\n\ninterface LocalEditorHarnessState<TDocument, TPatch, TAsset> {\n editorStateRevision: number;\n sceneArtifactRevision: number;\n readonly mode: LocalEditorHarnessMode;\n readonly lifecycle: FpsEditorLifecycleService | null;\n scopeOperations: Pick<\n PlayableLocalEditorLifecycleController,\n 'openScope' | 'addScopeResource' | 'closeScope'\n > | null;\n nextPrefabScopeRevision: number;\n busy: boolean;\n session: EditorSession<TDocument, TPatch> | null;\n source: AuthoringSourceDescriptor | null;\n assets: TAsset[];\n assetFilter: string;\n updatedAssetProjection: LocalEditorHarnessUpdatedAssetProjectionState;\n selectedAssetId: string | null;\n babylon: (BabylonRuntimeGlobal & Record<string, any>) | null;\n engine: any | null;\n world: BabylonEditorWorld | null;\n grid: LocalEditorHarnessGridController | null;\n gridVisible: boolean;\n projection: BabylonEditorProjection | null;\n materialProfileDiagnostics: BabylonEditorProjectionMaterialProfileDiagnostic[];\n previewVisibility: {\n overrides: Record<string, boolean>;\n isolatedObjectIds: string[];\n reason?: string;\n };\n markerOverlay: BabylonEditorMarkerOverlayController | null;\n markerGraphVisibility: LocalEditorMarkerGraphVisibilityState;\n activeMarkerRelationId: string | null;\n markerRelationPick: LocalEditorMarkerRelationPickState | null;\n markerRelationHighlightContinuous: boolean;\n markerCreateReservations: LocalEditorMarkerCreateReservations;\n shadowPreview: BabylonEditorShadowPreviewController | null;\n environmentTexture: BabylonEnvironmentTextureController | null;\n postProcess: BabylonDefaultPostProcessPipelineController | null;\n projectionShadowPreviewRebuildFrame: number | null;\n projectionShadowPreviewRefreshFrame: number | null;\n gizmo: BabylonTransformGizmoController | null;\n sceneCameraPreview: BabylonSceneCameraPreviewController | null;\n sceneCameraPreviewEnabled: boolean;\n sceneViewInput: BabylonSceneViewInputController | null;\n sceneViewCamera: BabylonSceneViewCameraController | null;\n sceneViewInteraction: LocalEditorSceneViewInteractionRuntime | null;\n sceneViewMeasurement: BabylonSceneViewMeasurementController | null;\n sceneViewSpatialOverlay: BabylonSceneViewSpatialOverlayController | null;\n selectionController: BabylonProjectionSelectionController | null;\n prefabComparisonPreview: BabylonPrefabComparisonPreviewController | null;\n sceneRenderScheduler: LocalEditorSceneRenderScheduler | null;\n viewportRenderCoordinator: LocalEditorViewportRenderCoordinator | null;\n sceneFrameStats: LocalEditorSceneRenderStats | null;\n performanceMonitor: BabylonEditorPerformanceMonitor | null;\n performanceMonitorOpen: boolean;\n performanceObjectCount: number | null;\n performanceStats: LocalEditorBrowserPerformanceStats | null;\n worldAppearanceKey: string;\n worldRenderingKey: string;\n boxSelection: BabylonProjectionSelectionBox | null;\n transformTool: EditorTransformTool;\n transformSpace: EditorTransformSpace;\n transformConstraint: EditorTransformCanonicalConstraint;\n transformOperationSettings: EditorTransformOperationSettings;\n viewportTools: EditorViewportToolState;\n viewportMeasurement: EditorViewportGroundMeasurement;\n viewportSpatialOverlay: EditorViewportSpatialOverlayState;\n prefabStage: LocalEditorHarnessPrefabStageRuntimeState<TDocument, TAsset> | null;\n duplicateDrag: {\n originalSelection: EditorSelectionState;\n createdIds: string[];\n activeId: string | null;\n } | null;\n activeTransformPreview: LocalEditorHarnessTransformPreview | null;\n armedPlacement: {\n assetId: string;\n asset: TAsset;\n } | null;\n resizeHandler: (() => void) | null;\n status: string;\n statusTone: LocalEditorBrowserUiState<TDocument>['statusTone'];\n statusToneStatus: string;\n statusDetails: string;\n renderingAction: LocalEditorHarnessRenderingActionProgress | null;\n summary: string;\n agentBridge: EditorAgentBridge;\n unregisterAgentBridgeCapabilities: (() => void) | null;\n agentBridgeTransport: LocalEditorAgentBridgeTransportController | null;\n agentBridgeStatus: LocalEditorAgentBridgeTransportStatus;\n}\n\ninterface LocalEditorMarkerGraphVisibilityState {\n rootVisible: boolean;\n hiddenMarkerIds: Set<string>;\n}\n\nfunction createDefaultMarkerGraphVisibilityState(): LocalEditorMarkerGraphVisibilityState {\n return {\n rootVisible: true,\n hiddenMarkerIds: new Set<string>(),\n };\n}\n\nfunction createEmptyMarkerCreateReservations(): LocalEditorMarkerCreateReservations {\n return {\n ids: new Set<string>(),\n labels: new Set<string>(),\n };\n}\n\ntype LocalEditorHarnessUiPreviewState<TDocument = unknown> = Partial<Pick<\n LocalEditorBrowserUiState<TDocument>,\n | 'status'\n | 'statusTone'\n | 'statusDetails'\n | 'inspectorObject'\n | 'inspectorMultiObject'\n | 'boxSelection'\n | 'coordinateAxes'\n | 'transformTool'\n | 'transformOperations'\n | 'viewportTools'\n | 'viewportMeasurement'\n | 'viewportSpatialOverlay'\n | 'sceneFrameStats'\n | 'performanceStats'\n>>;\n\ninterface LocalEditorHarnessTransformPreview {\n targetIds: string[];\n activeId: string | null;\n transforms: Record<string, EditorTransformSnapshot>;\n}\n\ninterface LocalEditorHarnessPrefabComparisonPreviewSurface {\n previewId: string;\n projectionNodeId: string;\n rect: Pick<DOMRect, 'left' | 'top' | 'right' | 'bottom' | 'width' | 'height'>;\n}\n\ntype LocalEditorHarnessPrefabComparisonPreviewInteraction =\n | {\n kind: 'orbit';\n previewId: string;\n deltaX: number;\n deltaY: number;\n }\n | {\n kind: 'zoom';\n previewId: string;\n deltaY: number;\n };\n\ntype LocalEditorHarnessBrowserUi<TDocument = unknown> =\n LocalEditorBrowserUi<TDocument>\n & LocalEditorThemeController\n & {\n updatePreview?: (state: LocalEditorHarnessUiPreviewState<TDocument>) => void;\n getPrefabComparisonPreviewSurfaces?: () => LocalEditorHarnessPrefabComparisonPreviewSurface[];\n };\n\nconst LOCAL_EDITOR_MATERIAL_PROFILE_DIAGNOSTIC_LIMIT = 100;\nconst LOCAL_EDITOR_PROJECTION_MATERIAL_PROFILE_WARNING = '[BabylonEditorProjection] Material profile diagnostic warning';\n\nfunction createLocalEditorProjectionLogger(): Pick<Console, 'warn'> {\n return {\n warn(...args: unknown[]) {\n if (args[0] === LOCAL_EDITOR_PROJECTION_MATERIAL_PROFILE_WARNING) return;\n console.warn(...args);\n },\n };\n}\n\nfunction recordLocalEditorMaterialProfileDiagnostic<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n diagnostic: BabylonEditorProjectionMaterialProfileDiagnostic,\n): void {\n state.materialProfileDiagnostics.push(diagnostic);\n if (state.materialProfileDiagnostics.length > LOCAL_EDITOR_MATERIAL_PROFILE_DIAGNOSTIC_LIMIT) {\n state.materialProfileDiagnostics.splice(\n 0,\n state.materialProfileDiagnostics.length - LOCAL_EDITOR_MATERIAL_PROFILE_DIAGNOSTIC_LIMIT,\n );\n }\n if (!diagnostic.warningMessage || !isLocalEditorMaterialProfileDiagnosticConsoleEnabled()) return;\n console.warn(LOCAL_EDITOR_PROJECTION_MATERIAL_PROFILE_WARNING, {\n projectionNodeId: diagnostic.projectionNodeId,\n source: diagnostic.source,\n slotId: diagnostic.slotId,\n ownerNodePath: diagnostic.ownerNodePath,\n meshOwnerNodePath: diagnostic.meshOwnerNodePath,\n matchKind: diagnostic.matchKind,\n targetMaterialStatus: diagnostic.targetMaterialStatus,\n warningMessage: diagnostic.warningMessage,\n });\n}\n\nfunction isLocalEditorMaterialProfileDiagnosticConsoleEnabled(): boolean {\n return (globalThis as { __FPS_EDITOR_DEBUG_MATERIAL_PROFILE_DIAGNOSTICS?: unknown })\n .__FPS_EDITOR_DEBUG_MATERIAL_PROFILE_DIAGNOSTICS === true;\n}\n\nfunction createLocalEditorDataSafetyInteractionPolicy<TDocument>(\n ui: LocalEditorHarnessBrowserUi<TDocument>,\n): PlayableLocalEditorInteractionPolicy {\n return {\n confirmDiscardUnsavedChanges() {\n return ui.confirm({\n title: '放弃未保存更改?',\n message: '当前编辑内容尚未保存。继续会丢弃这些更改并运行游戏。',\n tone: 'warning',\n confirmLabel: '放弃并运行',\n cancelLabel: '继续编辑',\n });\n },\n notifySaveFailed(input: PlayableLocalEditorSaveFailureInput) {\n return ui.alert({\n title: '保存失败',\n message: input.status?.trim() || '保存没有成功,当前编辑内容仍保留在编辑器中。',\n details: formatLocalEditorSaveFailureDetails(input),\n tone: 'error',\n confirmLabel: '知道了',\n });\n },\n };\n}\n\nfunction formatLocalEditorSaveFailureDetails(input: PlayableLocalEditorSaveFailureInput): string | undefined {\n const details = input.details?.trim();\n const error = stringifyLocalEditorError(input.error)?.trim();\n const parts = [details, error]\n .filter((part): part is string => !!part && part !== input.status);\n return parts.length > 0 ? parts.join('\\n\\n') : undefined;\n}\n\nfunction stringifyLocalEditorError(error: unknown): string | undefined {\n if (error == null) return undefined;\n if (error instanceof Error) return error.message;\n return String(error);\n}\n\nexport function createLocalEditorHarness<TDocument, TPatch, TAsset = LocalEditorHarnessAssetItem>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): LocalEditorHarness<TDocument> & LocalEditorThemeController {\n let cleanupResources: (() => void) | null = null;\n let releasePluginHostConsumer = options.pluginHost?.acquireConsumer('local-editor-harness') ?? null;\n const releaseConsumer = (): void => {\n if (!releasePluginHostConsumer) return;\n const release = releasePluginHostConsumer;\n release();\n releasePluginHostConsumer = null;\n };\n const cleanupAndRelease = (): void => {\n cleanupResources?.();\n releaseConsumer();\n };\n const construction: LocalEditorHarnessConstruction = {\n setCleanup(cleanup) {\n cleanupResources = cleanup;\n },\n dispose: cleanupAndRelease,\n };\n\n try {\n return createLocalEditorHarnessImplementation(options, construction);\n } catch (constructionError) {\n const nestedRetryCleanup = readRetryCleanup(constructionError);\n if (!cleanupResources && nestedRetryCleanup) cleanupResources = nestedRetryCleanup;\n try {\n cleanupAndRelease();\n } catch (cleanupError) {\n throw createLocalEditorHarnessConstructionError(\n constructionError,\n cleanupError,\n cleanupAndRelease,\n );\n }\n throw constructionError;\n }\n}\n\ninterface LocalEditorHarnessConstruction {\n setCleanup(cleanup: () => void): void;\n dispose(): void;\n}\n\nfunction createLocalEditorHarnessImplementation<\n TDocument,\n TPatch,\n TAsset = LocalEditorHarnessAssetItem,\n>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n construction: LocalEditorHarnessConstruction,\n): LocalEditorHarness<TDocument> & LocalEditorThemeController {\n const root = options.root ?? document.body;\n let lifecycleController: Pick<\n PlayableLocalEditorLifecycleController,\n | 'lifecycle'\n | 'synchronizeDocumentState'\n | 'registerParticipant'\n | 'openScope'\n | 'addScopeResource'\n | 'closeScope'\n > | null = null;\n let releaseApplicationAuthorityScopeResource: (() => void) | null = null;\n let releaseLifecycleRenderScopeResource: (() => void) | null = null;\n let unsubscribeLifecycleRender: (() => void) | null = null;\n let unregisterAgentBridgeLifecycleParticipant: (() => void) | null = null;\n const agentBridgeLifecycleTransports = new Map<string, LocalEditorAgentBridgeTransportController>();\n let releaseMainSessionScopeResource: (() => void) | null = null;\n let releaseMainPreviewScopeResource: (() => void) | null = null;\n const state: LocalEditorHarnessState<TDocument, TPatch, TAsset> = {\n get mode() {\n const lifecycleMode = lifecycleController?.lifecycle.getSnapshot().mode;\n if (lifecycleMode) return lifecycleMode === 'edit' ? 'editor' : 'game';\n return state.world ? 'editor' : 'game';\n },\n get lifecycle() {\n return lifecycleController?.lifecycle ?? null;\n },\n scopeOperations: null,\n nextPrefabScopeRevision: 0,\n editorStateRevision: 0,\n sceneArtifactRevision: 0,\n busy: false,\n session: null,\n source: null,\n assets: [],\n assetFilter: '',\n updatedAssetProjection: { pending: false },\n selectedAssetId: null,\n babylon: null,\n engine: null,\n world: null,\n grid: null,\n gridVisible: true,\n projection: null,\n materialProfileDiagnostics: [],\n previewVisibility: {\n overrides: {},\n isolatedObjectIds: [],\n },\n markerOverlay: null,\n markerGraphVisibility: createDefaultMarkerGraphVisibilityState(),\n activeMarkerRelationId: null,\n markerRelationPick: null,\n markerRelationHighlightContinuous: false,\n markerCreateReservations: createEmptyMarkerCreateReservations(),\n shadowPreview: null,\n environmentTexture: null,\n postProcess: null,\n projectionShadowPreviewRebuildFrame: null,\n projectionShadowPreviewRefreshFrame: null,\n gizmo: null,\n sceneCameraPreview: null,\n sceneCameraPreviewEnabled: false,\n sceneViewInput: null,\n sceneViewCamera: null,\n sceneViewInteraction: null,\n sceneViewMeasurement: null,\n sceneViewSpatialOverlay: null,\n selectionController: null,\n prefabComparisonPreview: null,\n sceneRenderScheduler: null,\n viewportRenderCoordinator: null,\n sceneFrameStats: null,\n performanceMonitor: null,\n performanceMonitorOpen: false,\n performanceObjectCount: null,\n performanceStats: null,\n worldAppearanceKey: '',\n worldRenderingKey: '',\n boxSelection: null,\n transformTool: 'select',\n transformSpace: 'world',\n transformConstraint: 'axis',\n transformOperationSettings: cloneTransformOperationSettings(DEFAULT_EDITOR_TRANSFORM_OPERATION_SETTINGS),\n viewportTools: cloneEditorViewportToolState(DEFAULT_EDITOR_VIEWPORT_TOOL_STATE),\n viewportMeasurement: createEmptyViewportMeasurement(),\n viewportSpatialOverlay: createEmptyEditorViewportSpatialOverlayState(),\n prefabStage: null,\n duplicateDrag: null,\n activeTransformPreview: null,\n armedPlacement: null,\n resizeHandler: null,\n status: 'Game running',\n statusTone: 'default',\n statusToneStatus: 'Game running',\n statusDetails: '',\n renderingAction: null,\n summary: '',\n agentBridge: createEditorAgentBridge(),\n unregisterAgentBridgeCapabilities: null,\n agentBridgeTransport: null,\n agentBridgeStatus: createDisabledLocalEditorAgentBridgeTransportStatus(),\n };\n\n const handleEditorSessionChange = (change: EditorSessionChange): void => {\n void lifecycleController?.synchronizeDocumentState(change.dirty).catch(error => {\n console.error('[LocalEditorHarness] lifecycle document synchronization failed', error);\n });\n const eventPublisher = options.pluginHost?.eventPublisher;\n const session = state.session;\n if (!eventPublisher || !session) return;\n const sessionState = session.getState({ cloneDocuments: false });\n if (change.documentChanged) {\n void eventPublisher.publish(FPS_EDITOR_DOCUMENT_CHANGED, Object.freeze({\n reason: change.reason,\n dirty: change.dirty,\n documentChanged: true,\n }), {\n scope: 'document',\n scopeId: PLAYABLE_LOCAL_EDITOR_MAIN_DOCUMENT_SCOPE_ID,\n });\n }\n if (change.selectionChanged) {\n void eventPublisher.publish(FPS_EDITOR_SELECTION_CHANGED, Object.freeze({\n selectedIds: Object.freeze([...sessionState.selection.selectedIds]),\n activeId: sessionState.selection.activeId,\n }), {\n scope: 'session',\n scopeId: PLAYABLE_LOCAL_EDITOR_MAIN_SESSION_SCOPE_ID,\n });\n }\n if (change.historyChanged) {\n void eventPublisher.publish(FPS_EDITOR_HISTORY_CHANGED, Object.freeze({\n reason: change.reason === 'reset' ? 'reset' : change.reason === 'history' ? 'history' : 'document',\n canUndo: sessionState.canUndo,\n canRedo: sessionState.canRedo,\n entryCount: sessionState.history.entries.length,\n }), {\n scope: 'session',\n scopeId: PLAYABLE_LOCAL_EDITOR_MAIN_SESSION_SCOPE_ID,\n });\n }\n };\n const handleEditorSessionObserverError = (error: unknown): void => {\n const diagnostic = {\n code: 'editor.session.observerFailed',\n message: error instanceof Error ? error.message : String(error),\n severity: 'error' as const,\n };\n if (options.pluginHost) {\n options.pluginHost.reportDiagnostic(diagnostic, {\n scope: 'session',\n scopeId: PLAYABLE_LOCAL_EDITOR_MAIN_SESSION_SCOPE_ID,\n });\n return;\n }\n console.error('[LocalEditorHarness] session observer failed', error);\n };\n\n let harness: LocalEditorHarness<TDocument> & LocalEditorThemeController;\n let agentLifecycleController: Pick<\n PlayableLocalEditorLifecycleController,\n | 'enterEditor'\n | 'saveScene'\n | 'saveAndRunGame'\n | 'discardAndRunGame'\n | 'prepareSaveAndRunGame'\n | 'prepareDiscardAndRunGame'\n >;\n const pluginInspector = createLocalEditorHarnessPluginInspectorOptions<TDocument>(\n options.pluginHost,\n options.inspector,\n );\n const ui = createLocalEditorBrowserUi<TDocument>({\n root,\n theme: options.theme,\n localTestActions: options.localTestActions,\n input: {\n isShortcutReserved: (event) => state.sceneViewInput?.ownsKeyboardEvent(event) ?? false,\n },\n inspector: pluginInspector,\n hierarchy: {\n contextActions: createBrowserHierarchyContextActions(state, options),\n },\n callbacks: ({\n onEnterEditor: () => {\n void runExclusive(state, harness.render, () => agentLifecycleController.enterEditor());\n },\n onSaveScene: () => {\n void runExclusive(state, harness.render, () => agentLifecycleController.saveScene());\n },\n onSaveAndRunGame: () => {\n void runExclusive(state, harness.render, () => agentLifecycleController.saveAndRunGame());\n },\n onDiscardAndRunGame: () => {\n void runExclusive(state, harness.render, () => agentLifecycleController.discardAndRunGame());\n },\n onUndo: () => {\n void harness.undo({ origin: 'user', waitForProjection: 'none' });\n },\n onRedo: () => {\n void harness.redo({ origin: 'user', waitForProjection: 'none' });\n },\n onCreateFromAsset: (assetId) => {\n if (createAssetFromBrowserIntent(state, options, assetId)) harness.render();\n },\n onSelectAsset: (assetId) => {\n if (selectBrowserAsset(state, assetId)) harness.render();\n },\n onAssetAction: (input) => {\n void runExclusive(state, harness.render, async () => {\n if (await handleBrowserAssetAction(state, options, input)) harness.render();\n });\n },\n onExitPrefabStage: () => {\n void runExclusive(state, harness.render, async () => {\n if (await exitPrefabStage(state, options)) harness.render();\n });\n },\n onSelectPrefabStageItem: (itemId: string) => {\n if (selectPrefabStageItemWithPreviewSync(state, options, itemId)) harness.render();\n },\n onSelectHierarchyItem: (input) => {\n selectItem(state, options, input, harness.render);\n },\n onHierarchyItemEnabledChange: (input) => {\n if (patchHierarchyItemEnabled(state, options, input)) harness.render();\n },\n onMarkerTypeAction: (input) => {\n if (patchMarkerTypeCatalog(state, options, input)) harness.render();\n },\n onMarkerRelationAction: (input) => {\n if (patchMarkerRelation(state, options, input as LocalEditorMarkerRelationActionInput)) harness.render();\n },\n onSelectionCommand: (command) => {\n dispatchSelectionCommand(state, options, command, harness.render);\n },\n onSceneGraphRename: (intent) => {\n if (renameSceneGraphNode(state, options, intent)) harness.render();\n },\n onSceneGraphCreateGroup: (intent) => {\n if (createSceneGraphGroup(state, options, intent)) harness.render();\n },\n onSceneGraphCreatePrimitive: options.documentAdapter.createSceneGraphCreatePrimitivePatch\n ? (intent) => {\n if (createSceneGraphPrimitive(state, options, intent)) harness.render();\n }\n : undefined,\n onSceneGraphCreateMarker: options.documentAdapter.createMarkerGraphPatch\n ? (intent) => {\n if (createSceneGraphMarker(state, options, intent)) harness.render();\n }\n : undefined,\n onSceneGraphDelete: (intent) => {\n if (deleteSceneGraphNodes(state, options, intent)) harness.render();\n },\n onSceneGraphDuplicate: options.documentAdapter.createDuplicateSelectionPatch\n ? (intent) => {\n if (duplicateSceneGraphNodes(state, options, {\n targetIds: intent.targetIds,\n activeId: intent.activeId ?? null,\n })) harness.render();\n }\n : undefined,\n onSceneGraphDrop: (intent) => {\n if (dropSceneGraphNode(state, options, intent)) harness.render();\n },\n onSceneGraphMove: (intent) => {\n const result = moveSceneGraphNodes(state, options, intent);\n if (result) harness.render();\n return result ?? { ok: false, reason: 'Editor is not ready.' };\n },\n onSceneGraphGroupSelection: (intent) => {\n if (groupSceneGraphSelection(state, options, intent)) harness.render();\n },\n onContextAction: (action) => {\n if (action.region === 'hierarchy' && action.action === 'custom') {\n const result = runHierarchyCustomContextAction(state, options, action);\n if (isLocalEditorPromiseLike(result)) {\n void result.then(changed => {\n if (changed) harness.render();\n });\n } else if (result) {\n harness.render();\n }\n return;\n }\n if (handleContextAction(state, options, action)) harness.render();\n },\n onAssetFilterChange: (value) => {\n state.assetFilter = value;\n harness.render();\n },\n onPropertyInput: (input) => {\n const previousStatus = state.status;\n const patched = patchSerializedProperty(state, options, input);\n if (patched || state.status !== previousStatus) harness.render();\n },\n onInspectorAction: (input) => {\n void runExclusive(state, harness.render, async () => {\n if (await handleInspectorAction(state, options, input)) harness.render();\n });\n },\n onRenderingPropertyChange: options.documentAdapter.onRenderingPropertyChange\n ? (input) => {\n void applyRenderingPropertyChange(state, options, input)\n .then((changed) => {\n if (changed) harness.render();\n });\n }\n : undefined,\n onRenderingAction: options.documentAdapter.onRenderingAction\n ? (input) => {\n return applyRenderingAction(state, options, input, harness.render)\n .then((changed) => {\n if (changed) harness.render();\n return changed;\n });\n }\n : undefined,\n onTransformToolChange: (tool) => {\n const previous = state.transformTool;\n commitEditorStateChange(state, options, harness.render, 'transform-tool-change', () => {\n state.transformTool = tool;\n state.transformConstraint = normalizeTransformConstraint(tool, state.transformConstraint);\n }, {\n syncTransformArtifacts: true,\n });\n if (previous !== state.transformTool) {\n void options.pluginHost?.eventPublisher.publish(FPS_EDITOR_ACTIVE_TOOL_CHANGED, Object.freeze({\n previous,\n current: state.transformTool,\n }), {\n scope: 'session',\n scopeId: PLAYABLE_LOCAL_EDITOR_MAIN_SESSION_SCOPE_ID,\n });\n }\n },\n onTransformSpaceChange: (space) => {\n commitEditorStateChange(state, options, harness.render, 'transform-space-change', () => {\n state.transformSpace = space;\n }, {\n syncTransformArtifacts: true,\n });\n },\n onTransformConstraintChange: (constraint) => {\n commitEditorStateChange(state, options, harness.render, 'transform-constraint-change', () => {\n state.transformConstraint = normalizeTransformConstraint(state.transformTool, constraint);\n }, {\n syncTransformArtifacts: true,\n });\n },\n onTransformSnapEnabledChange: (enabled) => {\n commitEditorStateChange(state, options, harness.render, 'transform-operation-settings-change', () => {\n state.transformOperationSettings = updateTransformOperationSettings(state.transformOperationSettings, {\n snap: {\n ...state.transformOperationSettings.snap,\n enabled,\n },\n });\n state.status = enabled ? 'Transform snap enabled' : 'Transform snap disabled';\n }, {\n syncTransformOperationArtifacts: true,\n });\n },\n onTransformSnapStepChange: (input) => {\n const value = normalizePositiveStep(input.value);\n if (value == null) return;\n commitEditorStateChange(state, options, harness.render, 'transform-operation-settings-change', () => {\n const snap = { ...state.transformOperationSettings.snap };\n if (input.kind === 'move') snap.moveStep = value;\n else if (input.kind === 'rotate') snap.rotateStepDegrees = value;\n else snap.scaleStep = value;\n state.transformOperationSettings = updateTransformOperationSettings(state.transformOperationSettings, { snap });\n state.status = `Transform snap ${input.kind} step ${value}`;\n }, {\n syncTransformOperationArtifacts: true,\n });\n },\n onPlacementModeChange: (mode) => {\n commitEditorStateChange(state, options, harness.render, 'placement-mode-change', () => {\n state.transformOperationSettings = updateTransformOperationSettings(state.transformOperationSettings, {\n placementMode: normalizePlacementMode(mode),\n });\n if (state.transformOperationSettings.placementMode === 'off') clearArmedPlacement(state);\n state.status = `Placement mode: ${state.transformOperationSettings.placementMode}`;\n }, {\n syncTransformOperationArtifacts: true,\n });\n },\n onTransformAction: (action) => {\n if (executeTransformAction(state, options, action)) harness.render();\n },\n onViewportViewPresetChange: (preset) => {\n if (setViewportViewPreset(state, options, preset)) harness.render();\n },\n onViewportProjectionModeChange: (mode) => {\n if (setViewportProjectionMode(state, mode)) harness.render();\n },\n onViewportOverlaySettingsChange: (settings) => {\n if (setViewportOverlaySettings(state, settings)) harness.render();\n },\n onMarkerViewportVisibilityChange: (visible) => {\n if (setMarkerViewportVisibility(state, options, visible)) harness.render();\n },\n onViewportUtilityToolChange: (tool) => {\n if (setViewportUtilityTool(state, tool)) harness.render();\n },\n onViewportMeasurementClear: () => {\n if (clearViewportMeasurement(state)) harness.render();\n },\n onSceneCameraPreviewToggle: (enabled) => {\n if (setSceneCameraPreviewEnabled(state, options, enabled)) harness.render();\n },\n onGridVisibleChange: (visible) => {\n if (setGridVisible(state, visible)) harness.render();\n },\n onPerformanceMonitorOpenChange: (open) => {\n setLocalEditorPerformanceMonitorOpen(state, open);\n updateLocalEditorPerformanceStats(state, stats => ui.updatePerformanceStats?.(stats));\n },\n ...({\n onPrefabComparisonPreviewLayoutChange: () => {\n harness.render();\n },\n onPrefabComparisonPreviewInteraction: (input: LocalEditorHarnessPrefabComparisonPreviewInteraction) => {\n if (!state.prefabStage) return;\n if (state.prefabComparisonPreview?.adjustView(input)) {\n requestEditorSceneFrame(state, 'prefab-comparison-preview-interaction');\n }\n },\n } as {\n onPrefabComparisonPreviewLayoutChange?: () => void;\n onPrefabComparisonPreviewInteraction?: (input: LocalEditorHarnessPrefabComparisonPreviewInteraction) => void;\n }),\n onFocusSelection: () => {\n if (focusSelectedProjection(state, options)) harness.render();\n },\n onCancelEditorIntent: () => {\n if (cancelEditorIntent(state, options)) harness.render();\n },\n onCancelActiveOperation: () => {\n cancelActiveOperation(state);\n harness.render();\n },\n } as LocalEditorHarnessBrowserCallbacks),\n });\n construction.setCleanup(() => {\n unregisterAgentBridgeLifecycleParticipant?.();\n unregisterAgentBridgeLifecycleParticipant = null;\n agentBridgeLifecycleTransports.clear();\n releaseApplicationAuthorityScopeResource?.();\n releaseApplicationAuthorityScopeResource = null;\n releaseMainSessionScopeResource?.();\n releaseMainSessionScopeResource = null;\n releaseMainPreviewScopeResource?.();\n releaseMainPreviewScopeResource = null;\n disposeLocalEditorHarnessResources(state, ui);\n });\n\n const runGameFromEditor = async (reason: LocalEditorHarnessRunGameContext['reason']): Promise<void> => {\n cancelActiveOperation(state);\n await waitForEditorProjectionIdleBeforeRunGame(state);\n if (!lifecycleController) disposeEditorWorld(state);\n await waitForEditorWorldDisposeBoundary();\n await options.persistenceAdapter.runGame({ reason });\n // The lifecycle-owned Session Scope clears these before runGame. Keep the\n // assignment idempotent for direct harness consumers without a coordinator.\n state.session = null;\n state.source = null;\n state.status = reason === 'save' ? 'Saved scene; starting game' : 'Discarded editor changes; starting game';\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n harness.render();\n harness.render();\n };\n\n const loadEditorDocument = async (): Promise<void> => {\n const loadedSource = options.persistenceAdapter.loadAuthoringSource\n ? await options.persistenceAdapter.loadAuthoringSource()\n : null;\n const [document, assets] = loadedSource\n ? [loadedSource.document, loadedSource.assets ?? await options.persistenceAdapter.loadAssets()]\n : [await loadDocumentFallback(options), await options.persistenceAdapter.loadAssets()];\n const source = loadedSource?.source ?? null;\n const preparedDocument = options.documentAdapter.prepareDocument?.(document, assets) ?? document;\n state.assets = assets;\n state.source = source;\n state.markerGraphVisibility = createDefaultMarkerGraphVisibilityState();\n state.activeMarkerRelationId = null;\n state.markerRelationHighlightContinuous = false;\n state.markerCreateReservations = createEmptyMarkerCreateReservations();\n state.session = createEditorSession<TDocument, TPatch>({\n source: source ?? undefined,\n persistedDocument: preparedDocument,\n cloneDocument: options.documentAdapter.cloneDocument,\n compareDocuments: options.documentAdapter.compareDocuments,\n reduceDocument: options.documentAdapter.reduceDocument,\n onChange: handleEditorSessionChange,\n onChangeError: handleEditorSessionObserverError,\n });\n try {\n attachLifecycleOwnedSessionAuthority();\n } catch (error) {\n state.session = null;\n state.source = null;\n throw error;\n }\n state.summary = loadedSource?.summary ?? summarizeDocument(options, preparedDocument, source);\n };\n\n const enterEditorWorld = async (): Promise<void> => {\n if (!state.session) throw new Error('Editor document must be loaded before entering the editor world.');\n attachLifecycleOwnedApplicationAuthority();\n attachLifecycleOwnedSessionAuthority();\n await options.worldAdapter.disposeGameWorld();\n releaseMainPreviewScopeResource?.();\n releaseMainPreviewScopeResource = null;\n if (lifecycleController) {\n releaseMainPreviewScopeResource = lifecycleController.addScopeResource(\n PLAYABLE_LOCAL_EDITOR_MAIN_PREVIEW_SCOPE_ID,\n async () => {\n releaseMainPreviewScopeResource = null;\n const prefabStage = state.prefabStage;\n if (prefabStage) {\n await closePrefabStageLifecycleScopes(state, prefabStage);\n if (state.prefabStage === prefabStage) clearPrefabStageForEditorTeardown(state);\n }\n disposeEditorWorld(state);\n },\n );\n }\n try {\n await createEditorWorld(\n state,\n options,\n harness.render,\n previewState => {\n if (ui.updatePreview) ui.updatePreview(previewState);\n else ui.update(createUiState(state, options));\n syncPrefabComparisonPreviewSurfaces(state, ui);\n },\n stats => ui.updateSceneFrameStats?.(stats),\n stats => ui.updatePerformanceStats?.(stats),\n () => ui.getPrefabComparisonPreviewSurfaces?.() ?? [],\n );\n } catch (error) {\n if (!lifecycleController) disposeEditorWorld(state);\n throw error;\n }\n state.status = `GameWorld disposed; EditorWorld active; assets=${state.assets.length}`;\n harness.render();\n harness.notifyViewportRevealed('editor-enter');\n };\n\n const restoreEditorDocument = async (): Promise<void> => {\n const sessionState = state.session?.getState({ cloneDocuments: false });\n if (!state.session || !sessionState) throw new Error('Cannot discard an unloaded editor document.');\n state.session.reset(sessionState.persistedDocument, sessionState.source);\n state.source = sessionState.source ?? null;\n state.summary = summarizeDocument(options, sessionState.persistedDocument, state.source);\n state.status = 'Editor changes discarded';\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n };\n\n const markDocumentCommitted = async (expectedDocumentFingerprint: string | null): Promise<void> => {\n const sessionState = state.session?.getState({ cloneDocuments: false });\n if (!state.session || !sessionState) throw new Error('Cannot commit an unloaded editor document.');\n if (createLocalEditorDocumentFingerprint(sessionState.workingDocument) !== expectedDocumentFingerprint) {\n throw new Error('Editor document changed after export; refusing to commit a stale snapshot.');\n }\n state.session.markSaved(sessionState.workingDocument, sessionState.source);\n state.source = sessionState.source ?? null;\n state.status = 'Platform save committed';\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n };\n\n const scheduleEditorLifecycleExit = (exitEditor: () => Promise<void>): void => {\n if (state.busy) throw new Error('Local editor host is busy.');\n state.busy = true;\n harness.render();\n globalThis.setTimeout(() => {\n void exitEditor()\n .then(() => new Promise<void>(resolve => globalThis.setTimeout(resolve, 0)))\n .catch(error => {\n state.status = error instanceof Error ? error.message : String(error);\n state.statusTone = 'error';\n state.statusToneStatus = state.status;\n state.statusDetails = state.status;\n console.error('[LocalEditorHarness] scheduled run failed', error);\n })\n .finally(() => {\n state.busy = false;\n if (state.session) harness.render();\n });\n }, 0);\n };\n\n harness = {\n render() {\n syncViewportCameraState(state);\n syncViewportMeasurementState(state);\n syncViewportSpatialOverlay(state, options);\n ui.update(createUiState(state, options));\n syncPrefabComparisonPreviewSurfaces(state, ui);\n syncSceneCameraPreview(state, options);\n },\n notifyViewportRevealed(reason = 'viewport-revealed') {\n state.viewportRenderCoordinator?.requestRevealFrame(reason);\n },\n setTheme(theme) {\n ui.setTheme(theme);\n },\n getTheme() {\n return ui.getTheme();\n },\n getHostServices() {\n return options.hostServices ?? null;\n },\n getAgentBridge() {\n return state.agentBridge;\n },\n getWorkingDocument() {\n return state.session?.getState().workingDocument ?? null;\n },\n getUnsavedChangesState() {\n const sessionState = state.session?.getState({ cloneDocuments: false });\n return {\n dirty: sessionState?.dirty === true,\n hasWorkingDocument: sessionState?.workingDocument != null,\n };\n },\n getSaveFailureState() {\n return {\n status: state.status,\n details: state.statusDetails || undefined,\n };\n },\n getDefaultInteractionPolicy() {\n return createLocalEditorDataSafetyInteractionPolicy(ui);\n },\n getLifecycleService() {\n return lifecycleController?.lifecycle ?? null;\n },\n async reloadAssets() {\n try {\n const assets = await options.persistenceAdapter.loadAssets();\n state.assets = assets;\n clearArmedPlacement(state);\n state.status = `Assets reloaded; assets=${assets.length}`;\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n harness.render();\n return {\n ok: true,\n assetCount: assets.length,\n status: state.status,\n };\n } catch (error) {\n state.status = 'Asset reload failed';\n state.statusTone = 'error';\n state.statusToneStatus = state.status;\n state.statusDetails = error instanceof Error ? error.message : String(error);\n harness.render();\n return {\n ok: false,\n assetCount: state.assets.length,\n status: state.status,\n error: state.statusDetails,\n };\n }\n },\n async refreshUpdatedAsset(input) {\n try {\n if (!state.session) throw new Error('editor_document_unavailable');\n if (!options.documentAdapter.hydrateDocumentAssets) {\n throw new Error('asset_update_hydration_unavailable');\n }\n if (!options.documentAdapter.resolveUpdatedAssetSnapshot) {\n throw new Error('asset_update_snapshot_verification_unavailable');\n }\n const assets = await options.persistenceAdapter.loadAssets();\n assertLocalEditorUpdatedAssetSnapshotFreshness(\n options.documentAdapter.resolveUpdatedAssetSnapshot(assets, { assetId: input.assetId }),\n input,\n );\n const result = applyLocalEditorUpdatedAssetRefresh(state.session, {\n assetId: input.assetId,\n assets,\n hydrateDocumentAssets: options.documentAdapter.hydrateDocumentAssets,\n ...(options.documentAdapter.reconcileUpdatedAsset\n ? { reconcileUpdatedAsset: options.documentAdapter.reconcileUpdatedAsset }\n : {}),\n ...(options.documentAdapter.compareDocuments\n ? { compareDocuments: options.documentAdapter.compareDocuments }\n : {}),\n });\n state.assets = assets;\n clearArmedPlacement(state);\n syncLocalEditorUpdatedAssetProjection(state.updatedAssetProjection, result.changed, () => {\n rebuildProjectionFromDocument(state, options, result.workingDocument, result.selection);\n });\n state.summary = summarizeDocument(options, result.workingDocument, state.session.getSource());\n const warnings = result.warnings;\n const reconciledBindingCount = result.reconciledBindingCount;\n state.status = warnings.length > 0\n ? `Asset updated with ${warnings.length} warning${warnings.length === 1 ? '' : 's'}`\n : result.changed ? 'Asset updated' : 'Asset metadata already current';\n state.statusTone = warnings.length > 0 ? 'warning' : 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = warnings.map(warning => warning.code).join(', ');\n harness.render();\n return {\n ok: true,\n assetId: input.assetId,\n assetCount: assets.length,\n reconciledBindingCount,\n warnings,\n status: state.status,\n };\n } catch (error) {\n state.status = 'Asset update refresh failed';\n state.statusTone = 'error';\n state.statusToneStatus = state.status;\n state.statusDetails = error instanceof Error ? error.message : String(error);\n harness.render();\n return {\n ok: false,\n assetId: input.assetId,\n assetCount: state.assets.length,\n reconciledBindingCount: 0,\n warnings: [],\n status: state.status,\n error: state.statusDetails,\n };\n }\n },\n createAssetFromAssetId(assetId, createOptions) {\n const result = addAssetToDocument(state, options, assetId, createOptions);\n harness.render();\n return result;\n },\n async undo(historyOptions) {\n const result = applyHistoryOperation(state, options, 'undo', historyOptions);\n if (result.ok) harness.render();\n return waitForHistoryOperationProjection(state, result);\n },\n async redo(historyOptions) {\n const result = applyHistoryOperation(state, options, 'redo', historyOptions);\n if (result.ok) harness.render();\n return waitForHistoryOperationProjection(state, result);\n },\n async enterEditor() {\n await loadEditorDocument();\n await enterEditorWorld();\n },\n async saveScene() {\n cancelActiveOperation(state);\n try {\n const document = state.session?.getState().workingDocument ?? await loadDocumentFallback(options);\n const source = state.session?.getState().source ?? state.source;\n let savedSource: AuthoringSourceDescriptor | null = source;\n let result: { document: TDocument; summary?: string };\n if (source && options.authoringHost) {\n const hostResult = await options.authoringHost.commitSource<TDocument>({\n source,\n document,\n expectedRevision: source.ref.revision,\n });\n if (!hostResult.ok || !hostResult.document) {\n const failureStatus = summarizeLocalEditorAuthoringFailure(hostResult);\n state.status = failureStatus.status;\n state.statusTone = 'error';\n state.statusToneStatus = state.status;\n state.statusDetails = failureStatus.details;\n state.summary = summarizeDocument(options, document, source);\n return false;\n }\n savedSource = hostResult.source ?? source;\n result = {\n document: hostResult.document,\n summary: hostResult.summary ?? summarizeDiagnostics(hostResult.diagnostics),\n };\n } else if (source && options.persistenceAdapter.saveAuthoringSource) {\n const sourceResult = await options.persistenceAdapter.saveAuthoringSource({ source, document });\n savedSource = sourceResult.source;\n result = sourceResult;\n } else {\n result = await saveDocumentFallback(options, document);\n }\n const preparedDocument = options.documentAdapter.prepareDocument?.(result.document, state.assets) ?? result.document;\n state.source = savedSource ?? null;\n if (state.session) {\n state.session.markSaved(preparedDocument, savedSource ?? undefined);\n } else {\n state.session = createEditorSession<TDocument, TPatch>({\n source: savedSource ?? undefined,\n persistedDocument: preparedDocument,\n cloneDocument: options.documentAdapter.cloneDocument,\n compareDocuments: options.documentAdapter.compareDocuments,\n reduceDocument: options.documentAdapter.reduceDocument,\n onChange: handleEditorSessionChange,\n onChangeError: handleEditorSessionObserverError,\n });\n try {\n attachLifecycleOwnedSessionAuthority();\n } catch (error) {\n state.session = null;\n state.source = null;\n throw error;\n }\n }\n state.summary = result.summary ?? summarizeDocument(options, preparedDocument, savedSource ?? null);\n state.status = 'Scene saved';\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n return true;\n } catch (error) {\n state.status = 'Scene save failed';\n state.statusTone = 'error';\n state.statusToneStatus = state.status;\n state.statusDetails = stringifyLocalEditorError(error) ?? 'Unknown save error';\n harness.render();\n throw error;\n }\n },\n async saveAndRunGame() {\n const saved = await harness.saveScene();\n if (!saved) return false;\n await runGameFromEditor('save');\n return true;\n },\n async discardAndRunGame() {\n await runGameFromEditor('discard');\n },\n dispose() {\n construction.dispose();\n },\n };\n\n agentLifecycleController = {\n enterEditor: () => harness.enterEditor(),\n saveScene: () => harness.saveScene(),\n saveAndRunGame: () => harness.saveAndRunGame(),\n async discardAndRunGame() {\n await harness.discardAndRunGame();\n return true;\n },\n async prepareSaveAndRunGame() {\n const saved = await harness.saveScene();\n return saved\n ? { accepted: true, run: () => runGameFromEditor('save') }\n : { accepted: false };\n },\n async prepareDiscardAndRunGame() {\n return { accepted: true, run: () => runGameFromEditor('discard') };\n },\n };\n\n const agentBridgeCapabilitySourceOperations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument> = {\n createAssetFromAssetId: (assetId, createOptions) => harness.createAssetFromAssetId(assetId, createOptions),\n getPrefabStage: () => summarizeAgentBridgePrefabStage(state, options),\n getPrefabStageDetails: () => summarizeAgentBridgePrefabStageDetails(state, options),\n openPrefabStage: input => runExclusiveResult(state, harness.render, async () => {\n const previousStage = summarizeAgentBridgePrefabStage(state, options);\n const opened = await enterPrefabStage(state, options, {\n actionId: 'asset.edit-prefab',\n assetId: input.assetId,\n browserAssetId: input.browserAssetId,\n assetKind: 'prefab',\n });\n const stage = summarizeAgentBridgePrefabStage(state, options);\n if (!opened || !stage) return null;\n const alreadyOpen = isSameAgentBridgePrefabStage(previousStage, stage);\n return {\n opened: !alreadyOpen,\n alreadyOpen,\n prefab: createAgentBridgePrefabSummaryFromStage(stage),\n stage,\n status: state.status,\n };\n }),\n exitPrefabStage: () => runExclusiveResult(state, harness.render, async () => {\n const previousStage = summarizeAgentBridgePrefabStage(state, options);\n const exited = await exitPrefabStage(state, options);\n return {\n exited,\n wasOpen: !!previousStage,\n ...(previousStage ? { previousStage } : {}),\n status: exited ? state.status : 'No Prefab stage is open.',\n };\n }),\n selectPrefabStageItem: itemId => selectPrefabStageItemWithPreviewSync(state, options, itemId),\n runPrefabStageAssetAction: input => patchBrowserAssetAction(state, options, input),\n getHierarchy: () => createUiState(state, options).hierarchy,\n dispatchSelectionCommand: (command, shouldRenderUi = false) => dispatchSelectionCommand(\n state,\n options,\n command,\n shouldRenderUi ? () => harness.render() : undefined,\n ),\n focusProjectionNode: objectId => frameViewportProjectionNode(state, objectId),\n focusSelectedProjection: () => frameSelectedViewportProjection(state, options),\n syncViewportCameraState: () => syncViewportCameraState(state),\n requestSceneFrame: reason => requestEditorSceneFrame(state, reason),\n cloneTransformSnapshot: transform => cloneEditorTransformSnapshot(transform),\n cancelActiveOperation: () => cancelActiveOperation(state),\n withProjectionImpact,\n resolveProjectionImpact,\n createReprojectProjectionImpact,\n createTransformProjectionImpact,\n createKnownCreatedReprojectProjectionImpact,\n createDeletedNodeProjectionImpact,\n reprojectProjectionForChangedIds: (document, changedIds) => reprojectProjectionForChangedIds(\n state,\n options,\n document,\n changedIds,\n ),\n syncProjectionForChangedIds: (document, changedIds) => syncProjectionForChangedIds(\n state,\n options,\n document,\n changedIds,\n ),\n rebuildProjectionFromDocument: (document, selection) => rebuildProjectionFromDocument(\n state,\n options,\n document,\n selection,\n ),\n sanitizeSelection: (document, selection) => sanitizeSelection(state, options, document, selection),\n summarizeDocument: (document, source) => summarizeDocument(options, document, source),\n invalidateStaticShadowArtifact: () => {\n if (!state.shadowPreview?.invalidateStaticProjectedArtifact) return false;\n state.shadowPreview.invalidateStaticProjectedArtifact();\n requestEditorSceneFrame(state, 'agent-shadow-static-invalidate');\n return true;\n },\n getShadowPreviewDebugInfo: () => state.shadowPreview?.getDebugInfo?.() ?? null,\n setShadowDebugOverlay: (items) => {\n const overlayIds = state.projection?.setShadowDebugOverlay?.(items) ?? [];\n requestEditorSceneFrame(state, 'agent-shadow-debug-overlay-set');\n return overlayIds;\n },\n clearShadowDebugOverlay: () => {\n const cleared = state.projection?.clearShadowDebugOverlay?.() ?? false;\n if (cleared) requestEditorSceneFrame(state, 'agent-shadow-debug-overlay-clear');\n return cleared;\n },\n resolvePrefabStageProjectionNodeId: (nodeId) => {\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument;\n return document ? resolvePrefabStageProjectionNodeIdForNode(state, options, document, nodeId) : null;\n },\n runRenderingAction: actionId => applyRenderingAction(\n state,\n options,\n { actionId },\n () => harness.render(),\n ),\n };\n\n const registerAgentBridgeCapabilities = (): void => {\n if (state.unregisterAgentBridgeCapabilities) return;\n const unregisterStandardAgentCapabilities = registerLocalEditorAgentBridgeCapabilities(\n state.agentBridge,\n createLocalEditorAgentBridgeCapabilitySources(\n state as LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options,\n () => harness.render(),\n context => runExclusive(state, harness.render, () => agentLifecycleController.enterEditor(context)),\n async context => {\n const prepared = await runExclusiveResult(\n state,\n harness.render,\n () => agentLifecycleController.prepareSaveAndRunGame(context),\n );\n if (prepared.accepted) scheduleEditorLifecycleExit(prepared.run);\n return prepared.accepted;\n },\n async context => {\n const prepared = await runExclusiveResult(\n state,\n harness.render,\n () => agentLifecycleController.prepareDiscardAndRunGame(context),\n );\n if (prepared.accepted) scheduleEditorLifecycleExit(prepared.run);\n return prepared.accepted;\n },\n agentBridgeCapabilitySourceOperations,\n ),\n );\n try {\n const unregisterPluginAgentCapabilities = registerEditorPluginAgentCapabilities(\n state.agentBridge,\n options.pluginHost,\n );\n state.unregisterAgentBridgeCapabilities = () => {\n const errors: unknown[] = [];\n try { unregisterPluginAgentCapabilities(); } catch (error) { errors.push(error); }\n try { unregisterStandardAgentCapabilities(); } catch (error) { errors.push(error); }\n if (errors.length > 0) {\n const error = new Error('Local Editor Agent capability cleanup failed.') as Error & { errors: unknown[] };\n error.errors = errors;\n throw error;\n }\n };\n } catch (error) {\n try {\n unregisterStandardAgentCapabilities();\n } catch (cleanupError) {\n const combined = new Error(\n 'Plugin Agent capability registration failed and standard capability rollback reported errors.',\n ) as Error & { errors: unknown[] };\n combined.errors = [error, cleanupError];\n throw combined;\n }\n throw error;\n }\n };\n const activateAgentBridgeAuthority = (): void => {\n registerAgentBridgeCapabilities();\n if (state.agentBridgeTransport) return;\n state.agentBridgeTransport = createLocalEditorAgentBridgeWebSocketTransportFromQuery(state.agentBridge, {\n metadata: options.agentBridge?.sessionMetadata,\n onStatusChange: agentBridgeStatus => {\n state.agentBridgeStatus = agentBridgeStatus;\n harness.render();\n },\n });\n };\n const disposeAgentBridgeAuthority = (): void => {\n if (state.agentBridgeTransport) {\n state.agentBridgeTransport.dispose();\n state.agentBridgeTransport = null;\n }\n if (state.unregisterAgentBridgeCapabilities) {\n state.unregisterAgentBridgeCapabilities();\n state.unregisterAgentBridgeCapabilities = null;\n }\n };\n const attachLifecycleOwnedApplicationAuthority = (): void => {\n if (!lifecycleController) return;\n if (!unsubscribeLifecycleRender) attachLifecycleRenderSubscription();\n activateAgentBridgeAuthority();\n attachAgentBridgeLifecycleParticipant();\n if (!releaseApplicationAuthorityScopeResource) {\n releaseApplicationAuthorityScopeResource = lifecycleController.addScopeResource(\n PLAYABLE_LOCAL_EDITOR_APPLICATION_SCOPE_ID,\n () => {\n disposeAgentBridgeAuthority();\n releaseApplicationAuthorityScopeResource = null;\n },\n );\n }\n };\n const reportAgentBridgeLifecycleTransition = (event: FpsEditorLifecycleChangedEvent): void => {\n const transitionId = event.transition.id;\n const transport = agentBridgeLifecycleTransports.get(transitionId)\n ?? state.agentBridgeTransport;\n transport?.reportLifecycleTransition(event);\n if (event.status !== 'started') agentBridgeLifecycleTransports.delete(transitionId);\n };\n const attachAgentBridgeLifecycleParticipant = (): void => {\n unregisterAgentBridgeLifecycleParticipant?.();\n unregisterAgentBridgeLifecycleParticipant = null;\n if (!lifecycleController) return;\n unregisterAgentBridgeLifecycleParticipant = lifecycleController.registerParticipant({\n id: 'fps.editor.agent-bridge.lifecycle-trace',\n transitions: FPS_EDITOR_LIFECYCLE_TRANSITION_TYPES,\n prepare(context) {\n const transport = state.agentBridgeTransport;\n if (transport) agentBridgeLifecycleTransports.set(context.transition.id, transport);\n reportAgentBridgeLifecycleTransition({\n status: 'started',\n transition: context.transition,\n previous: context.before,\n current: context.getSnapshot(),\n });\n },\n settled: reportAgentBridgeLifecycleTransition,\n failed: reportAgentBridgeLifecycleTransition,\n });\n };\n const attachLifecycleRenderSubscription = (): void => {\n releaseLifecycleRenderScopeResource?.();\n releaseLifecycleRenderScopeResource = null;\n unsubscribeLifecycleRender?.();\n unsubscribeLifecycleRender = null;\n if (!lifecycleController) return;\n const lifecycle = lifecycleController.lifecycle;\n const unsubscribe = lifecycle.subscribe(() => harness.render());\n unsubscribeLifecycleRender = unsubscribe;\n releaseLifecycleRenderScopeResource = lifecycleController.addScopeResource(\n PLAYABLE_LOCAL_EDITOR_APPLICATION_SCOPE_ID,\n () => {\n unsubscribe();\n if (unsubscribeLifecycleRender === unsubscribe) unsubscribeLifecycleRender = null;\n releaseLifecycleRenderScopeResource = null;\n },\n );\n };\n const attachLifecycleOwnedSessionAuthority = (): void => {\n if (!lifecycleController || !state.session) return;\n if (!releaseMainSessionScopeResource) {\n releaseMainSessionScopeResource = lifecycleController.addScopeResource(\n PLAYABLE_LOCAL_EDITOR_MAIN_SESSION_SCOPE_ID,\n () => {\n state.session = null;\n state.source = null;\n releaseMainSessionScopeResource = null;\n },\n );\n }\n };\n activateAgentBridgeAuthority();\n registerLocalEditorHarnessLifecycleOperations(harness, {\n runGame: runGameFromEditor,\n attachApplicationAuthority: attachLifecycleOwnedApplicationAuthority,\n attachSessionAuthority: attachLifecycleOwnedSessionAuthority,\n loadDocument: loadEditorDocument,\n enterWorld: enterEditorWorld,\n restoreDocument: restoreEditorDocument,\n markDocumentCommitted,\n setLifecycleController(controller) {\n agentLifecycleController = controller;\n lifecycleController = controller.lifecycle\n && controller.synchronizeDocumentState\n && controller.registerParticipant\n && controller.openScope\n && controller.addScopeResource\n && controller.closeScope\n ? controller as Pick<\n PlayableLocalEditorLifecycleController,\n | 'lifecycle'\n | 'synchronizeDocumentState'\n | 'registerParticipant'\n | 'openScope'\n | 'addScopeResource'\n | 'closeScope'\n >\n : null;\n state.scopeOperations = lifecycleController;\n attachLifecycleRenderSubscription();\n attachLifecycleOwnedApplicationAuthority();\n if (lifecycleController && state.session) {\n attachLifecycleOwnedSessionAuthority();\n void lifecycleController.synchronizeDocumentState(state.session.isDirty()).catch(error => {\n console.error('[LocalEditorHarness] lifecycle document synchronization failed', error);\n });\n }\n },\n });\n harness.render();\n return harness;\n}\n\nfunction createLocalEditorDocumentFingerprint(document: unknown): string | null {\n if (document == null) return null;\n try {\n return JSON.stringify(document);\n } catch {\n return null;\n }\n}\n\nfunction disposeLocalEditorHarnessResources<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n ui: LocalEditorHarnessBrowserUi<TDocument>,\n): void {\n const errors: unknown[] = [];\n const dispose = (operation: () => void, onSuccess?: () => void): void => {\n try {\n operation();\n onSuccess?.();\n } catch (error) {\n errors.push(error);\n }\n };\n dispose(() => state.agentBridgeTransport?.dispose(), () => { state.agentBridgeTransport = null; });\n dispose(() => state.unregisterAgentBridgeCapabilities?.(), () => {\n state.unregisterAgentBridgeCapabilities = null;\n });\n dispose(() => disposeEditorWorld(state), () => { state.session = null; });\n dispose(() => ui.dispose());\n if (errors.length > 0) {\n const error = new Error('Local Editor Harness cleanup failed.') as Error & { errors: unknown[] };\n error.errors = errors;\n throw error;\n }\n}\n\nfunction createLocalEditorHarnessConstructionError(\n constructionError: unknown,\n cleanupError: unknown,\n retryCleanup: () => void,\n): Error {\n const error = new Error('Local Editor Harness construction and rollback failed.') as Error & {\n errors: unknown[];\n retryCleanup: () => void;\n };\n Object.defineProperties(error, {\n errors: { value: [constructionError, cleanupError], enumerable: true },\n retryCleanup: { value: retryCleanup, enumerable: false },\n });\n return error;\n}\n\nfunction readRetryCleanup(error: unknown): (() => void) | null {\n if (!error || typeof error !== 'object') return null;\n const retryCleanup = (error as { retryCleanup?: unknown }).retryCleanup;\n return typeof retryCleanup === 'function' ? retryCleanup as () => void : null;\n}\n\nexport function mergeLocalEditorHarnessInspectorComponentSections<TDocument>(\n input: LocalEditorHarnessInspectorComponentMergeInput<TDocument>,\n): InspectorObject<TDocument> {\n const components = input.components;\n if (!components) return input.inspectorObject;\n const context = {\n ...input.inspectorObject.selection,\n ...input.context,\n targetIds: input.context?.targetIds ?? input.inspectorObject.targetIds,\n activeId: input.context?.activeId ?? input.inspectorObject.activeId,\n document: input.context?.document ?? input.inspectorObject.document ?? input.inspectorObject.selection.document,\n };\n const componentSections = getInspectorComponentSections({\n components,\n context,\n componentConflict: input.componentConflict,\n propertyConflict: input.propertyConflict,\n });\n if (componentSections.length === 0) return input.inspectorObject;\n return {\n ...input.inspectorObject,\n sections: mergeInspectorSections(input.inspectorObject.sections, componentSections, {\n propertyConflict: input.propertyConflict,\n }),\n };\n}\n\nfunction isAgentBridgeObjectSelectable<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n objectId: string,\n hierarchyItems: readonly LocalEditorBrowserUiHierarchyItem[],\n): boolean {\n const inHierarchy = hierarchyItems.some(item => item.id === objectId);\n const hasProjectionNode = !!options.documentAdapter.getProjectionNode(document, objectId);\n if (!inHierarchy && !hasProjectionNode) return false;\n return isNodeSelectableInDocument(options, document, objectId);\n}\n\nfunction normalizeTransformConstraint(\n tool: EditorTransformTool,\n constraint?: EditorTransformConstraint | null,\n): EditorTransformCanonicalConstraint {\n return normalizeEditorTransformConstraint(tool, constraint) ?? 'axis';\n}\n\ninterface LocalEditorStateCommitOptions {\n syncSelectionArtifacts?: boolean | EditorSelectionState;\n syncTransformOperationArtifacts?: boolean;\n syncTransformArtifacts?: boolean;\n}\n\nfunction cloneTransformOperationSettings(\n settings: EditorTransformOperationSettings,\n): EditorTransformOperationSettings {\n return {\n snap: {\n enabled: settings.snap.enabled,\n moveStep: settings.snap.moveStep,\n rotateStepDegrees: settings.snap.rotateStepDegrees,\n scaleStep: settings.snap.scaleStep,\n },\n placementMode: settings.placementMode,\n };\n}\n\nfunction cloneEditorTransformSnapshot(transform: EditorTransformSnapshot): EditorTransformSnapshot {\n return cloneCoreEditorTransformSnapshot(transform);\n}\n\nfunction updateTransformOperationSettings(\n current: EditorTransformOperationSettings,\n patch: Partial<EditorTransformOperationSettings>,\n): EditorTransformOperationSettings {\n return {\n ...current,\n ...patch,\n snap: patch.snap\n ? { ...current.snap, ...patch.snap }\n : { ...current.snap },\n };\n}\n\nfunction normalizePositiveStep(value: number): number | null {\n if (!Number.isFinite(value) || value <= 0) return null;\n return Number(value.toFixed(4));\n}\n\nfunction normalizePlacementMode(mode: EditorPlacementMode): EditorPlacementMode {\n return mode === 'ground' || mode === 'surface' ? mode : 'off';\n}\n\nfunction normalizeViewportViewPreset(\n preset: EditorViewportViewPreset,\n): EditorViewportViewPreset {\n return preset === 'top'\n || preset === 'bottom'\n || preset === 'front'\n || preset === 'back'\n || preset === 'left'\n || preset === 'right'\n || preset === 'iso'\n || preset === 'threeQuarterTop'\n ? preset\n : 'perspective';\n}\n\nfunction normalizeViewportProjectionMode(\n mode: EditorViewportProjectionMode,\n): EditorViewportProjectionMode {\n return mode === 'orthographic' ? 'orthographic' : 'perspective';\n}\n\nfunction createEmptyViewportMeasurement(): EditorViewportGroundMeasurement {\n return {\n active: false,\n start: null,\n end: null,\n preview: null,\n distance: null,\n screenStart: null,\n screenEnd: null,\n screenPreview: null,\n label: null,\n };\n}\n\nfunction cloneViewportMeasurement(\n measurement: EditorViewportGroundMeasurement,\n): EditorViewportGroundMeasurement {\n return {\n active: measurement.active,\n start: measurement.start ? { ...measurement.start } : null,\n end: measurement.end ? { ...measurement.end } : null,\n preview: measurement.preview ? { ...measurement.preview } : null,\n distance: measurement.distance,\n screenStart: measurement.screenStart ? { ...measurement.screenStart } : null,\n screenEnd: measurement.screenEnd ? { ...measurement.screenEnd } : null,\n screenPreview: measurement.screenPreview ? { ...measurement.screenPreview } : null,\n label: measurement.label ? { ...measurement.label } : null,\n };\n}\n\nfunction setViewportViewPreset<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n preset: EditorViewportViewPreset,\n): boolean {\n if (state.sceneCameraPreviewEnabled) {\n state.status = 'Viewport view unavailable during Scene Camera preview';\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n state.statusDetails = 'Disable Scene Camera preview before switching editor viewport views.';\n return true;\n }\n const nextPreset = normalizeViewportViewPreset(preset);\n const target = resolveViewportPresetTarget(state, options);\n const radius = resolveViewportPresetRadius(state, options);\n const changed = state.sceneViewCamera?.setViewPreset(nextPreset, { target, radius }) ?? false;\n if (!changed) return false;\n const cameraState = state.sceneViewCamera?.getState();\n state.viewportTools = {\n ...state.viewportTools,\n viewPreset: cameraState?.viewPreset ?? nextPreset,\n projectionMode: cameraState?.projectionMode ?? (nextPreset === 'perspective' ? 'perspective' : 'orthographic'),\n };\n state.status = `Viewport view: ${state.viewportTools.viewPreset}`;\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n requestEditorSceneFrame(state, 'viewport-view-preset');\n return true;\n}\n\nfunction setViewportProjectionMode<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n mode: EditorViewportProjectionMode,\n): boolean {\n if (state.sceneCameraPreviewEnabled) {\n state.status = 'Viewport projection unavailable during Scene Camera preview';\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n state.statusDetails = 'Disable Scene Camera preview before switching editor viewport projection.';\n return true;\n }\n const nextMode = normalizeViewportProjectionMode(mode);\n const changed = state.sceneViewCamera?.setProjectionMode(nextMode) ?? false;\n if (!changed) return false;\n const cameraState = state.sceneViewCamera?.getState();\n state.viewportTools = {\n ...state.viewportTools,\n projectionMode: cameraState?.projectionMode ?? nextMode,\n };\n state.status = `Viewport projection: ${state.viewportTools.projectionMode}`;\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n requestEditorSceneFrame(state, 'viewport-projection-mode');\n return true;\n}\n\nfunction setViewportOverlaySettings<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n settings: Partial<EditorViewportOverlaySettings>,\n): boolean {\n state.viewportTools = {\n ...state.viewportTools,\n overlay: {\n ...state.viewportTools.overlay,\n bounds: settings.bounds ?? state.viewportTools.overlay.bounds,\n dimensions: settings.dimensions ?? state.viewportTools.overlay.dimensions,\n edgeLengths: settings.edgeLengths ?? state.viewportTools.overlay.edgeLengths,\n anchor: settings.anchor ?? state.viewportTools.overlay.anchor,\n },\n };\n state.status = 'Viewport overlay settings updated';\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n return true;\n}\n\nfunction setMarkerViewportVisibility<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n visible: boolean,\n): boolean {\n const nextVisible = visible !== false;\n if ((state.viewportTools.markersVisible ?? true) === nextVisible) return false;\n state.viewportTools = {\n ...state.viewportTools,\n markersVisible: nextVisible,\n };\n state.status = nextVisible ? 'Marker view shown' : 'Marker view hidden';\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = nextVisible\n ? 'Marker overlays and relation lines are visible in the editor viewport.'\n : 'Marker overlays and relation lines are temporarily hidden in the editor viewport.';\n state.editorStateRevision += 1;\n syncCurrentSelectionToSceneArtifacts(state, options, 'marker-viewport-visibility', state.editorStateRevision);\n requestEditorSceneFrame(state, 'marker-viewport-visibility');\n return true;\n}\n\nfunction setViewportUtilityTool<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n tool: EditorViewportUtilityTool,\n): boolean {\n const nextTool = tool === 'measure-distance' ? 'measure-distance' : 'none';\n state.viewportTools = {\n ...state.viewportTools,\n activeUtilityTool: nextTool,\n };\n if (nextTool === 'measure-distance') {\n state.viewportMeasurement = {\n ...cloneViewportMeasurement(state.viewportMeasurement),\n active: !!state.viewportMeasurement.start && !state.viewportMeasurement.end,\n };\n state.status = 'Measure distance: pick first XZ ground point';\n } else {\n const unfinishedMeasurement = state.viewportMeasurement.active\n || (!!state.viewportMeasurement.start && !state.viewportMeasurement.end);\n state.viewportMeasurement = unfinishedMeasurement\n ? state.sceneViewMeasurement?.clear() ?? createEmptyViewportMeasurement()\n : {\n ...cloneViewportMeasurement(state.viewportMeasurement),\n active: false,\n preview: null,\n screenPreview: null,\n };\n state.status = 'Viewport utility: none';\n }\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n requestEditorSceneFrame(state, 'viewport-utility-tool');\n return true;\n}\n\nfunction clearViewportMeasurement<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): boolean {\n state.viewportMeasurement = state.sceneViewMeasurement?.clear() ?? createEmptyViewportMeasurement();\n state.viewportTools = {\n ...state.viewportTools,\n activeUtilityTool: 'none',\n };\n state.status = 'Measurement cleared';\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n requestEditorSceneFrame(state, 'viewport-measurement-clear');\n return true;\n}\n\nexport function applyLocalEditorHarnessViewportMeasurementPointerStart(\n state: LocalEditorHarnessViewportMeasurementState,\n event: Pick<PointerEvent, 'clientX' | 'clientY'>,\n): boolean {\n if (state.viewportTools.activeUtilityTool !== 'measure-distance') return false;\n if (!state.viewportMeasurement.start || state.viewportMeasurement.end) {\n const next = state.sceneViewMeasurement?.beginAt(event.clientX, event.clientY) ?? null;\n if (!next) return false;\n state.viewportMeasurement = next;\n state.status = 'Measure distance: pick second XZ ground point';\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n return true;\n }\n const next = state.sceneViewMeasurement?.completeAt(event.clientX, event.clientY) ?? null;\n if (!next) return false;\n state.viewportMeasurement = next;\n state.viewportTools = {\n ...state.viewportTools,\n activeUtilityTool: 'none',\n };\n state.status = `Measured distance: ${formatViewportMeasurementDistance(next.distance)} units`;\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = next.start && next.end\n ? `A (${formatViewportMeasurementDistance(next.start.x)}, ${formatViewportMeasurementDistance(next.start.z)}) · B (${formatViewportMeasurementDistance(next.end.x)}, ${formatViewportMeasurementDistance(next.end.z)})`\n : '';\n return true;\n}\n\nexport function applyLocalEditorHarnessViewportMeasurementPointerMove(\n state: LocalEditorHarnessViewportMeasurementState,\n event: Pick<PointerEvent, 'clientX' | 'clientY'>,\n): boolean {\n if (state.viewportTools.activeUtilityTool !== 'measure-distance') return false;\n const next = state.sceneViewMeasurement?.previewAt(event.clientX, event.clientY) ?? null;\n if (!next) return false;\n state.viewportMeasurement = next;\n return true;\n}\n\nexport function applyLocalEditorHarnessViewportMeasurementPointerEnd(\n _state: LocalEditorHarnessViewportMeasurementState,\n): boolean {\n return false;\n}\n\nfunction handleViewportMeasurementStart<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n event: PointerEvent,\n): boolean {\n return applyLocalEditorHarnessViewportMeasurementPointerStart(state, event);\n}\n\nfunction handleViewportMeasurementMove<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n event: PointerEvent,\n): boolean {\n return applyLocalEditorHarnessViewportMeasurementPointerMove(state, event);\n}\n\nfunction handleViewportMeasurementEnd<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): boolean {\n return applyLocalEditorHarnessViewportMeasurementPointerEnd(state);\n}\n\nfunction formatViewportMeasurementDistance(value: number | null | undefined): string {\n if (!Number.isFinite(value)) return '0';\n const rounded = Math.abs(value as number) < 0.005 ? 0 : value as number;\n return rounded.toFixed(2).replace(/\\.?0+$/, '');\n}\n\nfunction resolveViewportPresetTarget<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): EditorTransformVec3 | null {\n const selection = getCurrentPreviewSelection(state, options);\n const activeId = selection.activeId;\n if (!activeId || selection.selectedIds.length !== 1) return null;\n const bounds = state.projection?.getSelectionBounds([activeId]) ?? null;\n return bounds?.center ?? null;\n}\n\nfunction resolveViewportPresetRadius<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): number | undefined {\n const selection = getCurrentPreviewSelection(state, options);\n const activeId = selection.activeId;\n if (!activeId || selection.selectedIds.length !== 1) return undefined;\n const bounds = state.projection?.getSelectionBounds([activeId]) ?? null;\n if (!bounds) return undefined;\n const size = bounds.size;\n const radius = Math.hypot(size.x, size.y, size.z);\n return Number.isFinite(radius) && radius > 0 ? Math.max(radius * 1.5, 2) : undefined;\n}\n\nfunction validateTransformActionSelection<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n action: EditorTransformAction,\n): { ok: true } | { ok: false; message: string } {\n const selection = state.session?.getState().selection;\n const selectedCount = selection?.selectedIds.length ?? 0;\n if (action.startsWith('align-')) {\n return selectedCount >= 2 && selection?.activeId\n ? { ok: true }\n : { ok: false, message: 'Align needs at least 2 selected objects and an active object' };\n }\n return selectedCount >= 3\n ? { ok: true }\n : { ok: false, message: 'Distribute needs at least 3 selected objects' };\n}\n\nasync function createEditorWorld<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n renderUi: () => void,\n renderPreviewUi: (preview: LocalEditorHarnessUiPreviewState<TDocument>) => void,\n updateSceneFrameStats: (stats: LocalEditorSceneRenderStats | null) => void,\n updatePerformanceStats: (stats: LocalEditorBrowserPerformanceStats | null) => void,\n getPrefabComparisonPreviewSurfaces: () => LocalEditorHarnessPrefabComparisonPreviewSurface[],\n): Promise<void> {\n disposeEditorWorld(state);\n const render = (reason = 'editor-world-update'): void => {\n renderUi();\n requestEditorSceneFrame(state, reason);\n };\n const preview = (reason: string): void => {\n requestEditorPreviewFrame(state, options, renderPreviewUi, reason);\n };\n const canvas = options.worldAdapter.getCanvas();\n if (!canvas) throw new Error('Editor canvas not found');\n const babylon = await options.worldAdapter.loadBabylon();\n state.babylon = babylon;\n const engine = options.worldAdapter.createEngine(babylon, canvas);\n state.engine = engine;\n const document = state.session?.getState().workingDocument;\n const initialAppearance = resolveEffectiveLocalEditorWorldAppearance(state, options, document);\n const initialAppearanceKey = serializeLocalEditorWorldAppearance(initialAppearance);\n const initialRendering = resolveEffectiveLocalEditorWorldRendering(state, options, document);\n const initialRenderingKey = serializeLocalEditorWorldRendering(initialRendering);\n const world = createBabylonEditorWorld({\n engine,\n canvas,\n babylon,\n cameraTarget: options.world?.cameraTarget,\n cameraRadius: options.world?.cameraRadius,\n clearColor: initialAppearance.clearColor,\n sky: initialAppearance.sky,\n useRightHandedSystem: options.world?.useRightHandedSystem,\n enableDefaultCameraControls: false,\n });\n state.world = world;\n const performanceMonitor = createBabylonEditorPerformanceMonitor(world.scene);\n state.performanceMonitor = performanceMonitor;\n const sceneRenderScheduler = createLocalEditorSceneRenderScheduler((frame) => {\n state.sceneViewInteraction?.updateFrame(frame);\n syncPrefabComparisonPreviewSurfaces(state, { getPrefabComparisonPreviewSurfaces });\n state.prefabComparisonPreview?.prepareFrame();\n world.render();\n }, {\n onStatsChange(stats) {\n state.sceneFrameStats = stats;\n updateSceneFrameStats(stats);\n updateLocalEditorPerformanceStats(state, updatePerformanceStats);\n },\n });\n state.sceneRenderScheduler = sceneRenderScheduler;\n const viewportRenderCoordinator = createLocalEditorViewportRenderCoordinator({\n scheduler: sceneRenderScheduler,\n getEngine: () => engine,\n getScene: () => world.scene,\n });\n state.viewportRenderCoordinator = viewportRenderCoordinator;\n const sceneViewInteraction = createLocalEditorSceneViewInteractionRuntime({\n coordinator: viewportRenderCoordinator,\n getCamera: () => state.sceneViewCamera,\n });\n state.sceneViewInteraction = sceneViewInteraction;\n const grid = options.createGrid?.(babylon, world.scene, world.camera, {\n getCamera: () => world.scene?.activeCamera ?? world.camera ?? null,\n getEditorCamera: () => world.camera ?? null,\n }) ?? null;\n state.grid = grid;\n if (initialAppearance.grid) grid?.setColors(initialAppearance.grid);\n grid?.setVisible(state.gridVisible);\n const projection = createBabylonEditorProjection({\n babylon,\n scene: world.scene,\n importModel: options.worldAdapter.importProjectionModel,\n resolveTextureUrl: options.worldAdapter.resolveMaterialTextureUrl,\n selectionEdgesPrewarm: options.world?.selectionEdgesPrewarm,\n logger: createLocalEditorProjectionLogger(),\n onMaterialProfileDiagnostic(diagnostic) {\n recordLocalEditorMaterialProfileDiagnostic(state, diagnostic);\n },\n onProjectionReady(event) {\n if (state.prefabStage) {\n syncPrefabStageSelectionToProjection(state, options, `prefab-stage-projection-${event.nodeId}-ready-selection`);\n focusPrefabStagePreviewProjection(state, `prefab-stage-projection-${event.nodeId}-ready-focus`);\n scheduleProjectionShadowPreviewRebuild(state, `prefab-stage-projection-${event.nodeId}-ready-shadow`);\n viewportRenderCoordinator.invalidateScene(`prefab-stage-projection-${event.nodeId}-ready`);\n renderUi();\n return;\n }\n syncCurrentSelectionToSceneArtifacts(state, options, `projection-${event.nodeId}-ready-selection`);\n scheduleProjectionShadowPreviewRebuild(state, `projection-${event.nodeId}-ready-shadow`);\n viewportRenderCoordinator.invalidateScene(`projection-${event.nodeId}-ready`);\n },\n onProjectionBatchSettled(event) {\n if (state.prefabStage) {\n syncPrefabStageSelectionToProjection(state, options, `prefab-stage-projection-batch-${event.batchId}-settled-selection`);\n focusPrefabStagePreviewProjection(state, `prefab-stage-projection-batch-${event.batchId}-settled-focus`);\n scheduleProjectionShadowPreviewRebuild(state, `prefab-stage-projection-batch-${event.batchId}-settled`);\n renderUi();\n return;\n }\n syncCurrentSelectionToSceneArtifacts(state, options, `projection-batch-${event.batchId}-settled-selection`);\n scheduleProjectionShadowPreviewRebuild(state, `projection-batch-${event.batchId}-settled`);\n },\n });\n state.projection = projection;\n const prefabComparisonPreview = createBabylonPrefabComparisonPreviewController({\n babylon,\n scene: world.scene,\n editorCamera: world.camera,\n projection,\n getSkyBackdrop: () => world.skyBackdrop,\n });\n state.prefabComparisonPreview = prefabComparisonPreview;\n const markerOverlay = createBabylonEditorMarkerOverlayController({\n babylon,\n scene: world.scene,\n });\n state.markerOverlay = markerOverlay;\n const markerAwareProjection = createBabylonMarkerOverlayProjectionAdapter(projection, markerOverlay);\n state.projection = markerAwareProjection;\n const gizmo = createBabylonTransformGizmoController({\n babylon,\n scene: world.scene,\n projection: markerAwareProjection,\n initialTool: state.transformTool,\n initialSpace: state.transformSpace,\n documentCapabilities: options.transformDocumentCapabilities,\n logger: console,\n onDragStart(event) {\n sceneViewInteraction.beginGizmoDrag();\n const policyStatus = toTransformOperationPolicyStatusLabel(event.operationPolicy);\n state.status = policyStatus || (event.targetIds.length > 1\n ? `Dragging ${event.duplicate ? 'duplicate ' : ''}${event.tool} ${event.targetIds.length} objects`\n : `Dragging ${event.duplicate ? 'duplicate ' : ''}${event.tool} ${event.nodeId ?? event.activeId ?? 'selection'}`);\n state.statusTone = policyStatus ? 'warning' : 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n render();\n },\n onDragUpdate(event) {\n updateActiveTransformPreview(state, event);\n syncMarkerOverlayToSceneArtifacts(\n state,\n options,\n state.session?.getState().selection ?? { selectedIds: [], activeId: null },\n );\n state.gizmo?.refreshSelection();\n preview('gizmo-drag-update');\n },\n onDragEnd(event) {\n sceneViewInteraction.endGizmoDrag();\n clearActiveTransformPreview(state);\n const changed = commitGizmoTransform(state, options, event);\n if (!changed) requestEditorSceneFrame(state, 'gizmo-drag-end');\n renderUi();\n },\n onDragCancel(event) {\n sceneViewInteraction.endGizmoDrag();\n clearActiveTransformPreview(state);\n if (event.duplicate && cancelDuplicateDrag(state, options)) {\n render();\n return;\n }\n state.status = event.targetIds.length > 1\n ? `Canceled ${event.tool} ${event.targetIds.length} objects`\n : `Canceled ${event.tool} ${event.nodeId ?? event.activeId ?? 'selection'}`;\n render();\n },\n onDragBlocked(event) {\n sceneViewInteraction.endGizmoDrag();\n clearActiveTransformPreview(state);\n if (event.duplicate) cancelDuplicateDrag(state, options);\n requestEditorSceneFrame(state, 'gizmo-drag-blocked');\n state.status = formatBlockedGizmoTransformStatus(event);\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n renderUi();\n },\n onDuplicateDragStart(input) {\n if (state.prefabStage) {\n state.status = 'Duplicate drag is not available in Prefab Stage';\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n state.statusDetails = 'Use prefab.node.createFromAsset or prefab.node.createPrimitive to add prefab nodes.';\n renderUi();\n return null;\n }\n return beginDuplicateDrag(state, options, input);\n },\n });\n state.gizmo = gizmo;\n gizmo.setOperationSettings(getScopedTransformOperationSettings(state));\n gizmo.setConstraint(state.transformConstraint);\n const selectionController = createBabylonProjectionSelectionController({\n scene: world.scene,\n canvas,\n projection: markerAwareProjection,\n getTool: () => state.transformTool,\n getSelection: () => state.prefabStage\n ? getCurrentPrefabStageProjectionSelection(state, options)\n : state.session?.getSelection() ?? EMPTY_EDITOR_SELECTION,\n isSelectable: (nodeId) => state.prefabStage\n ? isPrefabStageProjectionSelectable(state, options, nodeId)\n : isDocumentNodeSelectable(state, options, nodeId),\n isLocked: (nodeId) => state.prefabStage\n ? !isPrefabStageProjectionSelectable(state, options, nodeId)\n : isDocumentNodeLocked(state, options, nodeId),\n isOperationBlocked: () => state.gizmo?.getState().dragPhase === 'dragging',\n onSelectionCommand(command) {\n if (state.prefabStage) {\n if (dispatchPrefabStageProjectionSelectionCommand(state, options, command)) render();\n return;\n }\n dispatchSelectionCommand(state, options, command, render);\n },\n onFocusIntent(nodeId) {\n if (state.prefabStage) {\n if (focusPrefabStageProjectionNode(state, options, nodeId, 'prefab-stage-preview-focus-intent')) render();\n return;\n }\n if (focusProjectionNode(state, nodeId)) render();\n },\n onBoxSelectionChange(box) {\n state.boxSelection = box;\n preview('viewport-box-selection-preview');\n },\n });\n state.selectionController = selectionController;\n const sceneViewMeasurement = createBabylonSceneViewMeasurementController({\n babylon,\n scene: world.scene,\n });\n state.sceneViewMeasurement = sceneViewMeasurement;\n const sceneViewInput = createBabylonSceneViewInputController({\n canvas,\n isEnabled: () => state.mode === 'editor',\n isGizmoDragCandidate: (event) => gizmo.isGizmoDragCandidate(event),\n isBoxSelectCandidate: (event) => selectionController.isBoxSelectionCandidate(event),\n isViewPlaneMoveCandidate: (event) => gizmo.isViewPlaneMoveCandidate(event),\n isPlacementCandidate: () => !state.prefabStage && isPlacementArmed(state),\n isMeasurementCandidate: () => state.viewportTools.activeUtilityTool === 'measure-distance',\n onPointerIntentStart(event) {\n sceneViewInteraction.beginPointerIntent(event.state.intent);\n if (event.state.intent === 'measurement') {\n if (handleViewportMeasurementStart(state, event.originalEvent)) render();\n return;\n }\n if (event.state.intent === 'gizmo-drag') {\n gizmo.preparePointerDrag(event.originalEvent);\n return;\n }\n if (event.state.intent === 'placement') {\n if (previewArmedPlacement(state, event.originalEvent)) render();\n return;\n }\n if (event.state.intent === 'view-plane-move') {\n if (gizmo.beginViewPlaneMove(event.originalEvent)) render();\n return;\n }\n if (event.state.intent === 'selection-click' || event.state.intent === 'box-select') {\n selectionController.beginPointerSelection(event.originalEvent);\n requestEditorSceneFrame(state, 'viewport-pointer-selection-start');\n }\n },\n onPointerIntentMove(event) {\n if (event.state.intent === 'measurement') {\n if (handleViewportMeasurementMove(state, event.originalEvent)) preview('viewport-measurement-preview');\n return;\n }\n if (event.state.intent === 'placement') {\n if (previewArmedPlacement(state, event.originalEvent)) preview('placement-preview');\n return;\n }\n if (event.state.intent === 'view-plane-move') {\n if (gizmo.updateViewPlaneMove(event.originalEvent)) preview('view-plane-move-update');\n return;\n }\n if (!state.sceneCameraPreviewEnabled && state.sceneViewCamera?.handlePointerIntentMove(event)) {\n preview('viewport-camera-pointer-move');\n return;\n }\n if (event.state.intent === 'selection-click' || event.state.intent === 'box-select') {\n selectionController.updatePointerSelection(event.originalEvent, event.state.intent);\n preview('viewport-pointer-selection-update');\n }\n },\n onPointerIntentEnd(event) {\n sceneViewInteraction.endPointerIntent(event.state.intent);\n if (event.state.intent === 'measurement') {\n if (handleViewportMeasurementEnd(state)) render();\n return;\n }\n if (event.state.intent === 'placement') {\n if (commitArmedPlacement(state, options, event.originalEvent)) render();\n return;\n }\n if (event.state.intent === 'view-plane-move') {\n if (gizmo.endViewPlaneMove(event.originalEvent)) render();\n return;\n }\n if (event.state.intent === 'selection-click' || event.state.intent === 'box-select') {\n selectionController.endPointerSelection(event.originalEvent, event.state.intent);\n requestEditorSceneFrame(state, 'viewport-pointer-selection-end');\n }\n },\n onPointerIntentCancel(event) {\n sceneViewInteraction.cancelPointerIntent(event.state.intent);\n if (event.state.intent === 'measurement') {\n render();\n return;\n }\n if (event.state.intent === 'placement') {\n state.gizmo?.setPlacementMarker(null);\n render();\n return;\n }\n if (event.state.intent === 'view-plane-move') {\n gizmo.cancelDrag();\n render();\n return;\n }\n if (event.state.intent === 'selection-click' || event.state.intent === 'box-select') {\n selectionController.cancelBoxSelection();\n render();\n }\n },\n onDoubleClick(event) {\n selectionController.handleDoubleClick(event);\n },\n onWheel(event) {\n if (!state.sceneCameraPreviewEnabled && state.sceneViewCamera?.handleWheel(event)) {\n preview('viewport-camera-wheel');\n }\n },\n onMovementKeysChange(event) {\n sceneViewInteraction.updateMovementKeys(event.pressedMovementKeys);\n renderUi();\n },\n });\n state.sceneViewInput = sceneViewInput;\n const sceneViewCamera = createBabylonSceneViewCameraController({\n babylon,\n scene: world.scene,\n camera: world.camera,\n input: sceneViewInput,\n });\n state.sceneViewCamera = sceneViewCamera;\n const sceneCameraPreview = createBabylonSceneCameraPreviewController({\n babylon,\n scene: world.scene,\n editorCamera: world.camera,\n });\n state.sceneCameraPreview = sceneCameraPreview;\n const sceneViewSpatialOverlay = createBabylonSceneViewSpatialOverlayController({\n babylon,\n scene: world.scene,\n });\n state.sceneViewSpatialOverlay = sceneViewSpatialOverlay;\n const shadowPreview = createBabylonEditorShadowPreviewController({\n scene: world.scene,\n projection,\n options: initialRendering.shadowPreview,\n onStaticProjectedShadowTextureReady(event) {\n viewportRenderCoordinator.invalidateScene(`static-shadow-texture-ready-${event.chunkId}`);\n },\n });\n state.shadowPreview = shadowPreview;\n const environmentTexture = createBabylonEnvironmentTextureController(\n world.scene as any,\n initialRendering.environment ?? null,\n );\n state.environmentTexture = environmentTexture;\n world.refreshSkyBackdrop();\n const postProcess = createBabylonDefaultPostProcessPipelineController(\n world.scene as any,\n [world.camera as any],\n initialRendering.postProcess ?? null,\n { name: 'editorDefaultPostProcessPipeline' },\n );\n state.postProcess = postProcess;\n const resize = () => {\n engine.resize?.();\n viewportRenderCoordinator.requestFrame('resize');\n };\n window.addEventListener('resize', resize);\n state.resizeHandler = resize;\n state.sceneFrameStats = sceneRenderScheduler.getStats();\n updateLocalEditorPerformanceStats(state, updatePerformanceStats);\n state.worldAppearanceKey = initialAppearanceKey;\n state.worldRenderingKey = initialRenderingKey;\n\n if (document) {\n projection.projectNodes(resolveCurrentEditorProjectionNodes(state, options, document));\n applyPreviewVisibilityStateToProjection(state);\n scheduleProjectionShadowPreviewRebuild(state, 'editor-world-initial-projection-shadow');\n }\n syncCurrentSelectionToSceneArtifacts(state, options, 'editor-world-initial-selection');\n viewportRenderCoordinator.requestFrame('editor-world-created');\n}\n\nfunction disposeEditorWorld<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): void {\n const run = (operation: () => void): void => {\n try { operation(); }\n catch (cause) {\n const error = new Error('Local Editor world cleanup failed.') as Error & { cause: unknown };\n error.cause = cause;\n throw error;\n }\n };\n const disposeField = <T extends { dispose(): void }>(\n read: () => T | null | undefined,\n clear: () => void,\n ): void => run(() => {\n read()?.dispose();\n clear();\n });\n\n run(() => clearPrefabStageForEditorTeardown(state));\n state.activeTransformPreview = null;\n disposeField(() => state.sceneViewInteraction, () => { state.sceneViewInteraction = null; });\n if (state.resizeHandler) {\n run(() => {\n window.removeEventListener('resize', state.resizeHandler!);\n state.resizeHandler = null;\n });\n }\n disposeField(() => state.sceneCameraPreview, () => { state.sceneCameraPreview = null; });\n state.sceneCameraPreviewEnabled = false;\n disposeField(() => state.sceneViewCamera, () => { state.sceneViewCamera = null; });\n disposeField(() => state.sceneViewMeasurement, () => { state.sceneViewMeasurement = null; });\n disposeField(() => state.sceneViewSpatialOverlay, () => { state.sceneViewSpatialOverlay = null; });\n disposeField(() => state.sceneViewInput, () => { state.sceneViewInput = null; });\n disposeField(() => state.selectionController, () => { state.selectionController = null; });\n disposeField(() => state.prefabComparisonPreview, () => { state.prefabComparisonPreview = null; });\n if (state.markerRelationHighlightContinuous) {\n run(() => {\n state.viewportRenderCoordinator?.endContinuous(MARKER_RELATION_HIGHLIGHT_RENDER_REASON);\n state.markerRelationHighlightContinuous = false;\n });\n }\n if (state.performanceMonitorOpen) {\n run(() => state.viewportRenderCoordinator?.endContinuous(LOCAL_EDITOR_PERFORMANCE_MONITOR_REASON));\n }\n state.performanceMonitorOpen = false;\n disposeField(() => state.performanceMonitor, () => { state.performanceMonitor = null; });\n state.performanceStats = null;\n state.performanceObjectCount = null;\n disposeField(() => state.viewportRenderCoordinator, () => { state.viewportRenderCoordinator = null; });\n disposeField(() => state.sceneRenderScheduler, () => { state.sceneRenderScheduler = null; });\n state.sceneFrameStats = null;\n state.boxSelection = null;\n state.viewportSpatialOverlay = createEmptyEditorViewportSpatialOverlayState();\n state.viewportMeasurement = createEmptyViewportMeasurement();\n state.viewportTools = {\n ...state.viewportTools,\n activeUtilityTool: 'none',\n };\n disposeField(() => state.gizmo, () => { state.gizmo = null; });\n disposeField(() => state.markerOverlay, () => { state.markerOverlay = null; });\n if (state.projectionShadowPreviewRebuildFrame !== null) {\n run(() => {\n window.cancelAnimationFrame(state.projectionShadowPreviewRebuildFrame!);\n state.projectionShadowPreviewRebuildFrame = null;\n });\n }\n if (state.projectionShadowPreviewRefreshFrame !== null) {\n run(() => {\n window.cancelAnimationFrame(state.projectionShadowPreviewRefreshFrame!);\n state.projectionShadowPreviewRefreshFrame = null;\n });\n }\n disposeField(() => state.shadowPreview, () => { state.shadowPreview = null; });\n disposeField(() => state.environmentTexture, () => { state.environmentTexture = null; });\n disposeField(() => state.postProcess, () => { state.postProcess = null; });\n disposeField(() => state.projection, () => { state.projection = null; });\n disposeField(() => state.grid, () => { state.grid = null; });\n run(() => state.engine?.stopRenderLoop?.());\n disposeField(() => state.world, () => { state.world = null; });\n run(() => {\n state.engine?.dispose?.();\n state.engine = null;\n });\n state.babylon = null;\n}\n\nfunction clearPrefabStageForEditorTeardown<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): void {\n const stage = state.prefabStage;\n if (!stage) return;\n state.prefabStage = null;\n setGridVisibleForEditorContext(state, stage.restoreGridVisible, 'prefab-stage-editor-teardown-grid');\n state.sceneCameraPreviewEnabled = stage.restoreSceneCameraPreviewEnabled;\n if (!stage.restoreSceneCameraPreviewEnabled) state.sceneCameraPreview?.setActive(false);\n}\n\nasync function waitForEditorProjectionIdleBeforeRunGame<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): Promise<void> {\n const projection = state.projection;\n if (!projection) return;\n const timeout = createTimeoutPromise(EDITOR_PROJECTION_IDLE_BEFORE_RUN_GAME_TIMEOUT_MS);\n try {\n await Promise.race([\n projection.waitForIdle().catch(() => null),\n timeout.promise,\n ]);\n } finally {\n timeout.cancel();\n }\n}\n\nasync function waitForEditorWorldDisposeBoundary(): Promise<void> {\n await waitForEditorAnimationFrame();\n await waitForEditorAnimationFrame();\n await waitForEditorTimeout(EDITOR_WORLD_DISPOSE_BOUNDARY_DELAY_MS);\n}\n\nfunction waitForEditorAnimationFrame(): Promise<void> {\n if (typeof window === 'undefined' || typeof window.requestAnimationFrame !== 'function') {\n return Promise.resolve();\n }\n return new Promise(resolve => {\n window.requestAnimationFrame(() => resolve());\n });\n}\n\nfunction waitForEditorTimeout(milliseconds: number): Promise<void> {\n if (typeof window === 'undefined' || typeof window.setTimeout !== 'function') {\n return Promise.resolve();\n }\n return new Promise(resolve => {\n window.setTimeout(() => resolve(), milliseconds);\n });\n}\n\nfunction createTimeoutPromise(milliseconds: number): { promise: Promise<void>; cancel: () => void } {\n if (typeof window === 'undefined' || typeof window.setTimeout !== 'function') {\n return { promise: new Promise(() => undefined), cancel: () => undefined };\n }\n let timeoutId: number | null = null;\n const promise = new Promise<void>(resolve => {\n timeoutId = window.setTimeout(() => {\n timeoutId = null;\n resolve();\n }, milliseconds);\n });\n return {\n promise,\n cancel() {\n if (timeoutId === null) return;\n window.clearTimeout(timeoutId);\n timeoutId = null;\n },\n };\n}\n\nfunction requestEditorSceneFrame<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n reason: string,\n): void {\n state.viewportRenderCoordinator?.requestFrame(reason);\n}\n\nfunction requestEditorPreviewFrame<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n renderPreviewUi: (preview: LocalEditorHarnessUiPreviewState<TDocument>) => void,\n reason: string,\n): void {\n syncViewportCameraState(state);\n syncViewportMeasurementState(state);\n syncViewportSpatialOverlay(state, options);\n renderPreviewUi(createUiPreviewState(state, options));\n requestEditorSceneFrame(state, reason);\n}\n\nfunction syncPrefabComparisonPreviewSurfaces<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n ui: { getPrefabComparisonPreviewSurfaces?: () => LocalEditorHarnessPrefabComparisonPreviewSurface[] },\n): void {\n const controller = state.prefabComparisonPreview;\n if (!controller) return;\n if (!state.prefabStage) {\n if (controller.clear()) requestEditorSceneFrame(state, 'prefab-comparison-preview-clear');\n return;\n }\n const surfaces = ui.getPrefabComparisonPreviewSurfaces?.() ?? [];\n const changed = controller.sync(surfaces.map(toBabylonPrefabComparisonPreviewSurface));\n if (changed) requestEditorSceneFrame(state, 'prefab-comparison-preview-sync');\n}\n\nfunction toBabylonPrefabComparisonPreviewSurface(\n surface: LocalEditorHarnessPrefabComparisonPreviewSurface,\n) {\n return {\n previewId: surface.previewId,\n projectionNodeId: surface.projectionNodeId,\n rect: surface.rect,\n };\n}\n\nfunction updateActiveTransformPreview<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n event: BabylonTransformGizmoDragEvent & { current: EditorTransformSnapshot },\n): void {\n const activeId = event.activeId ?? event.nodeId ?? event.targetIds[0] ?? null;\n if (!activeId) {\n state.activeTransformPreview = null;\n return;\n }\n state.activeTransformPreview = {\n targetIds: [...event.targetIds],\n activeId,\n transforms: {\n [activeId]: cloneEditorTransformSnapshot(event.current),\n },\n };\n}\n\nfunction clearActiveTransformPreview<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): void {\n state.activeTransformPreview = null;\n}\n\nfunction scheduleProjectionShadowPreviewRebuild<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n reason: string,\n): void {\n if (state.projectionShadowPreviewRebuildFrame !== null) {\n window.cancelAnimationFrame(state.projectionShadowPreviewRebuildFrame);\n }\n state.projectionShadowPreviewRebuildFrame = window.requestAnimationFrame(() => {\n state.projectionShadowPreviewRebuildFrame = null;\n state.shadowPreview?.rebuild();\n state.viewportRenderCoordinator?.invalidateScene(reason);\n });\n}\n\nfunction scheduleProjectionShadowPreviewRefresh<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n reason: string,\n): void {\n if (typeof window === 'undefined' || typeof window.requestAnimationFrame !== 'function') {\n state.shadowPreview?.refresh();\n state.viewportRenderCoordinator?.invalidateScene(reason);\n return;\n }\n if (state.projectionShadowPreviewRefreshFrame !== null) {\n window.cancelAnimationFrame(state.projectionShadowPreviewRefreshFrame);\n }\n state.projectionShadowPreviewRefreshFrame = window.requestAnimationFrame(() => {\n state.projectionShadowPreviewRefreshFrame = null;\n state.shadowPreview?.refresh();\n state.viewportRenderCoordinator?.invalidateScene(reason);\n });\n}\n\nasync function runExclusive<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n render: () => void,\n action: () => Promise<unknown>,\n): Promise<void> {\n if (state.busy) return;\n try {\n await runExclusiveResult(state, render, action);\n } catch (error) {\n state.status = error instanceof Error ? error.message : String(error);\n state.statusTone = 'error';\n state.statusToneStatus = state.status;\n state.statusDetails = state.status;\n console.error('[LocalEditorHarness] action failed', error);\n render();\n }\n}\n\nasync function runExclusiveResult<TDocument, TPatch, TAsset, TResult>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n render: () => void,\n action: () => Promise<TResult>,\n): Promise<TResult> {\n if (state.busy) throw new Error('Local editor host is busy.');\n state.busy = true;\n render();\n try {\n return await action();\n } finally {\n state.busy = false;\n render();\n }\n}\n\nfunction selectItem<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: LocalEditorBrowserHierarchySelectionInput,\n renderUi?: () => void,\n): boolean {\n if (state.mode !== 'editor') return false;\n if (!isDocumentNodeSelectable(state, options, input.id)) return false;\n const selection = state.session?.getState({ cloneDocuments: false }).selection ?? { selectedIds: [], activeId: null };\n const command = resolveEditorSelectionCommand({\n selection,\n targetIds: [input.id],\n activeId: input.id,\n gesture: 'click',\n modifier: input.toggle ? 'toggle' : input.additive ? 'additive' : 'replace',\n });\n if (!command) return false;\n return dispatchSelectionCommand(state, options, command, renderUi);\n}\n\nfunction createBrowserHierarchyContextActions<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): LocalEditorBrowserHierarchyContextActionRegistration<TDocument>[] {\n return createHierarchyContextActionRegistrations(state, options).map((registration) => ({\n id: registration.id,\n label: registration.label,\n shortcut: registration.shortcut,\n danger: registration.danger,\n placement: registration.placement,\n separatorBefore: registration.separatorBefore,\n children: (browserContext: LocalEditorBrowserHierarchyContextActionContext<TDocument>) => {\n const context = createHarnessHierarchyContextActionContext(state, options, browserContext);\n if (!context) return [];\n const children = typeof registration.children === 'function'\n ? registration.children(context)\n : registration.children ?? [];\n return children.map(child => ({\n id: child.id,\n label: child.label,\n shortcut: child.shortcut,\n danger: child.danger,\n disabled: () => child.disabled?.(context) ?? false,\n payload: () => child.payload?.(context),\n }));\n },\n visible: (browserContext) => {\n const context = createHarnessHierarchyContextActionContext(state, options, browserContext);\n if (!context) return false;\n return registration.visible?.(context) ?? true;\n },\n disabled: (browserContext) => {\n const context = createHarnessHierarchyContextActionContext(state, options, browserContext);\n if (!context) return 'No editable document is loaded.';\n return registration.disabled?.(context) ?? false;\n },\n }));\n}\n\nfunction createHierarchyContextActionRegistrations<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): LocalEditorHarnessHierarchyContextActionRegistration<TDocument, TPatch>[] {\n const local = [\n createPrefabFromGameObjectHierarchyContextAction(state, options),\n ...(options.hierarchy?.contextActions ?? []),\n ];\n const plugins = createLocalEditorHarnessPluginHierarchyContextActions<TDocument, TPatch>(options.pluginHost);\n const localIds = new Set(local.map(action => action.id));\n const conflict = plugins.find(action => localIds.has(action.id));\n if (conflict) throw new Error(`Project and Plugin Hierarchy actions share id: ${conflict.id}`);\n return [...local, ...plugins];\n}\n\nfunction createPrefabFromGameObjectHierarchyContextAction<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): LocalEditorHarnessHierarchyContextActionRegistration<TDocument, TPatch> {\n return {\n id: 'asset.create-prefab-from-game-object',\n label: 'Create Prefab',\n placement: 'after-create',\n visible: (context) => (\n !state.prefabStage\n && !!options.documentAdapter.createAssetActionPatch\n && context.targetIds.length === 1\n && context.activeId === context.targetIds[0]\n && !!context.projectionNode?.asset\n ),\n disabled: (context) => {\n if (context.targetIds.length !== 1 || !context.activeId) return 'Select exactly one model-backed GameObject.';\n if (!context.projectionNode?.asset) return 'Only model-backed GameObjects can be converted to Prefab assets.';\n return false;\n },\n run: (context) => patchBrowserAssetAction(state, options, {\n actionId: 'asset.create-prefab-from-game-object',\n assetId: undefined,\n browserAssetId: undefined,\n assetKind: 'prefab',\n }, {\n activeId: context.activeId,\n selectedIds: context.targetIds,\n }),\n };\n}\n\nfunction createHarnessHierarchyContextActionContext<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n browserContext: LocalEditorBrowserHierarchyContextActionContext<TDocument>,\n payload?: Record<string, unknown>,\n): LocalEditorHarnessHierarchyContextActionContext<TDocument> | null {\n const document = state.session?.getState().workingDocument ?? null;\n if (!document) return null;\n const activeId = browserContext.activeId;\n return {\n document,\n contextNodeId: browserContext.contextNodeId,\n targetIds: browserContext.targetIds,\n activeId,\n hierarchyItem: browserContext.node,\n projectionNode: browserContext.contextNodeId\n ? options.documentAdapter.getProjectionNode(document, browserContext.contextNodeId)\n : null,\n hostServices: options.hostServices ?? null,\n payload,\n browserContext,\n };\n}\n\nfunction createBrowserContextForCustomAction<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n action: Extract<LocalEditorContextAction, { region: 'hierarchy'; action: 'custom' }>,\n): LocalEditorBrowserHierarchyContextActionContext<TDocument> | null {\n const document = state.session?.getState().workingDocument ?? null;\n if (!document) return null;\n const uiState = createUiState(state, options);\n const node = action.contextNodeId\n ? uiState.hierarchy.find(item => item.id === action.contextNodeId) ?? null\n : null;\n return {\n state: uiState,\n menuKind: node ? 'node' : 'blank',\n node,\n contextNodeId: action.contextNodeId,\n targetIds: action.targetIds,\n activeId: action.activeId,\n };\n}\n\nfunction runHierarchyCustomContextAction<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n action: Extract<LocalEditorContextAction, { region: 'hierarchy'; action: 'custom' }>,\n): boolean | Promise<boolean> {\n const browserContext = createBrowserContextForCustomAction(state, options, action);\n const context = browserContext\n ? createHarnessHierarchyContextActionContext(state, options, browserContext, action.payload)\n : null;\n if (!context) return false;\n const registration = createHierarchyContextActionRegistrations(state, options)\n .find(candidate => candidate.id === action.id);\n if (!registration) return false;\n try {\n const result = registration.run(context);\n if (isLocalEditorPromiseLike(result)) {\n return Promise.resolve(result)\n .then(value => applyHierarchyContextActionResult(state, options, value, registration.label))\n .catch(error => reportHierarchyContextActionError(state, registration.label, error));\n }\n return applyHierarchyContextActionResult(state, options, result, registration.label);\n } catch (error) {\n return reportHierarchyContextActionError(state, registration.label, error);\n }\n}\n\nfunction isLocalEditorPromiseLike<T>(value: T | Promise<T>): value is Promise<T> {\n return !!value && typeof (value as { then?: unknown }).then === 'function';\n}\n\nfunction applyHierarchyContextActionResult<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n result: boolean | void | LocalEditorHarnessPatchResult<TPatch>,\n label: string,\n): boolean {\n if (isLocalEditorHarnessPatchResult<TPatch>(result)) {\n return applyHierarchyContextActionPatch(state, options, result, label);\n }\n return result === true;\n}\n\nfunction reportHierarchyContextActionError<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n label: string,\n error: unknown,\n): true {\n const message = error instanceof Error ? error.message : String(error);\n state.status = `${label} failed`;\n state.statusTone = 'error';\n state.statusToneStatus = state.status;\n state.statusDetails = message;\n console.error('[LocalEditorHarness] hierarchy context action failed', error);\n return true;\n}\n\nfunction isLocalEditorHarnessPatchResult<TPatch>(value: unknown): value is LocalEditorHarnessPatchResult<TPatch> {\n return !!value\n && typeof value === 'object'\n && 'patch' in value;\n}\n\nfunction applyHierarchyContextActionPatch<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n patch: LocalEditorHarnessPatchResult<TPatch>,\n fallbackLabel: string,\n): boolean {\n const document = state.session?.getState().workingDocument;\n if (state.mode !== 'editor' || !state.session || !document) return false;\n cancelActiveOperation(state);\n const label = patch.label ?? fallbackLabel;\n const projectionImpact = resolveProjectionImpact(\n patch,\n patch.createdId\n ? createKnownCreatedReprojectProjectionImpact({\n createdNodeIds: [patch.createdId],\n reprojectIds: patch.reprojectIds,\n })\n : patch.reprojectIds?.length\n ? createReprojectProjectionImpact(patch.reprojectIds)\n : patch.changedIds?.length\n ? createReprojectProjectionImpact(patch.changedIds)\n : patch.changedId\n ? createReprojectProjectionImpact([patch.changedId])\n : undefined,\n );\n const result = state.session.dispatch({\n type: 'document.patch',\n label,\n patch: patch.patch,\n targetId: patch.createdId ?? patch.changedId ?? undefined,\n ...withProjectionImpact(projectionImpact),\n });\n if (!result.documentChanged) {\n state.status = `${label} unchanged`;\n return true;\n }\n const selectionId = patch.createdId ?? patch.changedId ?? null;\n let selection = result.selection;\n if (selectionId && isNodeSelectableInDocument(options, result.workingDocument, selectionId)) {\n selection = state.session.dispatch({\n type: 'selection.replace',\n selectedIds: [selectionId],\n activeId: selectionId,\n label: `Select ${selectionId}`,\n }).selection;\n }\n rebuildProjectionFromDocument(state, options, result.workingDocument, selection);\n state.summary = summarizeDocument(options, result.workingDocument, state.session.getSource());\n state.status = label;\n return true;\n}\n\nfunction handleContextAction<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n action: LocalEditorHarnessContextAction,\n): boolean {\n if (action.region !== 'hierarchy') return false;\n if (action.action === 'custom') return false;\n if (action.action === 'focus') {\n const activeId = action.activeId ?? action.targetIds[action.targetIds.length - 1] ?? null;\n const selectionChanged = activeId && !state.session?.getState({ cloneDocuments: false }).selection.selectedIds.includes(activeId)\n ? dispatchSelectionCommand(state, options, {\n type: 'selection.replace',\n selectedIds: [activeId],\n activeId,\n label: 'Select Context Target',\n })\n : false;\n return focusSelectedProjection(state, options) || selectionChanged;\n }\n if (action.action === 'rename') return false;\n if (action.action === 'create-group') {\n return createSceneGraphGroup(state, options, {\n parentId: action.parentId ?? null,\n activeId: action.activeId ?? null,\n name: 'Empty',\n });\n }\n if (action.action === 'create-primitive') {\n return createSceneGraphPrimitive(state, options, {\n parentId: action.parentId ?? null,\n activeId: action.activeId ?? null,\n shape: action.shape,\n name: action.name,\n });\n }\n if (action.action === 'create-marker') {\n return createSceneGraphMarker(state, options, {\n parentId: action.parentId ?? null,\n activeId: action.activeId ?? null,\n markerType: action.markerType,\n name: action.name,\n });\n }\n if (action.action === 'delete') {\n return deleteSceneGraphNodes(state, options, {\n ids: action.targetIds,\n activeId: action.activeId ?? null,\n });\n }\n if (action.action === 'duplicate') {\n return duplicateSceneGraphNodes(state, options, {\n targetIds: action.targetIds,\n activeId: action.activeId ?? null,\n });\n }\n if (action.action === 'paste') {\n return duplicateSceneGraphNodes(state, options, {\n targetIds: action.sourceIds,\n activeId: action.activeId ?? null,\n });\n }\n return false;\n}\n\nfunction dispatchSelectionCommand<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n command: SelectionCommand,\n renderUi?: () => void,\n): boolean {\n if (state.mode !== 'editor') return false;\n if (state.markerRelationPick) {\n return consumeMarkerRelationPickSelectionCommand(state, options, command, renderUi);\n }\n cancelActiveOperation(state);\n const session = state.session;\n if (!session) return false;\n const result = session.dispatch(command);\n const sanitized = sanitizeSelection(state, options, result.workingDocument, result.selection);\n const selection = sanitized ?? result.selection;\n const changed = result.selectionChanged || !!sanitized;\n if (!changed) return false;\n if (renderUi) {\n commitEditorStateChange(state, options, renderUi, 'selection-command', () => {}, {\n syncSelectionArtifacts: selection,\n });\n } else {\n state.editorStateRevision += 1;\n syncSelectionToProjection(state, options, selection, 'selection-command', state.editorStateRevision);\n }\n return true;\n}\n\nfunction consumeMarkerRelationPickSelectionCommand<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n command: SelectionCommand,\n renderUi?: () => void,\n): boolean {\n const pick = state.markerRelationPick;\n if (!pick?.active) return false;\n const document = state.session?.getState().workingDocument ?? null;\n const graph = document ? options.documentAdapter.getMarkerGraph?.(document) ?? null : null;\n if (!document || !graph) {\n updateMarkerRelationPickWarning(state, '当前文档没有 marker graph。');\n if (renderUi) renderUi();\n return true;\n }\n const hierarchy = options.documentAdapter.getHierarchyItems(document);\n const targetId = readMarkerRelationPickTargetId(command);\n if (!targetId) {\n updateMarkerRelationPickWarning(state, '没有拾取到有效端点,请点击标记或场景对象。');\n if (renderUi) renderUi();\n return true;\n }\n const endpoint = resolveMarkerRelationPickEndpoint(graph, hierarchy, targetId);\n if (!endpoint) {\n updateMarkerRelationPickWarning(state, `暂不支持的关系端点:${targetId}`);\n if (renderUi) renderUi();\n return true;\n }\n if (!pick.from) {\n const status = `关系拾取中:${formatMarkerRelationPickEndpointLabel(endpoint, graph, hierarchy)} 已作为起点,请点击终点。`;\n state.markerRelationPick = {\n ...pick,\n from: endpoint,\n status,\n statusTone: 'success',\n };\n state.status = status;\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '关系拾取会消费下一次有效视口点击,不改变当前选择。';\n if (renderUi) renderUi();\n return true;\n }\n const handled = patchMarkerRelation(state, options, {\n action: 'create',\n type: pick.type ?? '',\n fromKind: pick.from.kind,\n fromId: pick.from.id,\n toKind: endpoint.kind,\n toId: endpoint.id,\n directed: pick.directed,\n });\n if (handled && state.markerRelationPick) {\n state.markerRelationPick = {\n ...state.markerRelationPick,\n status: state.status,\n statusTone: state.statusTone,\n };\n }\n if (renderUi) renderUi();\n return true;\n}\n\nfunction readMarkerRelationPickTargetId(command: SelectionCommand): string | null {\n if (command.type === 'selection.clear' || command.type === 'selection.remove') return null;\n return command.activeId?.trim() || command.selectedIds[command.selectedIds.length - 1]?.trim() || null;\n}\n\nfunction resolveMarkerRelationPickEndpoint(\n graph: SpatialMarkerGraph,\n hierarchy: readonly LocalEditorBrowserUiHierarchyItem[],\n targetId: string,\n): LocalEditorMarkerRelationEndpointInput | null {\n const markerId = readSpatialMarkerIdFromHierarchySelection(graph, targetId, hierarchy);\n if (markerId && findSpatialMarkerById(graph, markerId)) {\n return { kind: 'marker', id: markerId };\n }\n const hierarchyItem = hierarchy.find(item => item.id === targetId) ?? null;\n if (!hierarchyItem) return null;\n if (hierarchyItem.role === 'marker' || hierarchyItem.role === 'group' || hierarchyItem.role === 'root') return null;\n return { kind: 'scene-object', id: targetId };\n}\n\nfunction updateMarkerRelationPickWarning<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n status: string,\n): void {\n if (state.markerRelationPick) {\n state.markerRelationPick = {\n ...state.markerRelationPick,\n status,\n statusTone: 'warning',\n };\n }\n state.status = status;\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n state.statusDetails = status;\n}\n\nfunction renameSceneGraphNode<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n intent: SceneGraphRenameIntent,\n): boolean {\n const document = state.session?.getState().workingDocument;\n if (state.mode !== 'editor' || !state.session || !document) return false;\n cancelActiveOperation(state);\n const validation = validateSceneGraphRename(options.documentAdapter.getHierarchyItems(document), intent);\n if (!validation.ok) {\n state.status = `Rename rejected: ${validation.reason ?? 'invalid scene graph rename'}`;\n return true;\n }\n const patch = options.documentAdapter.createSceneGraphRenamePatch?.(document, intent);\n if (!patch) {\n state.status = `Rename rejected: ${intent.id}`;\n return true;\n }\n const session = state.session;\n if (!session) return false;\n const result = session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Rename ${intent.id}`,\n patch: patch.patch,\n targetId: intent.id,\n ...withProjectionImpact(patch.projectionImpact),\n });\n if (!result.documentChanged) {\n state.status = `Rename unchanged: ${intent.id}`;\n return true;\n }\n rebuildProjectionFromDocument(state, options, result.workingDocument, result.selection);\n state.summary = summarizeDocument(options, result.workingDocument, session.getSource());\n state.status = patch.label ?? `Renamed ${intent.id}`;\n return true;\n}\n\nfunction createSceneGraphGroup<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n intent: SceneGraphCreateGroupIntent,\n): boolean {\n const document = state.session?.getState().workingDocument;\n if (state.mode !== 'editor' || !state.session || !document) return false;\n cancelActiveOperation(state);\n const patch = options.documentAdapter.createSceneGraphCreateGroupPatch?.(document, intent);\n if (!patch) {\n state.status = 'Create empty rejected';\n return true;\n }\n const session = state.session;\n if (!session) return false;\n const result = session.dispatch({\n type: 'document.patch',\n label: patch.label ?? 'Create Empty',\n patch: patch.patch,\n targetId: patch.createdId ?? undefined,\n ...withProjectionImpact(resolveProjectionImpact(\n patch,\n createCreatedNodeProjectionImpact([patch.createdId]),\n )),\n });\n if (!result.documentChanged) {\n state.status = 'Create empty unchanged';\n return true;\n }\n const createdId = patch.createdId ?? null;\n let selection = result.selection;\n if (createdId && isNodeSelectableInDocument(options, result.workingDocument, createdId)) {\n selection = state.session.dispatch({\n type: 'selection.replace',\n selectedIds: [createdId],\n activeId: createdId,\n label: 'Select Created Empty',\n }).selection;\n }\n rebuildProjectionFromDocument(state, options, result.workingDocument, selection);\n state.summary = summarizeDocument(options, result.workingDocument, session.getSource());\n state.status = patch.label ?? (createdId ? `Created empty ${createdId}` : 'Created empty');\n return true;\n}\n\nfunction createSceneGraphPrimitive<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n intent: SceneGraphCreatePrimitiveIntent,\n): boolean {\n const document = state.session?.getState().workingDocument;\n if (state.mode !== 'editor' || !state.session || !document) return false;\n cancelActiveOperation(state);\n const patch = options.documentAdapter.createSceneGraphCreatePrimitivePatch?.(document, intent);\n if (!patch) {\n state.status = `Create ${intent.shape} rejected`;\n return true;\n }\n const result = state.session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Create ${intent.shape}`,\n patch: patch.patch,\n targetId: patch.createdId ?? undefined,\n ...withProjectionImpact(resolveProjectionImpact(\n patch,\n createKnownCreatedReprojectProjectionImpact({\n createdNodeIds: [patch.createdId],\n reprojectIds: patch.reprojectIds,\n }),\n )),\n });\n if (!result.documentChanged) {\n state.status = `Create ${intent.shape} unchanged`;\n return true;\n }\n const createdId = patch.createdId ?? null;\n let selection = result.selection;\n if (createdId && isNodeSelectableInDocument(options, result.workingDocument, createdId)) {\n selection = state.session.dispatch({\n type: 'selection.replace',\n selectedIds: [createdId],\n activeId: createdId,\n label: 'Select Created Primitive',\n }).selection;\n }\n rebuildProjectionFromDocument(state, options, result.workingDocument, selection);\n state.summary = summarizeDocument(options, result.workingDocument, state.session.getSource());\n state.status = patch.label ?? (createdId ? `Created ${intent.shape} ${createdId}` : `Created ${intent.shape}`);\n return true;\n}\n\nfunction createSceneGraphMarker<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n intent: LocalEditorBrowserSceneGraphCreateMarkerIntent,\n): boolean {\n const document = state.session?.getState().workingDocument;\n if (state.mode !== 'editor' || !state.session || !document) return false;\n cancelActiveOperation(state);\n const markerType = intent.markerType?.trim() ?? '';\n const markerTypes = options.documentAdapter.getMarkerTypeCatalog?.(document) ?? [];\n const markerTypeDefinition = markerType\n ? markerTypes.find(definition => definition.type === markerType) ?? null\n : null;\n if (markerType && !markerTypeDefinition) {\n state.status = `Create marker rejected: unknown marker type ${markerType}`;\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n return true;\n }\n const hierarchy = options.documentAdapter.getHierarchyItems(document);\n const parentId = resolveCreateMarkerParentId(hierarchy, intent.parentId ?? null);\n const marker = createSceneGraphMarkerNode(\n state,\n options,\n document,\n intent,\n markerTypeDefinition,\n );\n state.markerCreateReservations.ids.add(marker.id);\n state.markerCreateReservations.labels.add(marker.label);\n const patch = options.documentAdapter.createMarkerGraphPatch?.(document, {\n type: 'marker.create-box',\n marker,\n parentId,\n });\n if (!patch) {\n state.markerCreateReservations.ids.delete(marker.id);\n state.markerCreateReservations.labels.delete(marker.label);\n state.status = `Create marker rejected: ${marker.label}`;\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n return true;\n }\n const result = state.session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Create marker ${marker.label}`,\n patch: patch.patch,\n targetId: patch.createdId ?? patch.changedId ?? marker.id,\n ...withProjectionImpact(resolveProjectionImpact(\n patch,\n createKnownCreatedReprojectProjectionImpact({\n createdNodeIds: [patch.createdId ?? patch.changedId ?? marker.id],\n reprojectIds: patch.changedIds,\n }),\n )),\n });\n if (!result.documentChanged) {\n state.markerCreateReservations.ids.delete(marker.id);\n state.markerCreateReservations.labels.delete(marker.label);\n state.status = `Create marker unchanged: ${marker.label}`;\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n return true;\n }\n const createdId = patch.createdId ?? patch.changedId ?? marker.id;\n releaseReflectedMarkerCreateReservation(state, options, result.workingDocument, marker, createdId);\n let selection = result.selection;\n if (createdId && isNodeSelectableInDocument(options, result.workingDocument, createdId)) {\n selection = state.session.dispatch({\n type: 'selection.replace',\n selectedIds: [createdId],\n activeId: createdId,\n label: 'Select Created Marker',\n }).selection;\n }\n rebuildProjectionFromDocument(state, options, result.workingDocument, selection);\n state.summary = summarizeDocument(options, result.workingDocument, state.session.getSource());\n state.status = patch.label ?? `Created marker ${marker.label}`;\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n return true;\n}\n\nfunction releaseReflectedMarkerCreateReservation<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n marker: SpatialMarkerNode,\n createdId: string | null | undefined,\n): void {\n const reflectedIds = new Set([\n marker.id,\n ...(createdId ? [createdId] : []),\n ]);\n const hierarchy = options.documentAdapter.getHierarchyItems(document);\n const graph = options.documentAdapter.getMarkerGraph?.(document) ?? null;\n const markerReflected = hierarchy.some(item => reflectedIds.has(item.id))\n || (graph?.markers ?? []).some(candidate => reflectedIds.has(candidate.id));\n if (!markerReflected) return;\n state.markerCreateReservations.ids.delete(marker.id);\n state.markerCreateReservations.labels.delete(marker.label);\n}\n\nfunction createSceneGraphMarkerNode<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n intent: LocalEditorBrowserSceneGraphCreateMarkerIntent,\n markerTypeDefinition: SpatialMarkerTypeDefinition | null,\n): SpatialMarkerNode {\n const hierarchy = options.documentAdapter.getHierarchyItems(document);\n const graph = options.documentAdapter.getMarkerGraph?.(document) ?? null;\n const existingIds = new Set([\n ...hierarchy.map(item => item.id),\n ...(graph?.markers ?? []).map(marker => marker.id),\n ...state.markerCreateReservations.ids,\n ]);\n const markerType = markerTypeDefinition?.type ?? intent.markerType?.trim() ?? '';\n const baseLabel = intent.name?.trim() || markerTypeDefinition?.label || 'Marker';\n const id = createUniqueMarkerId(existingIds, markerType || baseLabel);\n const label = createUniqueMarkerLabel(\n new Set([\n ...hierarchy.map(item => item.label),\n ...state.markerCreateReservations.labels,\n ]),\n baseLabel,\n id,\n markerType,\n );\n const geometry = createInitialMarkerGeometry(state, markerTypeDefinition?.kind);\n return {\n id,\n kind: normalizeMarkerNodeKind(markerTypeDefinition?.kind),\n markerType,\n label,\n geometry,\n ...(markerTypeDefinition?.defaultTags?.length ? { tags: [...markerTypeDefinition.defaultTags] } : {}),\n };\n}\n\nfunction createInitialMarkerGeometry<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n markerKind: string | undefined,\n): SpatialMarkerGeometry {\n const defaultScale = createDefaultMarkerScale(markerKind);\n const selection = state.session?.getState().selection ?? { selectedIds: [], activeId: null };\n const bounds = selection.selectedIds.length > 0\n ? state.projection?.getSelectionBounds(selection.selectedIds) ?? null\n : null;\n const center = bounds?.center ?? { x: 0, y: defaultScale.y / 2, z: 0 };\n if (!isRegionMarkerKind(markerKind)) {\n return {\n kind: 'point',\n coordinateSpace: 'world',\n position: { ...center },\n };\n }\n const size = bounds && isRegionMarkerKind(markerKind)\n ? normalizeMarkerBoxSize(bounds.size)\n : defaultScale;\n return {\n kind: 'box',\n coordinateSpace: 'world',\n center: { ...center },\n size: { ...size },\n };\n}\n\nfunction createDefaultMarkerScale(markerKind: string | undefined): EditorTransformVec3 {\n return isRegionMarkerKind(markerKind)\n ? { x: 4, y: 1, z: 4 }\n : { x: 0.5, y: 0.5, z: 0.5 };\n}\n\nfunction normalizeMarkerNodeKind(kind: string | undefined): SpatialMarkerNode['kind'] {\n return kind?.trim() || 'point';\n}\n\nfunction isRegionMarkerKind(kind: string | undefined): boolean {\n return (kind?.trim() || 'point') === 'region';\n}\n\nfunction createUniqueMarkerId(existingIds: ReadonlySet<string>, markerType: string): string {\n const base = sanitizeMarkerIdPart(markerType) || 'marker';\n if (!existingIds.has(base)) return base;\n let index = 2;\n while (existingIds.has(`${base}-${index}`)) index += 1;\n return `${base}-${index}`;\n}\n\nfunction createUniqueMarkerLabel(\n existingLabels: ReadonlySet<string>,\n baseLabel: string,\n id: string,\n markerType: string,\n): string {\n const trimmed = baseLabel.trim() || markerType || id;\n if (!existingLabels.has(trimmed)) return trimmed;\n let index = 2;\n while (existingLabels.has(`${trimmed} ${index}`)) index += 1;\n return `${trimmed} ${index}`;\n}\n\nfunction sanitizeMarkerIdPart(value: string): string {\n return value\n .trim()\n .toLowerCase()\n .replace(/[^a-z0-9_-]+/g, '-')\n .replace(/^-+|-+$/g, '');\n}\n\nfunction resolveCreateMarkerParentId(\n hierarchy: readonly LocalEditorBrowserUiHierarchyItem[],\n parentId: string | null,\n): string | null {\n if (!parentId) return null;\n const parent = hierarchy.find(item => item.id === parentId) ?? null;\n return parent?.canHaveChildren === true && parent.role !== 'marker' ? parent.id : null;\n}\n\nfunction deleteSceneGraphNodes<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n intent: SceneGraphDeleteIntent,\n): boolean {\n const document = state.session?.getState().workingDocument;\n if (state.mode !== 'editor' || !state.session || !document) return false;\n cancelActiveOperation(state);\n const validation = validateSceneGraphDelete(options.documentAdapter.getHierarchyItems(document), intent);\n if (!validation.ok) {\n state.status = `Delete rejected: ${validation.reason ?? 'invalid scene graph delete'}`;\n return true;\n }\n const patch = options.documentAdapter.createSceneGraphDeletePatch?.(document, intent);\n if (!patch) {\n state.status = 'Delete rejected';\n return true;\n }\n const result = state.session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Delete ${intent.ids.length} node(s)`,\n patch: patch.patch,\n targetId: intent.activeId ?? undefined,\n ...withProjectionImpact(resolveProjectionImpact(\n patch,\n patch.deletedIds\n ? createDeletedNodeProjectionImpact(patch.deletedIds)\n : undefined,\n )),\n });\n if (!result.documentChanged) {\n state.status = 'Delete unchanged';\n return true;\n }\n const fallbackSelectionId = patch.fallbackSelectionId ?? null;\n let selection = result.selection;\n if (fallbackSelectionId && isNodeSelectableInDocument(options, result.workingDocument, fallbackSelectionId)) {\n selection = state.session.dispatch({\n type: 'selection.replace',\n selectedIds: [fallbackSelectionId],\n activeId: fallbackSelectionId,\n label: 'Select Delete Fallback',\n }).selection;\n } else {\n selection = sanitizeSelection(state, options, result.workingDocument, selection) ?? selection;\n }\n rebuildProjectionFromDocument(state, options, result.workingDocument, selection);\n state.summary = summarizeDocument(options, result.workingDocument, state.session.getSource());\n state.status = patch.label ?? `Deleted ${patch.deletedIds?.length ?? intent.ids.length} node(s)`;\n return true;\n}\n\nfunction duplicateSceneGraphNodes<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n intent: { targetIds: string[]; activeId?: string | null },\n): boolean {\n const document = state.session?.getState().workingDocument;\n if (state.mode !== 'editor' || !state.session || !document) return false;\n cancelActiveOperation(state);\n const targetIds = Array.from(new Set(intent.targetIds.filter(Boolean)));\n if (targetIds.length === 0) {\n state.status = 'Duplicate rejected: empty selection';\n return true;\n }\n const patch = options.documentAdapter.createDuplicateSelectionPatch?.({\n document,\n targetIds,\n activeId: intent.activeId && targetIds.includes(intent.activeId) ? intent.activeId : targetIds[targetIds.length - 1] ?? null,\n transforms: {},\n });\n if (!patch || patch.createdIds.length === 0) {\n state.status = 'Duplicate rejected';\n return true;\n }\n const projectionImpact = resolveProjectionImpact(\n patch,\n createDuplicateProjectionImpact(patch),\n );\n const result = state.session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Duplicate ${targetIds.length} object(s)`,\n patch: patch.patch,\n targetId: patch.activeId ?? patch.createdIds[patch.createdIds.length - 1] ?? undefined,\n ...withProjectionImpact(projectionImpact),\n });\n if (!result.documentChanged) {\n state.status = 'Duplicate unchanged';\n return true;\n }\n const createdIds = patch.createdIds.filter(id => isNodeSelectableInDocument(options, result.workingDocument, id));\n const activeId = patch.activeId && createdIds.includes(patch.activeId)\n ? patch.activeId\n : createdIds[createdIds.length - 1] ?? null;\n const selection = createdIds.length > 0\n ? state.session.dispatch({\n type: 'selection.replace',\n selectedIds: createdIds,\n activeId,\n label: 'Select Duplicated Nodes',\n }).selection\n : sanitizeSelection(state, options, result.workingDocument, result.selection) ?? result.selection;\n if (!applyProjectionImpactToDocument(state, options, {\n document: result.workingDocument,\n selection,\n impact: projectionImpact,\n reason: 'duplicate-impact',\n })) {\n rebuildProjectionFromDocument(state, options, result.workingDocument, selection);\n }\n state.summary = summarizeDocument(options, result.workingDocument, state.session.getSource());\n state.status = patch.label ?? `Duplicated ${createdIds.length} object(s)`;\n return true;\n}\n\nfunction dropSceneGraphNode<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n intent: SceneGraphDropIntent,\n): boolean {\n const document = state.session?.getState().workingDocument;\n if (state.mode !== 'editor' || !state.session || !document) return false;\n cancelActiveOperation(state);\n if (intent.placement !== 'inside') {\n state.status = 'Reparent rejected: sorting is not implemented yet';\n return true;\n }\n const hierarchy = options.documentAdapter.getHierarchyItems(document);\n const coreValidation = validateSceneGraphDrop(hierarchy, intent);\n if (!coreValidation.ok) {\n state.status = `Reparent rejected: ${coreValidation.reason ?? 'invalid scene graph drop'}`;\n return true;\n }\n const projectValidation = options.documentAdapter.validateSceneGraphDrop?.(document, intent);\n if (projectValidation && !projectValidation.ok) {\n state.status = `Reparent rejected: ${projectValidation.reason ?? 'project validation failed'}`;\n return true;\n }\n const patch = options.documentAdapter.createSceneGraphDropPatch?.(document, intent);\n if (!patch) {\n state.status = 'Reparent rejected';\n return true;\n }\n const result = state.session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Reparent ${intent.draggedId}`,\n patch: patch.patch,\n targetId: intent.draggedId,\n ...withProjectionImpact(patch.projectionImpact),\n });\n if (!result.documentChanged) {\n state.status = `Reparent unchanged: ${intent.draggedId}`;\n return true;\n }\n rebuildProjectionFromDocument(state, options, result.workingDocument, result.selection);\n state.summary = summarizeDocument(options, result.workingDocument, state.session.getSource());\n state.status = patch.label ?? `Reparented ${intent.draggedId}`;\n return true;\n}\n\nfunction moveSceneGraphNodes<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n intent: SceneGraphMoveIntent,\n): LocalEditorBrowserSceneGraphActionResult | null {\n const document = state.session?.getState().workingDocument;\n if (state.mode !== 'editor' || !state.session || !document) return null;\n cancelActiveOperation(state);\n const hierarchy = options.documentAdapter.getHierarchyItems(document);\n const coreValidation = validateSceneGraphMove(hierarchy, intent);\n if (!coreValidation.ok) {\n const reason = coreValidation.reason ?? 'invalid scene graph move';\n state.status = `Move rejected: ${reason}`;\n return { ok: false, reason };\n }\n const projectValidation = options.documentAdapter.validateSceneGraphMove?.(document, intent);\n if (projectValidation && !projectValidation.ok) {\n const reason = projectValidation.reason ?? 'project validation failed';\n state.status = `Move rejected: ${reason}`;\n return { ok: false, reason };\n }\n if (!options.documentAdapter.createSceneGraphMovePatch && intent.placement === 'inside' && intent.ids.length === 1 && intent.targetId) {\n const handled = dropSceneGraphNode(state, options, {\n draggedId: intent.ids[0]!,\n targetId: intent.targetId,\n placement: 'inside',\n preserveWorldTransform: intent.preserveWorldTransform,\n });\n if (!handled) return null;\n const reason = parseRejectedStatusReason(state.status, 'Reparent rejected');\n return reason ? { ok: false, reason } : { ok: true };\n }\n const patch = options.documentAdapter.createSceneGraphMovePatch?.(document, intent);\n if (!patch) {\n state.status = 'Move rejected';\n return { ok: false, reason: 'No move patch was produced.' };\n }\n const result = state.session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Move ${intent.ids.length} node(s)`,\n patch: patch.patch,\n targetId: intent.ids[0] ?? undefined,\n ...withProjectionImpact(patch.projectionImpact),\n });\n if (!result.documentChanged) {\n state.status = 'Move unchanged';\n return { ok: true };\n }\n const selection = sanitizeSelection(state, options, result.workingDocument, result.selection) ?? result.selection;\n rebuildProjectionFromDocument(state, options, result.workingDocument, selection);\n state.summary = summarizeDocument(options, result.workingDocument, state.session.getSource());\n state.status = patch.label ?? `Moved ${patch.changedIds?.length ?? intent.ids.length} node(s)`;\n return { ok: true };\n}\n\nfunction parseRejectedStatusReason(status: string, prefix: string): string | null {\n const fullPrefix = `${prefix}: `;\n if (!status.startsWith(fullPrefix)) return status === prefix ? 'Operation rejected.' : null;\n return status.slice(fullPrefix.length).trim() || 'Operation rejected.';\n}\n\nfunction groupSceneGraphSelection<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n intent: SceneGraphGroupSelectionIntent,\n): boolean {\n const document = state.session?.getState().workingDocument;\n if (state.mode !== 'editor' || !state.session || !document) return false;\n cancelActiveOperation(state);\n const hierarchy = options.documentAdapter.getHierarchyItems(document);\n const coreValidation = validateSceneGraphGroupSelection(hierarchy, intent);\n if (!coreValidation.ok) {\n state.status = `Create Parent rejected: ${coreValidation.reason ?? 'invalid scene graph parent selection'}`;\n return true;\n }\n const projectValidation = options.documentAdapter.validateSceneGraphGroupSelection?.(document, intent);\n if (projectValidation && !projectValidation.ok) {\n state.status = `Create Parent rejected: ${projectValidation.reason ?? 'project validation failed'}`;\n return true;\n }\n const patch = options.documentAdapter.createSceneGraphGroupSelectionPatch?.(document, intent);\n if (!patch) {\n state.status = 'Create Parent rejected';\n return true;\n }\n const result = state.session.dispatch({\n type: 'document.patch',\n label: patch.label ?? 'Create Parent',\n patch: patch.patch,\n targetId: patch.createdId,\n ...withProjectionImpact(patch.projectionImpact),\n });\n if (!result.documentChanged) {\n state.status = 'Create Parent unchanged';\n return true;\n }\n let selection = result.selection;\n if (patch.createdId && isNodeSelectableInDocument(options, result.workingDocument, patch.createdId)) {\n selection = state.session.dispatch({\n type: 'selection.replace',\n selectedIds: [patch.createdId],\n activeId: patch.createdId,\n label: 'Select Created Parent',\n }).selection;\n } else {\n selection = sanitizeSelection(state, options, result.workingDocument, selection) ?? selection;\n }\n rebuildProjectionFromDocument(state, options, result.workingDocument, selection);\n state.summary = summarizeDocument(options, result.workingDocument, state.session.getSource());\n state.status = patch.label ?? `Parented ${patch.changedIds?.length ?? intent.ids.length} node(s)`;\n return true;\n}\n\nfunction sanitizeSelection<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n selection: EditorSelectionState,\n): EditorSelectionState | null {\n const documentHierarchy = options.documentAdapter.getHierarchyItems(document);\n const graph = options.documentAdapter.getMarkerGraph?.(document) ?? null;\n const hierarchy = graph\n ? createMarkerGraphHierarchyItems(documentHierarchy, graph, createMarkerGraphHierarchyVisibility(state))\n : documentHierarchy;\n const selectedIds = selection.selectedIds.filter(\n id => isAgentBridgeObjectSelectable(options, document, id, hierarchy),\n );\n const activeId = selection.activeId && selectedIds.includes(selection.activeId)\n ? selection.activeId\n : selectedIds[selectedIds.length - 1] ?? null;\n if (activeId === selection.activeId && selectedIds.length === selection.selectedIds.length) return null;\n const result = state.session?.dispatch({\n type: 'selection.replace',\n selectedIds,\n activeId,\n label: 'Sanitize Selection',\n });\n return result?.selection ?? { selectedIds, activeId };\n}\n\nfunction commitEditorStateChange<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n harnessOptions: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n renderUi: () => void,\n reason: string,\n mutate: () => void,\n options: LocalEditorStateCommitOptions = {},\n): number {\n const beforeRevision = state.editorStateRevision;\n mutate();\n const revision = beforeRevision + 1;\n state.editorStateRevision = revision;\n renderUi();\n if (options.syncSelectionArtifacts) {\n const selection = typeof options.syncSelectionArtifacts === 'boolean'\n ? state.session?.getState({ cloneDocuments: false }).selection ?? { selectedIds: [], activeId: null }\n : options.syncSelectionArtifacts;\n syncSelectionToProjection(state, harnessOptions, selection, reason, revision);\n } else if (options.syncTransformOperationArtifacts) {\n syncTransformOperationSettingsToSceneArtifacts(state, reason, revision);\n } else if (options.syncTransformArtifacts) {\n syncTransformGizmoToSceneArtifacts(state, reason, revision);\n }\n return revision;\n}\n\nfunction syncSelectionToProjection<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n selection: EditorSelectionState,\n reason = 'projection-selection',\n revision = state.editorStateRevision,\n): void {\n if (!beginSceneArtifactSync(state, reason, revision)) return;\n const projectedSelection = state.prefabStage ? EMPTY_EDITOR_SELECTION : selection;\n state.projection?.syncSelection(projectedSelection);\n syncMarkerOverlayToSceneArtifacts(state, options, projectedSelection);\n state.gizmo?.setSelection(projectedSelection);\n syncTransformGizmoToSceneArtifacts(state, reason, revision, false);\n}\n\nfunction syncCurrentSelectionToSceneArtifacts<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n reason = 'projection-selection-current',\n revision = state.editorStateRevision,\n): void {\n syncSelectionToProjection(\n state,\n options,\n state.session?.getState({ cloneDocuments: false }).selection ?? { selectedIds: [], activeId: null },\n reason,\n revision,\n );\n}\n\nfunction syncMarkerOverlayToSceneArtifacts<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n selection: EditorSelectionState,\n): void {\n const overlay = state.markerOverlay;\n if (!overlay) return;\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n const input = document\n ? createMarkerOverlayInput(state, options, document, selection, createMarkerGraphHierarchyVisibility(state))\n : { markers: [] };\n const changed = overlay.sync(input);\n syncMarkerRelationHighlightRenderLoop(state, input);\n if (changed) requestEditorSceneFrame(state, 'marker-overlay-sync');\n}\n\nfunction syncMarkerRelationHighlightRenderLoop<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n input: Parameters<BabylonEditorMarkerOverlayController['sync']>[0],\n): void {\n const shouldRun = (input.relations ?? []).some(relation => relation.active === true);\n if (shouldRun === state.markerRelationHighlightContinuous) return;\n state.markerRelationHighlightContinuous = shouldRun;\n if (shouldRun) {\n if (canUseContinuousViewportRenderLoop()) {\n state.viewportRenderCoordinator?.beginContinuous(MARKER_RELATION_HIGHLIGHT_RENDER_REASON);\n } else {\n state.viewportRenderCoordinator?.requestFrame(MARKER_RELATION_HIGHLIGHT_RENDER_REASON);\n }\n } else {\n state.viewportRenderCoordinator?.endContinuous(MARKER_RELATION_HIGHLIGHT_RENDER_REASON);\n }\n}\n\nfunction canUseContinuousViewportRenderLoop(): boolean {\n if (typeof window === 'undefined' || typeof window.requestAnimationFrame !== 'function') return true;\n if (typeof window.cancelAnimationFrame !== 'function') return true;\n let completedSynchronously = false;\n const frameId = window.requestAnimationFrame(() => {\n completedSynchronously = true;\n });\n window.cancelAnimationFrame(frameId);\n return !completedSynchronously;\n}\n\nfunction createMarkerOverlayInput<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n selection: EditorSelectionState,\n visibility: MarkerGraphHierarchyVisibility,\n): Parameters<BabylonEditorMarkerOverlayController['sync']>[0] {\n const graph = options.documentAdapter.getMarkerGraph?.(document) ?? null;\n if (!graph) return { markers: [] };\n if (state.viewportTools.markersVisible === false) return { markers: [], relations: [] };\n const hierarchy = options.documentAdapter.getHierarchyItems(document);\n const fullHierarchy = createMarkerGraphHierarchyItems(hierarchy, graph, visibility);\n const selectedIds = new Set(selection.selectedIds);\n const markerTypeLabels = new Map(\n (options.documentAdapter.getMarkerTypeCatalog?.(document) ?? []).map(definition => [definition.type, definition.label]),\n );\n const activeMarkerId = selection.activeId\n ? readSpatialMarkerIdFromHierarchySelection(graph, selection.activeId, hierarchy)\n : null;\n return {\n activeMarkerRowId: selection.activeId,\n selectedMarkerRowIds: selection.selectedIds,\n markers: fullHierarchy\n .filter(item => item.role === 'marker')\n .map((item) => {\n const markerId = readSpatialMarkerIdFromHierarchySelection(graph, item.id, hierarchy);\n const marker = markerId ? findSpatialMarkerById(graph, markerId) : null;\n if (!marker || !isMarkerOverlayRowVisible(graph, item, marker.id, hierarchy, visibility)) return null;\n const overlayMarker = resolveMarkerForOverlay(state, applyMarkerOverlayTransformPreview(state, item.id, marker));\n return {\n markerRowId: item.id,\n marker: overlayMarker,\n markerTypeLabel: markerTypeLabels.get(marker.markerType),\n selected: selectedIds.has(item.id),\n active: selection.activeId === item.id,\n };\n })\n .filter((entry): entry is NonNullable<typeof entry> => !!entry),\n relations: createSelectedMarkerRelationOverlayEntries(\n state,\n resolveMarkerGraphForOverlay(state, graph),\n activeMarkerId,\n hierarchy,\n visibility,\n ),\n };\n}\n\nfunction resolveMarkerGraphForOverlay<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n graph: SpatialMarkerGraph,\n): SpatialMarkerGraph {\n return {\n ...graph,\n markers: graph.markers.map(marker => resolveMarkerForOverlay(state, marker)),\n };\n}\n\nfunction resolveMarkerForOverlay<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n marker: SpatialMarkerNode,\n): SpatialMarkerNode {\n if (!isObjectBoundMarkerForOverlay(marker)) return marker;\n const target = readSceneObjectMarkerTargetForOverlay(marker);\n if (!target) return marker;\n const bounds = state.projection?.getSelectionBounds([target.id]) ?? null;\n if (!bounds) return marker;\n return {\n ...marker,\n spatial: {\n status: 'resolved',\n coordinateSpace: 'world',\n origin: { ...bounds.center },\n bounds: {\n min: { ...bounds.min },\n max: { ...bounds.max },\n center: { ...bounds.center },\n size: { ...bounds.size },\n },\n dimensions: { ...bounds.size },\n localFrame: {\n origin: { ...bounds.center },\n forward: marker.semanticFrame?.forward ? { ...marker.semanticFrame.forward } : { x: 0, y: 0, z: 1 },\n right: marker.semanticFrame?.right ? { ...marker.semanticFrame.right } : { x: 1, y: 0, z: 0 },\n up: marker.semanticFrame?.up ? { ...marker.semanticFrame.up } : { x: 0, y: 1, z: 0 },\n },\n target,\n },\n };\n}\n\nfunction isObjectBoundMarkerForOverlay(marker: SpatialMarkerNode): boolean {\n const markerKind = marker.kind?.trim().toLowerCase();\n return markerKind === 'object'\n || markerKind === 'object-bound'\n || markerKind === 'object-bounds'\n || marker.geometry.kind === 'object-bounds';\n}\n\nfunction readSceneObjectMarkerTargetForOverlay(marker: SpatialMarkerNode): SpatialRelation['from'] | null {\n if (marker.target?.kind === 'scene-object') return marker.target;\n if (marker.geometry.kind === 'object-bounds' && marker.geometry.target.kind === 'scene-object') {\n return marker.geometry.target;\n }\n if (marker.geometry.kind === 'point' && marker.geometry.target?.kind === 'scene-object') {\n return marker.geometry.target;\n }\n return null;\n}\n\nfunction createSelectedMarkerRelationOverlayEntries<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n graph: SpatialMarkerGraph,\n activeMarkerId: string | null,\n hierarchy: readonly LocalEditorBrowserUiHierarchyItem[],\n visibility: MarkerGraphHierarchyVisibility,\n): BabylonEditorMarkerOverlayRelationEntry[] {\n if (!activeMarkerId) return [];\n if (!findSpatialMarkerById(graph, activeMarkerId)) return [];\n const entries: BabylonEditorMarkerOverlayRelationEntry[] = [];\n for (const relation of getSpatialMarkerDirectRelations(graph, activeMarkerId)) {\n const from = resolveRelationOverlayEndpoint(state, graph, activeMarkerId, relation.from, hierarchy, visibility);\n const to = resolveRelationOverlayEndpoint(state, graph, activeMarkerId, relation.to, hierarchy, visibility);\n if (!from || !to) continue;\n entries.push({\n id: relation.id,\n type: relation.type,\n ...(relation.label ? { label: relation.label } : {}),\n from,\n to,\n directed: relation.directed ?? true,\n active: state.activeMarkerRelationId === relation.id,\n });\n }\n return entries;\n}\n\nfunction applyMarkerOverlayTransformPreview<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n markerRowId: string,\n marker: SpatialMarkerNode,\n): SpatialMarkerNode {\n const transform = readActiveTransformPreviewTransform(state, markerRowId)\n ?? (markerRowId === marker.id ? null : readActiveTransformPreviewTransform(state, marker.id));\n if (!transform) return marker;\n const semanticFrame = createMarkerSemanticFrameFromTransform(marker, transform);\n if (marker.geometry.kind === 'point') {\n return {\n ...marker,\n geometry: {\n ...marker.geometry,\n coordinateSpace: 'world',\n position: { ...transform.position },\n },\n semanticFrame,\n };\n }\n if (marker.geometry.kind !== 'box') {\n return {\n ...marker,\n semanticFrame,\n };\n }\n return {\n ...marker,\n semanticFrame,\n geometry: {\n ...marker.geometry,\n center: { ...transform.position },\n rotation: { ...transform.rotation },\n size: { ...transform.scale },\n },\n };\n}\n\nfunction resolveRelationOverlayEndpoint<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n graph: SpatialMarkerGraph,\n activeMarkerId: string | null,\n endpoint: SpatialRelation['from'],\n hierarchy: readonly LocalEditorBrowserUiHierarchyItem[],\n visibility: MarkerGraphHierarchyVisibility,\n): EditorTransformVec3 | null {\n if (endpoint.kind === 'marker') {\n if (!isMarkerVisibleForOverlayRelation(graph, endpoint.id, hierarchy, visibility)) return null;\n const preview = endpoint.id === activeMarkerId ? readActiveTransformPreviewPosition(state) : null;\n if (preview) return preview;\n const marker = findSpatialMarkerById(graph, endpoint.id);\n return marker ? resolveMarkerOverlayEndpoint(marker) : null;\n }\n if (endpoint.kind === 'scene-object') {\n const preview = endpoint.id === state.activeTransformPreview?.activeId ? readActiveTransformPreviewPosition(state) : null;\n if (preview) return preview;\n const bounds = state.projection?.getSelectionBounds([endpoint.id]) ?? null;\n return bounds ? { ...bounds.center } : null;\n }\n return null;\n}\n\nfunction isMarkerVisibleForOverlayRelation(\n graph: SpatialMarkerGraph,\n markerId: string,\n hierarchy: readonly LocalEditorBrowserUiHierarchyItem[],\n visibility: MarkerGraphHierarchyVisibility,\n): boolean {\n if (isSpatialMarkerBackedByHierarchyRow(graph, markerId, hierarchy)) {\n const markerRow = hierarchy.find(item => item.id === markerId);\n return markerRow?.enabled !== false && !isMarkerHiddenInHierarchyVisibility(markerId, visibility);\n }\n const markerRow = hierarchy.find(item => readMarkerGraphHierarchyMarkerIdForGraph(graph, item.id, hierarchy) === markerId);\n if (markerRow?.enabled === false) return false;\n return isSpatialMarkerHierarchyVisible(markerId, visibility);\n}\n\nfunction isMarkerHiddenInHierarchyVisibility(\n markerId: string,\n visibility: MarkerGraphHierarchyVisibility,\n): boolean {\n const hiddenMarkerIds = visibility.hiddenMarkerIds;\n if (!hiddenMarkerIds) return false;\n return Array.isArray(hiddenMarkerIds)\n ? hiddenMarkerIds.includes(markerId)\n : (hiddenMarkerIds as ReadonlySet<string>).has(markerId);\n}\n\nfunction readActiveTransformPreviewPosition<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): EditorTransformVec3 | null {\n const transform = readActiveTransformPreviewTransform(state);\n return transform ? { ...transform.position } : null;\n}\n\nfunction readActiveTransformPreviewTransform<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n targetId?: string,\n): EditorTransformTrsSnapshot | null {\n const preview = state.activeTransformPreview;\n const activeId = targetId ?? preview?.activeId ?? null;\n if (!preview || !activeId) return null;\n const transform = preview.transforms[activeId] ?? null;\n return transform && isEditorTransformTrsSnapshot(transform) ? transform : null;\n}\n\nfunction resolveMarkerOverlayEndpoint(marker: SpatialMarkerNode): EditorTransformVec3 | null {\n if (isObjectBoundMarkerForOverlay(marker) && marker.spatial?.bounds?.center) {\n return { ...marker.spatial.bounds.center };\n }\n if (marker.geometry.kind === 'box') return { ...marker.geometry.center };\n if (marker.geometry.kind === 'point') return { ...marker.geometry.position };\n return null;\n}\n\nfunction isMarkerOverlayRowVisible(\n graph: SpatialMarkerGraph,\n item: LocalEditorBrowserUiHierarchyItem,\n markerId: string,\n hierarchy: readonly LocalEditorBrowserUiHierarchyItem[],\n visibility: MarkerGraphHierarchyVisibility,\n): boolean {\n if (item.enabled === false) return false;\n if (readMarkerGraphHierarchyMarkerIdForGraph(graph, item.id, hierarchy)) {\n return isSpatialMarkerHierarchyVisible(markerId, visibility);\n }\n return true;\n}\n\nfunction createMarkerGraphHierarchyVisibility<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): MarkerGraphHierarchyVisibility {\n return {\n rootVisible: state.markerGraphVisibility.rootVisible,\n hiddenMarkerIds: state.markerGraphVisibility.hiddenMarkerIds,\n };\n}\n\nfunction createMarkerRelationVisibilityOptions<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): MarkerRelationVisibilityOptions {\n return {\n markersVisible: state.viewportTools.markersVisible !== false,\n rootVisible: state.markerGraphVisibility.rootVisible,\n hiddenMarkerIds: state.markerGraphVisibility.hiddenMarkerIds,\n };\n}\n\nfunction syncTransformGizmoToSceneArtifacts<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n reason: string,\n revision = state.editorStateRevision,\n beginSync = true,\n): void {\n if (beginSync && !beginSceneArtifactSync(state, reason, revision)) return;\n const gizmo = state.gizmo;\n if (gizmo) {\n gizmo.setTool(state.transformTool);\n gizmo.setSpace(state.transformSpace);\n gizmo.setConstraint(state.transformConstraint);\n gizmo.refreshSelection();\n }\n requestEditorArtifactRevealFrame(state, reason);\n}\n\nfunction syncTransformOperationSettingsToSceneArtifacts<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n reason: string,\n revision = state.editorStateRevision,\n): void {\n if (!beginSceneArtifactSync(state, reason, revision)) return;\n state.gizmo?.setOperationSettings(getScopedTransformOperationSettings(state));\n requestEditorSceneFrame(state, reason);\n}\n\nfunction getScopedTransformOperationSettings<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): EditorTransformOperationSettings {\n if (!state.prefabStage) return state.transformOperationSettings;\n return updateTransformOperationSettings(state.transformOperationSettings, {\n snap: {\n ...state.transformOperationSettings.snap,\n enabled: false,\n },\n placementMode: 'off',\n });\n}\n\nfunction beginSceneArtifactSync<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n reason: string,\n revision: number,\n): boolean {\n if (revision < state.sceneArtifactRevision) {\n return false;\n }\n state.sceneArtifactRevision = revision;\n return true;\n}\n\nfunction invalidateEditorScene<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n reason: string,\n options?: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): void {\n if (options && state.sceneCameraPreviewEnabled) {\n syncSceneCameraPreview(state, options);\n }\n state.viewportRenderCoordinator?.invalidateScene(reason);\n}\n\nfunction requestEditorArtifactRevealFrame<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n reason: string,\n): void {\n const coordinator = state.viewportRenderCoordinator;\n if (!coordinator) return;\n coordinator.invalidateScene(reason);\n coordinator.requestRevealFrame(`${reason}-artifact-reveal`);\n}\n\nfunction syncEditorWorldAppearanceFromDocument<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n reason: string,\n): void {\n const appearance = resolveEffectiveLocalEditorWorldAppearance(state, options, document);\n const key = serializeLocalEditorWorldAppearance(appearance);\n if (key === state.worldAppearanceKey) return;\n state.worldAppearanceKey = key;\n state.world?.setAppearance({\n clearColor: appearance.clearColor,\n sky: appearance.sky,\n });\n state.grid?.setColors(appearance.grid ?? {});\n requestEditorSceneFrame(state, reason);\n}\n\nfunction syncEditorWorldRenderingFromDocument<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n reason: string,\n refreshProjection = false,\n): void {\n const rendering = resolveEffectiveLocalEditorWorldRendering(state, options, document);\n const key = serializeLocalEditorWorldRendering(rendering);\n if (key === state.worldRenderingKey) {\n if (refreshProjection) state.shadowPreview?.refresh();\n state.world?.refreshSkyBackdrop();\n return;\n }\n state.worldRenderingKey = key;\n state.shadowPreview?.setOptions(rendering.shadowPreview);\n state.environmentTexture?.setProfile(rendering.environment);\n state.world?.refreshSkyBackdrop();\n state.postProcess?.setProfile(rendering.postProcess);\n requestEditorSceneFrame(state, reason);\n}\n\nfunction resolveLocalEditorWorldAppearance<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument | undefined,\n): LocalEditorHarnessWorldAppearance {\n const documentAppearance = document\n ? options.documentAdapter.getWorldAppearance?.(document) ?? null\n : null;\n return {\n clearColor: documentAppearance?.clearColor ?? options.world?.clearColor,\n sky: hasEditorWorldAppearanceSky(documentAppearance) ? documentAppearance.sky : options.world?.sky,\n grid: documentAppearance?.grid ?? options.world?.grid,\n };\n}\n\nfunction resolveEffectiveLocalEditorWorldAppearance<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument | undefined,\n): LocalEditorHarnessWorldAppearance {\n if (!state.prefabStage) return resolveLocalEditorWorldAppearance(options, document);\n return {\n ...resolveLocalEditorWorldAppearance(options, document),\n ...PREFAB_STAGE_STUDIO_WORLD_APPEARANCE,\n };\n}\n\nfunction resolveLocalEditorWorldRendering<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument | undefined,\n): LocalEditorHarnessWorldRendering {\n const documentRendering = document\n ? options.documentAdapter.getWorldRendering?.(document) ?? null\n : null;\n return {\n environment: documentRendering?.environment ?? null,\n shadowPreview: documentRendering?.shadowPreview ?? null,\n postProcess: documentRendering?.postProcess ?? null,\n };\n}\n\nfunction resolveEffectiveLocalEditorWorldRendering<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument | undefined,\n): LocalEditorHarnessWorldRendering {\n const rendering = resolveLocalEditorWorldRendering(options, document);\n if (!state.prefabStage) return rendering;\n return {\n ...rendering,\n environment: PREFAB_STAGE_STUDIO_ENVIRONMENT,\n };\n}\n\nfunction hasEditorWorldAppearanceSky(\n appearance: LocalEditorHarnessWorldAppearance | null,\n): appearance is LocalEditorHarnessWorldAppearance & Pick<Required<LocalEditorHarnessWorldAppearance>, 'sky'> {\n return !!appearance && Object.prototype.hasOwnProperty.call(appearance, 'sky');\n}\n\nfunction serializeLocalEditorWorldAppearance(appearance: LocalEditorHarnessWorldAppearance): string {\n return JSON.stringify({\n clearColor: appearance.clearColor ?? null,\n sky: hasEditorWorldAppearanceSky(appearance) ? appearance.sky : null,\n grid: appearance.grid ?? null,\n });\n}\n\nfunction serializeLocalEditorWorldRendering(rendering: LocalEditorHarnessWorldRendering): string {\n return JSON.stringify({\n environment: rendering.environment ?? null,\n shadowPreview: rendering.shadowPreview ?? null,\n postProcess: rendering.postProcess ?? null,\n });\n}\n\nfunction executeTransformAction<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n action: EditorTransformAction,\n): boolean {\n if (state.mode !== 'editor' || !state.session) return false;\n const document = state.session.getState().workingDocument;\n const selection = state.session.getState().selection;\n cancelActiveOperation(state);\n const validation = validateTransformActionSelection(state, action);\n if (!validation.ok) {\n state.status = validation.message;\n return true;\n }\n const beforeTransforms = state.projection?.readNodeTransforms(selection.selectedIds) ?? {};\n const transformTargets = selection.selectedIds\n .map((id) => {\n const transform = beforeTransforms[id];\n return transform ? { id, transform } : null;\n })\n .filter((target): target is { id: string; transform: EditorTransformSnapshot } => !!target);\n const targets = computeEditorTransformActionTargets({\n action,\n activeId: selection.activeId,\n targets: transformTargets,\n });\n if (targets.length === 0) {\n state.status = `Transform action rejected: ${action}`;\n return true;\n }\n const changedTargets = targets.filter(target => !editorTransformSnapshotsEqual(target.before, target.after));\n if (changedTargets.length === 0) {\n state.status = `Transform action unchanged: ${action}`;\n return true;\n }\n const patch = options.documentAdapter.createTransformBatchPatch?.({\n document,\n targetIds: changedTargets.map(target => target.id),\n activeId: selection.activeId,\n tool: 'move',\n space: 'world',\n constraint: action === 'align-all' ? 'free' : 'axis',\n pivot: createTransformActionPivot(targets),\n targets: changedTargets,\n });\n if (!patch) {\n state.status = `Transform action ignored: ${action}`;\n return true;\n }\n const result = state.session.dispatch({\n type: 'document.patch',\n label: patch.label ?? formatTransformActionStatus(action, changedTargets.length),\n patch: patch.patch,\n targetId: selection.activeId ?? changedTargets[0]?.id,\n ...withProjectionImpact(resolveProjectionImpact(\n patch,\n patch.reprojectIds?.length\n ? createReprojectProjectionImpact(patch.reprojectIds)\n : createTransformProjectionImpact(changedTargets.map(target => target.id)),\n )),\n });\n if (!result.documentChanged) {\n state.status = `Transform action unchanged: ${action}`;\n return true;\n }\n syncProjectionForChangedIds(state, options, result.workingDocument, changedTargets.map(target => target.id));\n state.summary = summarizeDocument(options, result.workingDocument, state.session.getSource());\n state.status = patch.label ?? formatTransformActionStatus(action, changedTargets.length);\n return true;\n}\n\nfunction createTransformActionPivot(targets: EditorTransformTargetSnapshot[]): EditorTransformPivot {\n const center = averageTransformTargetPositions(targets);\n return {\n mode: 'selection-center',\n position: center,\n };\n}\n\nfunction averageTransformTargetPositions(targets: EditorTransformTargetSnapshot[]): EditorTransformVec3 {\n if (targets.length === 0) return { x: 0, y: 0, z: 0 };\n return {\n x: targets.reduce((sum, target) => sum + readEditorTransformPosition(target.before).x, 0) / targets.length,\n y: targets.reduce((sum, target) => sum + readEditorTransformPosition(target.before).y, 0) / targets.length,\n z: targets.reduce((sum, target) => sum + readEditorTransformPosition(target.before).z, 0) / targets.length,\n };\n}\n\nfunction editorTransformSnapshotsEqual(\n left: EditorTransformSnapshot,\n right: EditorTransformSnapshot,\n): boolean {\n return editorTransformMatricesAlmostEqual(\n composeEditorTransformMatrix(left),\n composeEditorTransformMatrix(right),\n );\n}\n\nfunction editorVec3Equal(\n left: EditorTransformVec3,\n right: EditorTransformVec3,\n): boolean {\n return Math.abs(left.x - right.x) < 0.000000001\n && Math.abs(left.y - right.y) < 0.000000001\n && Math.abs(left.z - right.z) < 0.000000001;\n}\n\nfunction formatTransformActionStatus(action: EditorTransformAction, count: number): string {\n return `${action} ${count} object${count === 1 ? '' : 's'}`;\n}\n\nfunction createAssetFromBrowserIntent<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n assetId: string,\n): boolean {\n if (state.transformOperationSettings.placementMode === 'off') {\n return addAssetToDocument(state, options, assetId).ok;\n }\n return armAssetPlacement(state, options, assetId);\n}\n\nfunction selectBrowserAsset<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n assetId: string,\n): boolean {\n if (state.selectedAssetId === assetId) return false;\n state.selectedAssetId = assetId;\n state.status = `Selected asset ${assetId}`;\n return true;\n}\n\nasync function handleBrowserAssetAction<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: LocalEditorBrowserAssetActionInput,\n): Promise<boolean> {\n if (input.browserAssetId) state.selectedAssetId = input.browserAssetId;\n if (input.actionId === 'asset.edit-prefab') {\n return enterPrefabStage(state, options, input);\n }\n if (input.actionId === 'asset.add-to-scene') {\n return input.assetId ? addAssetToDocument(state, options, input.assetId).ok : false;\n }\n if (input.actionId === 'asset.place') {\n if (!input.assetId) return false;\n if (state.transformOperationSettings.placementMode === 'off') {\n state.transformOperationSettings = updateTransformOperationSettings(state.transformOperationSettings, {\n placementMode: 'ground',\n });\n state.gizmo?.setOperationSettings(state.transformOperationSettings);\n }\n return armAssetPlacement(state, options, input.assetId);\n }\n\n const patched = patchBrowserAssetAction(state, options, input);\n if (patched) return true;\n state.status = `Asset action unavailable: ${input.actionId}`;\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n return true;\n}\n\nasync function handleInspectorAction<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: LocalEditorBrowserInspectorActionInput,\n): Promise<boolean> {\n if (!input.actionId.startsWith('prefab.')) {\n const activeId = input.targetId ?? state.session?.getState().selection.activeId ?? null;\n const selectedIds = input.targetIds ?? (activeId ? [activeId] : []);\n return patchBrowserAssetAction(\n state,\n options,\n {\n actionId: input.actionId,\n fieldPath: input.path,\n value: input.params,\n },\n { activeId, selectedIds },\n );\n }\n const assetId = readInspectorActionParamString(input, 'assetId');\n const browserAssetId = readInspectorActionParamString(input, 'browserAssetId')\n ?? (assetId ? resolveBrowserAssetItemId(state, options, assetId) : null)\n ?? undefined;\n if (input.actionId === 'prefab.edit-definition') {\n if (!assetId) {\n state.status = 'Prefab action unavailable: missing prefab asset id';\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n return true;\n }\n return enterPrefabStage(state, options, {\n actionId: 'asset.edit-prefab',\n assetId,\n browserAssetId,\n assetKind: 'prefab',\n });\n }\n if (input.actionId === 'prefab.select-definition' || input.actionId === 'prefab.ping-source') {\n if (!assetId) {\n state.status = `Prefab action unavailable: ${input.actionId}`;\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n return true;\n }\n const selected = browserAssetId ? selectBrowserAsset(state, browserAssetId) : false;\n if (!selected && browserAssetId) {\n state.status = `Selected asset ${browserAssetId}`;\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n return true;\n }\n if (!browserAssetId) {\n state.status = `Asset not visible in browser: ${assetId}`;\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n return true;\n }\n return selected;\n }\n state.status = `Prefab inspector action unavailable: ${input.actionId}`;\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n return true;\n}\n\nfunction readInspectorActionParamString(\n input: LocalEditorBrowserInspectorActionInput,\n key: string,\n): string | undefined {\n const value = input.params?.[key];\n return typeof value === 'string' && value.trim().length > 0 ? value.trim() : undefined;\n}\n\nasync function enterPrefabStage<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: LocalEditorBrowserAssetActionInput,\n): Promise<boolean> {\n if (state.mode !== 'editor') return false;\n const sessionState = state.session?.getState({ cloneDocuments: false });\n const document = sessionState?.workingDocument ?? null;\n const assetId = input.assetId?.trim();\n if (!document || !assetId) return false;\n cancelActiveOperation(state);\n const previousPrefabStage = state.prefabStage;\n const asset = findAssetByResolvedId(state, options, assetId);\n const browserItem = findBrowserAssetItemByResolvedId(state, options, document, input.browserAssetId ?? assetId)\n ?? (input.browserAssetId ? findBrowserAssetItemByResolvedId(state, options, document, assetId) : null);\n const descriptor = options.documentAdapter.getPrefabStageDescriptor?.(document, {\n assetId,\n browserAssetId: input.browserAssetId,\n asset,\n }) ?? createFallbackPrefabStageDescriptor(assetId, input.browserAssetId, browserItem);\n if (!descriptor) {\n state.status = `Prefab stage unavailable: ${assetId}`;\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n return true;\n }\n if (previousPrefabStage) await exitPrefabStage(state, options);\n const prefabScopeRevision = ++state.nextPrefabScopeRevision;\n const documentScopeId = state.scopeOperations\n ? `editor:document:prefab:${prefabScopeRevision}`\n : null;\n const previewScopeId = documentScopeId\n ? `editor:preview:prefab:${prefabScopeRevision}`\n : null;\n if (state.scopeOperations && documentScopeId && previewScopeId) {\n try {\n await state.scopeOperations.openScope({\n id: documentScopeId,\n scope: 'document',\n parentId: PLAYABLE_LOCAL_EDITOR_PROJECT_SCOPE_ID,\n });\n await state.scopeOperations.openScope({\n id: previewScopeId,\n scope: 'preview',\n parentId: documentScopeId,\n });\n state.scopeOperations.addScopeResource(previewScopeId, () => {\n state.prefabComparisonPreview?.clear();\n state.activeTransformPreview = null;\n });\n } catch (error) {\n try { await state.scopeOperations.closeScope(documentScopeId); }\n catch (cleanupError) {\n const combined = new Error('Prefab lifecycle scope open and rollback failed.') as Error & { errors: unknown[] };\n combined.errors = [error, cleanupError];\n throw combined;\n }\n state.status = `Prefab stage lifecycle unavailable: ${descriptor.label}`;\n state.statusTone = 'error';\n state.statusToneStatus = state.status;\n state.statusDetails = stringifyLocalEditorError(error) ?? 'Unknown lifecycle scope error';\n return true;\n }\n }\n state.prefabStage = {\n descriptor,\n asset,\n documentScopeId,\n previewScopeId,\n selectedItemId: 'prefab-root',\n restoreGridVisible: previousPrefabStage?.restoreGridVisible ?? state.gridVisible,\n restoreSceneCameraPreviewEnabled: previousPrefabStage?.restoreSceneCameraPreviewEnabled ?? state.sceneCameraPreviewEnabled,\n };\n setGridVisibleForEditorContext(state, false, 'prefab-stage-enter-grid');\n state.sceneCameraPreviewEnabled = false;\n state.sceneCameraPreview?.setActive(false);\n state.status = `Editing Prefab ${descriptor.label}`;\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n rebuildProjectionFromDocument(state, options, document, EMPTY_EDITOR_SELECTION);\n syncTransformOperationSettingsToSceneArtifacts(state, 'prefab-stage-enter-operation-settings');\n return true;\n}\n\nasync function exitPrefabStage<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): Promise<boolean> {\n if (!state.prefabStage) return false;\n const sessionState = state.session?.getState({ cloneDocuments: false });\n const label = sessionState?.workingDocument\n ? resolvePrefabStageDescriptorForDocument(state, options, sessionState.workingDocument)?.label ?? state.prefabStage.descriptor.label\n : state.prefabStage.descriptor.label;\n const prefabStage = state.prefabStage;\n const restoreGridVisible = prefabStage.restoreGridVisible;\n const restoreSceneCameraPreviewEnabled = prefabStage.restoreSceneCameraPreviewEnabled;\n await closePrefabStageLifecycleScopes(state, prefabStage);\n state.prefabStage = null;\n setGridVisibleForEditorContext(state, restoreGridVisible, 'prefab-stage-exit-grid');\n if (sessionState?.workingDocument) {\n rebuildProjectionFromDocument(state, options, sessionState.workingDocument, sessionState.selection);\n }\n syncTransformOperationSettingsToSceneArtifacts(state, 'prefab-stage-exit-operation-settings');\n state.sceneCameraPreviewEnabled = restoreSceneCameraPreviewEnabled;\n if (restoreSceneCameraPreviewEnabled) syncSceneCameraPreview(state, options);\n else state.sceneCameraPreview?.setActive(false);\n state.status = `Exited Prefab ${label}`;\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n return true;\n}\n\nasync function closePrefabStageLifecycleScopes<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n stage: LocalEditorHarnessPrefabStageRuntimeState<TDocument, TAsset>,\n): Promise<void> {\n if (!stage.documentScopeId) return;\n await state.scopeOperations?.closeScope(stage.documentScopeId);\n}\n\nfunction selectPrefabStageItem<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n itemId: string,\n): boolean {\n if (!state.prefabStage || state.prefabStage.selectedItemId === itemId) return false;\n state.prefabStage = {\n ...state.prefabStage,\n selectedItemId: itemId,\n };\n return true;\n}\n\nfunction selectPrefabStageItemWithPreviewSync<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n itemId: string,\n): boolean {\n const changed = selectPrefabStageItem(state, itemId);\n if (changed) syncPrefabStageSelectionToProjection(state, options, 'prefab-stage-selection');\n return changed;\n}\n\nfunction getCurrentPrefabStageProjectionSelection<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): EditorSelectionState {\n const stage = state.prefabStage;\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n if (!stage || !document || !stage.selectedItemId) return EMPTY_EDITOR_SELECTION;\n const descriptor = resolvePrefabStageDescriptorForDocument(state, options, document) ?? stage.descriptor;\n const context = createPrefabStageContext(state, descriptor);\n const item = findPrefabStageStructureItemById(\n options.documentAdapter.getPrefabStageStructure?.(document, descriptor, context) ?? createFallbackPrefabStageStructure(descriptor),\n stage.selectedItemId,\n );\n if (!item?.nodeId) return EMPTY_EDITOR_SELECTION;\n const projectionNodeId = resolvePrefabStageProjectionNodeIdForNode(state, options, document, item.nodeId);\n if (!projectionNodeId) return EMPTY_EDITOR_SELECTION;\n const target = resolvePrefabStagePreviewTarget(state, options, document, projectionNodeId);\n if (!target?.selectable) return EMPTY_EDITOR_SELECTION;\n return {\n selectedIds: [projectionNodeId],\n activeId: projectionNodeId,\n };\n}\n\nfunction syncPrefabStageSelectionToProjection<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n reason = 'prefab-stage-projection-selection',\n revision = state.editorStateRevision,\n): void {\n if (!state.prefabStage) return;\n if (!beginSceneArtifactSync(state, reason, revision)) return;\n const projectionSelection = getCurrentPrefabStageProjectionSelection(state, options);\n state.projection?.syncSelection(projectionSelection);\n state.gizmo?.setSelection(getCurrentPrefabStageTransformGizmoSelection(state, options, projectionSelection));\n syncTransformGizmoToSceneArtifacts(state, reason, revision, false);\n}\n\nfunction getCurrentPrefabStageTransformGizmoSelection<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n selection = getCurrentPrefabStageProjectionSelection(state, options),\n): EditorSelectionState {\n const activeId = selection.activeId;\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n if (!activeId || !state.prefabStage || !document) return EMPTY_EDITOR_SELECTION;\n const target = resolvePrefabStagePreviewTarget(state, options, document, activeId);\n return target?.transformable ? selection : EMPTY_EDITOR_SELECTION;\n}\n\nfunction isPrefabStageProjectionSelectable<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n projectionNodeId: string,\n): boolean {\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n if (!state.prefabStage || !document) return false;\n return resolvePrefabStagePreviewTarget(state, options, document, projectionNodeId)?.selectable === true;\n}\n\nfunction dispatchPrefabStageProjectionSelectionCommand<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n command: SelectionCommand,\n): boolean {\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n if (!state.prefabStage || !document) return false;\n const currentProjectionSelection = getCurrentPrefabStageProjectionSelection(state, options);\n if (command.type === 'selection.clear') {\n if (state.prefabStage.selectedItemId === null) return false;\n state.prefabStage = { ...state.prefabStage, selectedItemId: null };\n state.editorStateRevision += 1;\n syncPrefabStageSelectionToProjection(state, options, 'prefab-stage-selection-clear', state.editorStateRevision);\n return true;\n }\n\n const candidateId = ('activeId' in command ? command.activeId : null)\n ?? command.selectedIds[command.selectedIds.length - 1]\n ?? null;\n if (!candidateId) return false;\n const target = resolvePrefabStagePreviewTarget(state, options, document, candidateId);\n if (!target?.selectable) return false;\n\n const currentlySelected = currentProjectionSelection.selectedIds.includes(candidateId);\n if (\n (command.type === 'selection.toggle' && currentlySelected)\n || (command.type === 'selection.remove' && currentlySelected)\n ) {\n state.prefabStage = { ...state.prefabStage, selectedItemId: null };\n state.editorStateRevision += 1;\n syncPrefabStageSelectionToProjection(state, options, 'prefab-stage-selection-remove', state.editorStateRevision);\n return true;\n }\n if (command.type === 'selection.remove') return false;\n\n const nextItemId = target.itemId ?? `prefab-node:${target.targetId}`;\n if (state.prefabStage.selectedItemId === nextItemId) return false;\n state.prefabStage = { ...state.prefabStage, selectedItemId: nextItemId };\n state.editorStateRevision += 1;\n syncPrefabStageSelectionToProjection(state, options, 'prefab-stage-selection-command', state.editorStateRevision);\n return true;\n}\n\nfunction resolvePrefabStagePreviewTarget<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n projectionNodeId: string,\n): LocalEditorHarnessPreviewTarget | null {\n const stage = state.prefabStage;\n if (!stage) return null;\n const descriptor = resolvePrefabStageDescriptorForDocument(state, options, document) ?? stage.descriptor;\n const context = createPrefabStageContext(state, descriptor);\n const adapterTarget = options.documentAdapter.resolvePrefabStagePreviewTarget?.(\n document,\n descriptor,\n projectionNodeId,\n context,\n );\n if (adapterTarget) return adapterTarget;\n return resolvePrefabStagePreviewTargetFromStructure(\n descriptor,\n projectionNodeId,\n options.documentAdapter.getPrefabStageStructure?.(document, descriptor, context) ?? createFallbackPrefabStageStructure(descriptor),\n );\n}\n\nfunction resolvePrefabStageProjectionNodeIdForNode<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n nodeId: string,\n): string | null {\n const stage = state.prefabStage;\n if (!stage) return null;\n const descriptor = resolvePrefabStageDescriptorForDocument(state, options, document) ?? stage.descriptor;\n const context = createPrefabStageContext(state, descriptor);\n const adapterProjectionNodeId = options.documentAdapter.getPrefabStageProjectionNodeId?.(\n document,\n descriptor,\n nodeId,\n context,\n );\n if (adapterProjectionNodeId) return adapterProjectionNodeId;\n const target = findPrefabStageStructureNodeByNodeId(\n options.documentAdapter.getPrefabStageStructure?.(document, descriptor, context) ?? createFallbackPrefabStageStructure(descriptor),\n nodeId,\n );\n return target?.nodeId ? createFallbackPrefabStageProjectionNodeId(descriptor, target.nodeId) : null;\n}\n\nfunction resolvePrefabStagePreviewTargetFromStructure<TDocument>(\n descriptor: LocalEditorHarnessPrefabStageDescriptor<TDocument>,\n projectionNodeId: string,\n items: readonly LocalEditorHarnessPrefabStageStructureItem[],\n): LocalEditorHarnessPreviewTarget | null {\n const prefix = descriptor.previewNodeId;\n if (!prefix || projectionNodeId.includes(':compare-')) return null;\n for (const item of flattenPrefabStageStructureNodes(items)) {\n if (!item.nodeId) continue;\n const expectedProjectionNodeId = createFallbackPrefabStageProjectionNodeId(descriptor, item.nodeId);\n if (expectedProjectionNodeId !== projectionNodeId) continue;\n const readonly = descriptor.readonly === true || item.readonly === true;\n const isRoot = item.kind === 'root';\n return {\n scopeId: `prefab-stage:${descriptor.assetId}`,\n scopeKind: 'prefab-stage',\n projectionNodeId,\n targetId: item.nodeId,\n itemId: item.id,\n label: item.label,\n kind: item.kind,\n selectable: true,\n transformable: !readonly && !isRoot,\n readonly,\n ...(!readonly && !isRoot ? {} : { disabledReason: readonly ? 'Prefab stage is readonly.' : 'Prefab root cannot be transformed from Preview.' }),\n };\n }\n return null;\n}\n\nfunction createFallbackPrefabStageProjectionNodeId<TDocument>(\n descriptor: LocalEditorHarnessPrefabStageDescriptor<TDocument>,\n nodeId: string,\n): string | null {\n const prefix = descriptor.previewNodeId;\n if (!prefix) return null;\n return nodeId === 'prefab-root' ? prefix : `${prefix}:${nodeId}`;\n}\n\nfunction findPrefabStageStructureNodeByNodeId(\n items: readonly LocalEditorHarnessPrefabStageStructureItem[],\n nodeId: string,\n): LocalEditorHarnessPrefabStageStructureItem | null {\n return flattenPrefabStageStructureNodes(items).find(item => item.nodeId === nodeId) ?? null;\n}\n\nfunction findPrefabStageStructureItemById(\n items: readonly LocalEditorHarnessPrefabStageStructureItem[],\n itemId: string,\n): LocalEditorHarnessPrefabStageStructureItem | null {\n return flattenPrefabStageStructureNodes(items).find(item => item.id === itemId) ?? null;\n}\n\nfunction flattenPrefabStageStructureNodes(\n items: readonly LocalEditorHarnessPrefabStageStructureItem[],\n): LocalEditorHarnessPrefabStageStructureItem[] {\n const flattened: LocalEditorHarnessPrefabStageStructureItem[] = [];\n for (const item of items) {\n if (item.itemType === 'prefab-node' && item.nodeId) flattened.push(item);\n flattened.push(...flattenPrefabStageStructureNodes(item.children ?? []));\n }\n return flattened;\n}\n\nfunction createFallbackPrefabStageDescriptor<TDocument>(\n assetId: string,\n browserAssetId: string | undefined,\n item: LocalEditorBrowserUiAssetItem | null,\n): LocalEditorHarnessPrefabStageDescriptor<TDocument> | null {\n if (!item?.prefab) return null;\n return {\n assetId: item.prefab.id || item.assetId || assetId,\n browserAssetId: browserAssetId ?? item.id,\n label: item.prefab.name || item.label || item.prefab.id || assetId,\n sourceAssetId: item.prefab.sourceAssetId,\n sourceAssetGuid: item.prefab.sourceAssetGuid,\n readonly: item.prefab.readonly === true,\n previewNodeId: `prefab-stage:${item.prefab.id || item.assetId || assetId}`,\n };\n}\n\nfunction resolvePrefabStageDescriptorForDocument<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n): LocalEditorHarnessPrefabStageDescriptor<TDocument> | null {\n const stage = state.prefabStage;\n if (!stage) return null;\n const assetId = stage.descriptor.assetId;\n const browserAssetId = stage.descriptor.browserAssetId;\n const descriptor = options.documentAdapter.getPrefabStageDescriptor?.(document, {\n assetId,\n browserAssetId,\n asset: stage.asset,\n });\n if (descriptor) {\n return {\n ...stage.descriptor,\n ...descriptor,\n browserAssetId: descriptor.browserAssetId ?? browserAssetId,\n previewNodeId: descriptor.previewNodeId ?? stage.descriptor.previewNodeId,\n };\n }\n const browserItem = findBrowserAssetItemByResolvedId(state, options, document, browserAssetId ?? assetId)\n ?? (browserAssetId ? findBrowserAssetItemByResolvedId(state, options, document, assetId) : null);\n return createFallbackPrefabStageDescriptor(assetId, browserAssetId, browserItem) ?? stage.descriptor;\n}\n\nfunction patchBrowserAssetAction<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: LocalEditorBrowserAssetActionInput,\n selectionOverride?: { activeId: string | null; selectedIds: string[] },\n): boolean {\n const session = state.session;\n const document = session?.getState().workingDocument ?? null;\n if (!session || !document || !options.documentAdapter.createAssetActionPatch) return false;\n const asset = input.assetId ? findAssetByResolvedId(state, options, input.assetId) : null;\n const sessionSelection = session.getState().selection;\n const patch = options.documentAdapter.createAssetActionPatch({\n ...input,\n document,\n asset,\n activeId: selectionOverride?.activeId ?? sessionSelection.activeId,\n selectedIds: selectionOverride?.selectedIds ?? [...sessionSelection.selectedIds],\n });\n if (!patch) return false;\n const result = session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Asset action ${input.actionId}`,\n patch: patch.patch,\n ...withProjectionImpact(resolveProjectionImpact(\n patch,\n patch.reprojectIds?.length\n ? createReprojectProjectionImpact(patch.reprojectIds)\n : patch.changedIds?.length\n ? createReprojectProjectionImpact(patch.changedIds)\n : undefined,\n )),\n });\n state.summary = summarizeDocument(options, result.workingDocument, session.getSource());\n state.status = patch.label ?? `Asset action ${input.actionId}`;\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n if (patch.reprojectIds?.length) reprojectProjectionForChangedIds(state, options, result.workingDocument, patch.reprojectIds);\n else if (patch.changedIds) syncProjectionForChangedIds(state, options, result.workingDocument, patch.changedIds);\n else if (state.prefabStage && result.documentChanged) {\n rebuildProjectionFromDocument(state, options, result.workingDocument, EMPTY_EDITOR_SELECTION);\n }\n if (result.documentChanged && isPrefabStageShadowAssetAction(input)) {\n state.shadowPreview?.invalidateStaticProjectedArtifact?.();\n scheduleProjectionShadowPreviewRefresh(state, 'prefab-stage-shadow-policy-action');\n }\n syncPrefabStageSelectionFromAssetAction(state, options, input, patch.createdId ?? patch.changedId ?? null);\n if (input.actionId === 'asset.delete-material' && input.browserAssetId && state.selectedAssetId === input.browserAssetId) {\n state.selectedAssetId = null;\n }\n selectCreatedBrowserAssetFromPatch(state, options, patch.createdId ?? null, input);\n return true;\n}\n\nfunction isPrefabStageShadowAssetAction(input: LocalEditorBrowserAssetActionInput): boolean {\n if (input.actionId === 'prefab.node.setShadow') return true;\n if (input.actionId !== 'asset.edit-prefab-field') return false;\n const fieldPath = typeof input.fieldPath === 'string' ? input.fieldPath.trim() : '';\n return fieldPath.startsWith('prefab.defaults.shadow.');\n}\n\nfunction syncPrefabStageSelectionFromAssetAction<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: LocalEditorBrowserAssetActionInput,\n nodeId: string | null,\n): void {\n if (!state.prefabStage) return;\n const isPrefabNodeAction = input.actionId.startsWith('prefab.node.')\n || input.actionId === 'asset.add-to-current-prefab';\n if (!isPrefabNodeAction) return;\n if (input.actionId === 'prefab.node.delete') {\n const rootId = typeof nodeId === 'string' && nodeId ? nodeId : 'prefab-root';\n state.prefabStage = {\n ...state.prefabStage,\n selectedItemId: `prefab-node:${rootId}`,\n };\n syncPrefabStageSelectionToProjection(state, options, 'prefab-stage-selection-delete');\n return;\n }\n if (!nodeId) return;\n state.prefabStage = {\n ...state.prefabStage,\n selectedItemId: `prefab-node:${nodeId}`,\n };\n syncPrefabStageSelectionToProjection(state, options, 'prefab-stage-selection-asset-action');\n}\n\nfunction selectCreatedBrowserAssetFromPatch<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n createdId: string | null,\n input: LocalEditorBrowserAssetActionInput,\n): void {\n if (!createdId) return;\n const browserAssetId = resolveBrowserAssetItemId(state, options, createdId)\n ?? resolveBrowserAssetItemId(state, options, `material:${createdId}`);\n if (browserAssetId) state.selectedAssetId = browserAssetId;\n else if (input.actionId === 'asset.create-material' || input.actionId === 'asset.duplicate-material') {\n state.selectedAssetId = `material:${createdId}`;\n } else if (\n input.actionId === 'asset.create-prefab'\n || input.actionId === 'asset.create-prefab-from-game-object'\n || input.actionId === 'asset.duplicate-prefab'\n ) {\n state.selectedAssetId = resolveBrowserAssetItemId(state, options, `prefab:${createdId}`) ?? `prefab:${createdId}`;\n }\n}\n\nfunction armAssetPlacement<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n assetId: string,\n): boolean {\n if (state.mode !== 'editor') return false;\n cancelActiveOperation(state);\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n const asset = findAssetOrDocumentBrowserItemByResolvedId(state, options, document, assetId);\n if (!asset) return false;\n state.armedPlacement = { assetId, asset };\n state.gizmo?.setPlacementMarker(null);\n state.status = `Placement armed: ${formatAssetLabel(asset, assetId)} (${state.transformOperationSettings.placementMode})`;\n return true;\n}\n\nfunction isPlacementArmed<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): boolean {\n return state.mode === 'editor'\n && !!state.armedPlacement\n && state.transformOperationSettings.placementMode !== 'off';\n}\n\nfunction previewArmedPlacement<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n event: PointerEvent,\n): boolean {\n if (!isPlacementArmed(state)) return false;\n const hit = pickArmedPlacementHit(state, event);\n state.gizmo?.setPlacementMarker(hit);\n const mode = state.transformOperationSettings.placementMode;\n state.status = hit\n ? `Placement ${mode}: ${formatVec3(hit.position)}`\n : `Placement ${mode}: no hit`;\n return true;\n}\n\nfunction commitArmedPlacement<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n event: PointerEvent,\n): boolean {\n if (!isPlacementArmed(state) || !state.session) return false;\n const armed = state.armedPlacement;\n const session = state.session;\n const beforeDocument = session.getState().workingDocument;\n const hit = pickArmedPlacementHit(state, event);\n if (!armed || !hit) {\n state.gizmo?.setPlacementMarker(null);\n state.status = 'Placement rejected: no hit';\n return true;\n }\n const patch = options.documentAdapter.createPlacedAssetPatch?.({\n document: beforeDocument,\n asset: armed.asset,\n hit,\n });\n if (!patch) {\n state.status = 'Placement rejected: document adapter does not support placed assets';\n return true;\n }\n const result = session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Place ${armed.assetId}`,\n patch: patch.patch,\n targetId: patch.createdId ?? undefined,\n ...withProjectionImpact(resolveProjectionImpact(\n patch,\n createKnownCreatedReprojectProjectionImpact({\n createdNodeIds: [patch.createdId],\n reprojectIds: patch.reprojectIds,\n }),\n )),\n });\n if (!result.documentChanged) {\n state.status = 'Placement unchanged';\n return true;\n }\n const createdId = patch.createdId\n ?? options.documentAdapter.findCreatedId?.(beforeDocument, result.workingDocument)\n ?? null;\n let selection = result.selection;\n if (createdId && isNodeSelectableInDocument(options, result.workingDocument, createdId)) {\n selection = session.dispatch({\n type: 'selection.replace',\n selectedIds: [createdId],\n activeId: createdId,\n label: 'Select Placed Item',\n }).selection;\n } else {\n selection = sanitizeSelection(state, options, result.workingDocument, selection) ?? selection;\n }\n clearArmedPlacement(state);\n rebuildProjectionFromDocument(state, options, result.workingDocument, selection);\n state.summary = summarizeDocument(options, result.workingDocument, session.getSource());\n state.status = patch.label ?? `Placed ${formatAssetLabel(armed.asset, armed.assetId)} at ${formatVec3(hit.position)}`;\n return true;\n}\n\nfunction pickArmedPlacementHit<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n event: PointerEvent,\n): EditorPlacementHit | null {\n const mode = state.transformOperationSettings.placementMode;\n return mode === 'off'\n ? null\n : state.gizmo?.pickPlacementHit(event.clientX, event.clientY, mode) ?? null;\n}\n\nfunction clearArmedPlacement<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): void {\n state.armedPlacement = null;\n state.gizmo?.setPlacementMarker(null);\n}\n\nfunction addAssetToDocument<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n assetId: string,\n createOptions: LocalEditorHarnessAssetCreationOptions = {},\n): LocalEditorHarnessAssetCreationResult {\n if (state.mode !== 'editor') {\n state.status = 'Asset creation rejected: editor is not active';\n return { ok: false, assetId, changed: false, status: state.status, error: 'editor_not_active' };\n }\n cancelActiveOperation(state);\n const session = state.session;\n const beforeDocument = session?.getState().workingDocument;\n if (!session || !beforeDocument) {\n state.status = 'Asset creation rejected: document is not loaded';\n return { ok: false, assetId, changed: false, status: state.status, error: 'document_not_loaded' };\n }\n const asset = findAssetOrDocumentBrowserItemByResolvedId(state, options, beforeDocument, assetId);\n if (!asset) {\n state.status = `Asset creation rejected: ${assetId} not found`;\n return { ok: false, assetId, changed: false, status: state.status, error: 'asset_not_found' };\n }\n const patch = options.documentAdapter.createPatchFromAsset(asset, {\n document: beforeDocument,\n asset,\n assetId,\n name: createOptions.name,\n placement: createOptions.placement,\n });\n const result = session.dispatch({\n type: 'document.patch',\n label: patch.label ?? 'Create Object From Asset',\n patch: patch.patch,\n ...withProjectionImpact(resolveProjectionImpact(\n patch,\n createKnownCreatedReprojectProjectionImpact({\n createdNodeIds: [patch.createdId],\n reprojectIds: patch.reprojectIds,\n }),\n )),\n });\n const createdId = patch.createdId\n ?? options.documentAdapter.findCreatedId?.(beforeDocument, result.workingDocument)\n ?? null;\n let selectionResult: EditorSessionDispatchResult<TDocument> | null = null;\n if (createdId && createOptions.select !== false) {\n selectionResult = session.dispatch({\n type: 'selection.replace',\n selectedIds: [createdId],\n activeId: createdId,\n label: 'Select Created Item',\n });\n }\n state.summary = summarizeDocument(options, result.workingDocument, session.getSource());\n state.status = `Added ${assetId}`;\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n if (createdId) {\n const projectedNode = options.documentAdapter.getProjectionNode(result.workingDocument, createdId);\n if (projectedNode) {\n state.projection?.projectNode(projectedNode);\n if (selectionResult) syncSelectionToProjection(state, options, selectionResult.selection);\n invalidateEditorScene(state, 'projection-project-node');\n }\n }\n return {\n ok: true,\n assetId,\n changed: result.documentChanged,\n status: state.status,\n createdId: createdId ?? null,\n };\n}\n\nfunction patchSerializedProperty<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: LocalEditorBrowserUiPropertyInput,\n): boolean {\n if (state.mode !== 'editor') return false;\n cancelActiveOperation(state);\n if (!state.session) return false;\n const sessionState = state.session.getState({ cloneDocuments: false });\n const document = sessionState.workingDocument;\n const targetIds = input.targetIds && input.targetIds.length > 0 ? input.targetIds : [input.targetId];\n const transaction = createInspectorEditTransaction(state, options, document, input, targetIds);\n if (!transaction.ok) {\n state.status = transaction.message;\n return false;\n }\n const payload = transaction.payload;\n if (state.prefabStage) {\n return patchPrefabStageInspectorProperty(state, options, payload);\n }\n const markerGraphPatched = patchMarkerGraphInspectorProperty(state, options, document, payload);\n if (markerGraphPatched !== null) return markerGraphPatched;\n const shouldReprojectInspectorEdit = shouldReprojectEditorInspectorEditPath(payload.path);\n if (targetIds.length > 1) {\n const patch = options.documentAdapter.createSerializedMultiPropertyPatch?.({\n document,\n targetIds,\n activeId: sessionState.selection.activeId,\n path: payload.path,\n value: payload.value,\n control: payload.control,\n valueType: payload.valueType,\n commitMode: payload.commitMode,\n persistence: payload.persistence,\n source: payload.source,\n });\n if (!patch) return false;\n const changedIds = patch.changedIds ?? targetIds;\n const projectionMetadataPatch = isSerializedProjectionMetadataPath(payload.path);\n const shadowTopologyMetadataPatch = isSerializedShadowTopologyMetadataPath(payload.path);\n const largeProjectionMetadataPatch = projectionMetadataPatch\n && !shadowTopologyMetadataPatch\n && changedIds.length >= LARGE_SHADOW_MODE_BATCH_THRESHOLD;\n const invalidateStaticShadowArtifact = projectionMetadataPatch && isSerializedShadowMetadataPath(payload.path);\n const result = state.session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Patch ${payload.path} on ${targetIds.length} objects`,\n patch: patch.patch,\n targetId: sessionState.selection.activeId ?? undefined,\n ...withProjectionImpact(resolveProjectionImpact(\n patch,\n patch.reprojectIds?.length\n ? createReprojectProjectionImpact(patch.reprojectIds)\n : shouldReprojectInspectorEdit\n ? createReprojectProjectionImpact(changedIds)\n : isSerializedTransformPath(payload.path)\n ? createTransformProjectionImpact(targetIds)\n : undefined,\n )),\n }, largeProjectionMetadataPatch\n ? {\n assumeDocumentChanged: true,\n assumeDirty: true,\n clonePatchInput: false,\n cloneResultDocument: false,\n }\n : undefined);\n if (!result.documentChanged) return false;\n const projectionSyncIds = isSerializedTransformPath(payload.path) ? targetIds : changedIds;\n const workingDocument = result.workingDocument;\n if (patch.reprojectIds?.length) reprojectProjectionForChangedIds(state, options, workingDocument, patch.reprojectIds);\n else if (shouldReprojectInspectorEdit) reprojectProjectionForChangedIds(state, options, workingDocument, changedIds);\n else if (shadowTopologyMetadataPatch) {\n rebuildProjectionAfterShadowTopologyMetadataPatch(state, options, workingDocument, sessionState.selection);\n }\n else if (isSerializedProjectionMetadataPath(payload.path)) {\n syncProjectionMetadataForChangedIds(state, options, workingDocument, projectionSyncIds, {\n deferShadowPreviewRefresh: largeProjectionMetadataPatch,\n invalidateStaticShadowArtifact,\n });\n }\n else syncProjectionForChangedIds(state, options, workingDocument, projectionSyncIds);\n if (isMarkerInspectorEditPath(payload.path)) {\n syncMarkerOverlayToSceneArtifacts(state, options, result.selection);\n state.gizmo?.refreshSelection();\n }\n state.summary = summarizeDocument(options, workingDocument, state.session.getSource());\n state.status = patch.label ?? `Patch ${payload.path} on ${targetIds.length} objects`;\n return true;\n }\n const patch = options.documentAdapter.createSerializedPropertyPatch({\n document,\n targetId: payload.targetId,\n targetIds: payload.targetIds,\n path: payload.path,\n value: payload.value,\n control: payload.control,\n valueType: payload.valueType,\n commitMode: payload.commitMode,\n persistence: payload.persistence,\n source: payload.source,\n });\n if (!patch) return false;\n const result = state.session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Patch ${payload.path}`,\n patch: patch.patch,\n ...withProjectionImpact(resolveProjectionImpact(\n patch,\n patch.reprojectIds?.length\n ? createReprojectProjectionImpact(patch.reprojectIds)\n : shouldReprojectInspectorEdit\n ? createReprojectProjectionImpact(patch.changedIds ?? [patch.changedId ?? payload.targetId])\n : isSerializedTransformPath(payload.path)\n ? createTransformProjectionImpact([patch.changedId ?? payload.targetId])\n : undefined,\n )),\n });\n if (patch.reprojectIds?.length) reprojectProjectionForChangedIds(state, options, result.workingDocument, patch.reprojectIds);\n else if (shouldReprojectInspectorEdit) {\n reprojectProjectionForChangedIds(state, options, result.workingDocument, patch.changedIds ?? [patch.changedId ?? payload.targetId]);\n }\n else if (isSerializedShadowTopologyMetadataPath(payload.path)) {\n const selection = state.session?.getState({ cloneDocuments: false }).selection ?? EMPTY_EDITOR_SELECTION;\n rebuildProjectionAfterShadowTopologyMetadataPatch(state, options, result.workingDocument, selection);\n }\n else if (isSerializedProjectionMetadataPath(payload.path)) {\n syncProjectionMetadataForChangedIds(state, options, result.workingDocument, patch.changedIds ?? [patch.changedId ?? payload.targetId], {\n invalidateStaticShadowArtifact: isSerializedShadowMetadataPath(payload.path),\n });\n }\n else if (isSerializedTransformPath(payload.path)) syncProjectionForChangedIds(state, options, result.workingDocument, [patch.changedId ?? payload.targetId]);\n else if (patch.changedIds) syncProjectionForChangedIds(state, options, result.workingDocument, patch.changedIds);\n else syncProjectionForDispatchResult(state, options, result, patch.changedId ?? payload.targetId);\n if (isMarkerInspectorEditPath(payload.path)) {\n syncMarkerOverlayToSceneArtifacts(state, options, result.selection);\n state.gizmo?.refreshSelection();\n }\n state.summary = summarizeDocument(options, result.workingDocument, state.session.getSource());\n state.status = patch.label ?? `Patched ${payload.path}`;\n return true;\n}\n\nfunction patchPrefabStageInspectorProperty<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n payload: InspectorEditPayload,\n): boolean {\n if (payload.persistence !== 'document') {\n state.status = `Prefab field is not document-editable: ${payload.path}.`;\n return false;\n }\n const session = state.session;\n const document = session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n if (!document) return false;\n const descriptor = resolvePrefabStageDescriptorForDocument(state, options, document) ?? state.prefabStage?.descriptor ?? null;\n if (!descriptor) {\n state.status = 'Prefab stage is not ready.';\n return false;\n }\n return patchBrowserAssetAction(state, options, {\n actionId: 'asset.edit-prefab-field',\n assetId: descriptor.assetId,\n browserAssetId: descriptor.browserAssetId,\n assetKind: 'prefab',\n fieldPath: payload.path,\n value: payload.value,\n });\n}\n\nfunction isMarkerInspectorEditPath(path: string): boolean {\n return path === 'name' || path.startsWith('marker.');\n}\n\nfunction patchMarkerGraphInspectorProperty<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n payload: InspectorEditPayload,\n): boolean | null {\n if (!isMarkerInspectorEditPath(payload.path)) return null;\n const graph = options.documentAdapter.getMarkerGraph?.(document) ?? null;\n const hierarchy = options.documentAdapter.getHierarchyItems(document);\n if (!readMarkerGraphHierarchyMarkerIdForGraph(graph, payload.targetId, hierarchy)) return null;\n const markerTypes = options.documentAdapter.getMarkerTypeCatalog?.(document) ?? [];\n const command = createMarkerGraphPatchFromInspectorEdit(graph, payload, hierarchy, markerTypes);\n if (!command) {\n state.status = `Marker edit rejected: ${payload.path}`;\n return false;\n }\n const patch = options.documentAdapter.createMarkerGraphPatch?.(document, command);\n if (!patch) {\n state.status = `Marker edit rejected: ${payload.targetId}`;\n return false;\n }\n const result = state.session?.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Patch marker ${payload.path}`,\n patch: patch.patch,\n targetId: payload.targetId,\n });\n if (!result?.documentChanged) return false;\n syncProjectionForDispatchResult(state, options, result, patch.changedId ?? payload.targetId);\n syncMarkerOverlayToSceneArtifacts(state, options, result.selection);\n state.gizmo?.refreshSelection();\n state.summary = summarizeDocument(options, result.workingDocument, state.session?.getSource());\n state.status = patch.label ?? `Patched marker ${payload.path}`;\n return true;\n}\n\nfunction patchMarkerTypeCatalog<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: LocalEditorBrowserMarkerTypeActionInput,\n): boolean {\n if (state.mode !== 'editor') return false;\n cancelActiveOperation(state);\n const document = state.session?.getState().workingDocument ?? null;\n if (!document) return false;\n const graph = options.documentAdapter.getMarkerGraph?.(document) ?? null;\n if (!graph || !options.documentAdapter.createMarkerGraphPatch) return false;\n const command = createMarkerTypeCatalogCommand(input);\n if (!command) {\n state.status = 'Marker type edit rejected';\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n return false;\n }\n const patch = options.documentAdapter.createMarkerGraphPatch(document, command);\n if (!patch) {\n state.status = `Marker type edit rejected: ${input.type}`;\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n return false;\n }\n const session = state.session;\n if (!session) return false;\n const result = session.dispatch({\n type: 'document.patch',\n label: patch.label ?? 'Patch marker type catalog',\n patch: patch.patch,\n targetId: session.getState().selection.activeId ?? undefined,\n });\n if (!result.documentChanged) return false;\n syncMarkerOverlayToSceneArtifacts(state, options, result.selection);\n state.summary = summarizeDocument(options, result.workingDocument, session.getSource());\n state.status = patch.label ?? 'Patched marker type catalog';\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n return true;\n}\n\nfunction patchMarkerRelation<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: LocalEditorMarkerRelationActionInput,\n): boolean {\n if (state.mode !== 'editor') return false;\n cancelActiveOperation(state);\n const document = state.session?.getState().workingDocument ?? null;\n if (!document) return false;\n const graph = options.documentAdapter.getMarkerGraph?.(document) ?? null;\n if (!graph) return false;\n const hierarchy = options.documentAdapter.getHierarchyItems(document);\n const activeId = state.session?.getState().selection.activeId ?? null;\n const activeMarkerId = activeId ? readSpatialMarkerIdFromHierarchySelection(graph, activeId, hierarchy) : null;\n if (input.action === 'pick-cancel') {\n state.markerRelationPick = null;\n state.status = '已取消关系端点拾取。';\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n return true;\n }\n if (input.action === 'pick-start') {\n const relationTypes = options.documentAdapter.getRelationTypeCatalog?.(document) ?? [];\n const type = input.type.trim();\n if (!type) {\n state.status = '请选择关系类型。';\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n state.statusDetails = state.status;\n return true;\n }\n const typeDefinition = relationTypes.find(definition => definition.type === type);\n const from = createMarkerRelationPickEndpoint(input.fromKind, input.fromId);\n const directed = input.directed ?? typeDefinition?.directed ?? true;\n const typeLabel = typeDefinition?.label ?? type;\n const status = from\n ? `关系拾取中:${formatMarkerRelationPickEndpointLabel(from, graph, hierarchy)} ${typeLabel} ... 请在视口点击终点。`\n : `关系拾取中:请选择 ${typeLabel} 的起点。`;\n state.markerRelationPick = {\n active: true,\n type,\n typeLabel,\n directed,\n from,\n status,\n statusTone: 'success',\n };\n state.status = status;\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '关系拾取会消费下一次有效视口点击,不改变当前选择。';\n return true;\n }\n if (input.action === 'select') {\n const relationId = input.relationId.trim();\n if (!relationId) return false;\n const relation = graph.relations.find(candidate => candidate.id === relationId) ?? null;\n state.activeMarkerRelationId = relationId;\n state.status = relation ? `高亮关系:${relation.label ?? relation.type}` : `关系不存在:${relationId}`;\n state.statusTone = relation ? 'success' : 'warning';\n state.statusToneStatus = state.status;\n state.statusDetails = relation ? relationId : state.status;\n syncMarkerOverlayToSceneArtifacts(\n state,\n options,\n state.session?.getState().selection ?? { selectedIds: [], activeId: null },\n );\n requestEditorSceneFrame(state, 'marker-relation-select');\n return true;\n }\n if (!options.documentAdapter.createMarkerGraphPatch) return false;\n const relationTypes = options.documentAdapter.getRelationTypeCatalog?.(document) ?? [];\n const result = input.action === 'reverse'\n ? createMarkerRelationReverseCommand(input.relationId, graph)\n : input.action === 'delete-connected'\n ? createMarkerRelationDeleteConnectedCommand(input.markerId ?? activeMarkerId ?? '', graph)\n : input.action === 'create' && input.toEndpoints && input.toEndpoints.length > 0\n ? createMarkerRelationCreateManyCommand(\n {\n type: input.type,\n fromKind: input.fromKind,\n fromId: input.fromId,\n toEndpoints: input.toEndpoints,\n directed: input.directed,\n },\n graph,\n relationTypes,\n hierarchy,\n activeMarkerId,\n )\n : createMarkerRelationCommand(\n input,\n graph,\n relationTypes,\n hierarchy,\n activeMarkerId,\n );\n if (!result.command) {\n state.status = result.status;\n state.statusTone = result.statusTone;\n state.statusToneStatus = state.status;\n state.statusDetails = result.status;\n return true;\n }\n const patch = options.documentAdapter.createMarkerGraphPatch(document, result.command);\n if (!patch) {\n state.status = result.status || 'Marker relation edit rejected';\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n state.statusDetails = state.status;\n return true;\n }\n const session = state.session;\n if (!session) return false;\n const patchResult = session.dispatch({\n type: 'document.patch',\n label: patch.label ?? result.status,\n patch: patch.patch,\n targetId: session.getState().selection.activeId ?? undefined,\n });\n if (!patchResult.documentChanged) return false;\n if (doesMarkerGraphCommandDeleteRelation(result.command, state.activeMarkerRelationId)) {\n state.activeMarkerRelationId = null;\n }\n if (!isMarkerRelationStillPresent(options, patchResult.workingDocument, state.activeMarkerRelationId)) {\n state.activeMarkerRelationId = null;\n }\n state.markerRelationPick = null;\n syncMarkerOverlayToSceneArtifacts(state, options, patchResult.selection);\n state.gizmo?.refreshSelection();\n state.summary = summarizeDocument(options, patchResult.workingDocument, session.getSource());\n state.status = patch.label ?? result.status;\n state.statusTone = result.statusTone;\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n return true;\n}\n\nfunction createMarkerRelationPickEndpoint(\n kind: string | undefined,\n id: string | undefined,\n): LocalEditorMarkerRelationEndpointInput | null {\n const endpointKind = kind?.trim();\n const endpointId = id?.trim();\n if (!endpointKind || !endpointId) return null;\n if (endpointKind !== 'marker' && endpointKind !== 'scene-object') return null;\n return { kind: endpointKind, id: endpointId };\n}\n\nfunction formatMarkerRelationPickEndpointLabel(\n endpoint: LocalEditorMarkerRelationEndpointInput,\n graph: SpatialMarkerGraph,\n hierarchy: readonly LocalEditorBrowserUiHierarchyItem[],\n): string {\n const label = endpoint.kind === 'marker'\n ? findSpatialMarkerById(graph, endpoint.id)?.label ?? endpoint.id\n : hierarchy.find(item => item.id === endpoint.id)?.label ?? endpoint.id;\n const kindLabel = endpoint.kind === 'marker' ? '标记' : '对象';\n return `${kindLabel} ${label}`;\n}\n\nfunction doesMarkerGraphCommandDeleteRelation(\n command: LocalEditorMarkerGraphCommand,\n relationId: string | null,\n): boolean {\n if (!relationId) return false;\n switch (command.type) {\n case 'relation.delete':\n return command.relationId === relationId;\n case 'relation.delete-many':\n return command.relationIds.includes(relationId);\n default:\n return false;\n }\n}\n\nfunction isMarkerRelationStillPresent<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n relationId: string | null,\n): boolean {\n if (!relationId) return true;\n const graph = options.documentAdapter.getMarkerGraph?.(document) ?? null;\n return !!graph?.relations.some(relation => relation.id === relationId);\n}\n\nfunction createMarkerTypeCatalogCommand(input: LocalEditorBrowserMarkerTypeActionInput): LocalEditorMarkerGraphCommand | null {\n const type = input.type.trim();\n if (!type) return null;\n if (input.action === 'delete') {\n return {\n type: 'marker-type.delete',\n typeId: type,\n };\n }\n const label = input.label?.trim() || type;\n const kind = input.kind?.trim() || undefined;\n const description = 'description' in input ? input.description?.trim() ?? '' : undefined;\n if (input.action === 'create') {\n return {\n type: 'marker-type.create',\n definition: {\n type,\n label,\n ...(kind ? { kind } : {}),\n ...(description ? { description } : {}),\n },\n };\n }\n return {\n type: 'marker-type.update',\n typeId: type,\n patch: {\n label,\n ...(kind !== undefined ? { kind } : {}),\n ...(description !== undefined ? { description } : {}),\n },\n };\n}\n\nfunction patchHierarchyItemEnabled<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: { id: string; enabled: boolean },\n): boolean {\n const markerVisibilityResult = patchMarkerGraphHierarchyVisibility(state, options, input);\n if (markerVisibilityResult !== 'unhandled') return markerVisibilityResult === 'changed';\n return patchSerializedProperty(state, options, {\n targetId: input.id,\n path: 'enabled',\n value: input.enabled,\n control: 'boolean',\n valueType: 'boolean',\n commitMode: 'immediate',\n persistence: 'document',\n source: 'toggle',\n });\n}\n\nfunction patchMarkerGraphHierarchyVisibility<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: { id: string; enabled: boolean },\n): 'changed' | 'handled' | 'unhandled' {\n const document = state.session?.getState().workingDocument ?? null;\n if (!document) return 'unhandled';\n const graph = options.documentAdapter.getMarkerGraph?.(document) ?? null;\n if (!graph) return 'unhandled';\n const hierarchy = options.documentAdapter.getHierarchyItems(document);\n const visibility = state.markerGraphVisibility;\n if (isMarkerGraphHierarchyRootRowId(graph, input.id, hierarchy)) {\n if (visibility.rootVisible === input.enabled) return 'handled';\n visibility.rootVisible = input.enabled;\n state.editorStateRevision += 1;\n syncCurrentSelectionToSceneArtifacts(state, options, 'marker-graph-visibility-toggle', state.editorStateRevision);\n state.status = input.enabled ? 'Markers shown' : 'Markers hidden';\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n return 'changed';\n }\n const markerId = readMarkerGraphHierarchyMarkerIdForGraph(graph, input.id, hierarchy)\n ?? (isSpatialMarkerBackedByHierarchyRow(graph, input.id, hierarchy) ? input.id : null);\n if (!markerId) return 'unhandled';\n const changed = input.enabled\n ? visibility.hiddenMarkerIds.delete(markerId)\n : !visibility.hiddenMarkerIds.has(markerId);\n if (!input.enabled) visibility.hiddenMarkerIds.add(markerId);\n if (!changed) return 'handled';\n state.editorStateRevision += 1;\n syncCurrentSelectionToSceneArtifacts(state, options, 'marker-visibility-toggle', state.editorStateRevision);\n const marker = findSpatialMarkerById(graph, markerId);\n state.status = `${marker?.label ?? markerId} ${input.enabled ? 'shown' : 'hidden'}`;\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n return 'changed';\n}\n\nasync function applyRenderingPropertyChange<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: LocalEditorBrowserRenderingPropertyChangeInput,\n): Promise<boolean> {\n if (state.mode !== 'editor') return false;\n if (!state.session || !options.documentAdapter.onRenderingPropertyChange) return false;\n const document = state.session.getState().workingDocument;\n try {\n const result = await options.documentAdapter.onRenderingPropertyChange({\n document,\n sectionId: input.sectionId,\n systemId: input.systemId,\n path: input.path,\n value: input.value,\n control: input.control,\n valueType: input.valueType,\n commitMode: input.commitMode,\n source: input.source,\n });\n const resultObject = typeof result === 'object' && result != null ? result : null;\n const documentPatchResult = resultObject?.documentPatch\n ? applyRenderingDocumentPatch(state, options, document, resultObject.documentPatch, `Rendering document update: ${input.path}`)\n : null;\n const syncDocument = documentPatchResult?.workingDocument ?? document;\n const changed = result === true\n || resultObject?.changed === true\n || resultObject?.refreshWorldRendering === true\n || documentPatchResult?.changed === true;\n if (resultObject?.status) {\n state.status = resultObject.status;\n state.statusTone = resultObject.statusTone ?? 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = resultObject.statusDetails ?? '';\n } else if (documentPatchResult?.changed) {\n state.status = documentPatchResult.label;\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n } else if (changed) {\n state.status = `Updated rendering: ${input.path}`;\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n }\n if (changed) {\n syncEditorWorldRenderingFromDocument(state, options, syncDocument, 'rendering-panel-change', true);\n requestEditorSceneFrame(state, 'rendering-panel-change');\n }\n return changed || !!resultObject?.status;\n } catch (error) {\n state.status = error instanceof Error ? error.message : String(error);\n state.statusTone = 'error';\n state.statusToneStatus = state.status;\n state.statusDetails = state.status;\n console.error('[LocalEditorHarness] rendering property change failed', error);\n return true;\n }\n}\n\nasync function applyRenderingAction<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: LocalEditorBrowserRenderingActionInput,\n render: () => void,\n): Promise<LocalEditorAgentBridgeRenderingActionResult> {\n if (state.mode !== 'editor') {\n return { ok: false, changed: false, rendered: false, status: 'Editor is not in edit mode.', statusTone: 'warning' };\n }\n if (!state.session || !options.documentAdapter.onRenderingAction) {\n return { ok: false, changed: false, rendered: false, status: 'Rendering action pipeline is unavailable.', statusTone: 'warning' };\n }\n if (state.renderingAction) {\n state.status = state.renderingAction.status ?? `Rendering action already running: ${state.renderingAction.actionId}`;\n state.statusTone = state.renderingAction.statusTone ?? 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = state.renderingAction.statusDetails ?? '';\n render();\n return {\n ok: false,\n changed: false,\n rendered: true,\n status: state.status,\n statusTone: state.statusTone,\n ...(state.statusDetails ? { statusDetails: state.statusDetails } : {}),\n };\n }\n const document = state.session.getState().workingDocument;\n const progressStartedAt = Date.now();\n state.renderingAction = {\n actionId: input.actionId,\n label: input.actionId === 'bake-static-shadows' ? 'Baking static shadows' : input.actionId,\n status: input.actionId === 'bake-static-shadows' ? 'Baking static shadows...' : `Rendering action: ${input.actionId}`,\n statusTone: 'default',\n indeterminate: true,\n };\n state.status = state.renderingAction.status ?? state.status;\n state.statusTone = state.renderingAction.statusTone ?? 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n render();\n try {\n await state.projection?.waitForIdle?.();\n const result = await options.documentAdapter.onRenderingAction({\n ...input,\n document,\n actionId: input.actionId,\n scene: state.world?.scene ?? null,\n projection: state.projection,\n reportProgress: async (progress) => {\n state.renderingAction = {\n ...state.renderingAction,\n ...progress,\n actionId: progress.actionId ?? state.renderingAction?.actionId ?? input.actionId,\n };\n if (progress.status) {\n state.status = progress.status;\n state.statusTone = progress.statusTone ?? 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = progress.statusDetails ?? '';\n }\n render();\n await waitForRenderingProgressFrame();\n },\n });\n const resultObject = typeof result === 'object' && result != null ? result : null;\n const documentPatchResult = resultObject?.documentPatch\n ? applyRenderingDocumentPatch(state, options, document, resultObject.documentPatch, `Rendering action document update: ${input.actionId}`)\n : null;\n const syncDocument = documentPatchResult?.workingDocument ?? document;\n const changed = result === true\n || resultObject?.changed === true\n || resultObject?.refreshWorldRendering === true\n || documentPatchResult?.changed === true;\n const rendered = changed || !!resultObject?.status;\n if (resultObject?.status) {\n state.status = resultObject.status;\n state.statusTone = resultObject.statusTone ?? 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = resultObject.statusDetails ?? '';\n } else if (documentPatchResult?.changed) {\n state.status = documentPatchResult.label;\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n } else if (changed) {\n state.status = `Rendering action: ${input.actionId}`;\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n }\n if (changed) {\n syncEditorWorldRenderingFromDocument(state, options, syncDocument, 'rendering-panel-action', true);\n invalidateEditorScene(state, 'rendering-panel-action', options);\n }\n clearRenderingActionAfterMinimumDuration(state, progressStartedAt, input.actionId, render);\n return {\n ok: resultObject?.statusTone !== 'error',\n changed,\n rendered,\n ...(state.status ? { status: state.status } : {}),\n statusTone: state.statusTone,\n ...(state.statusDetails ? { statusDetails: state.statusDetails } : {}),\n ...(resultObject?.details ? { details: resultObject.details } : {}),\n };\n } catch (error) {\n state.renderingAction = null;\n state.status = error instanceof Error ? error.message : String(error);\n state.statusTone = 'error';\n state.statusToneStatus = state.status;\n state.statusDetails = state.status;\n console.error('[LocalEditorHarness] rendering action failed', error);\n return {\n ok: false,\n changed: false,\n rendered: true,\n status: state.status,\n statusTone: 'error',\n statusDetails: state.statusDetails,\n error: state.status,\n };\n }\n}\n\nfunction clearRenderingActionAfterMinimumDuration<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n startedAt: number,\n actionId: string,\n render: () => void,\n): void {\n void waitForRenderingProgressMinimumDuration(startedAt).then(() => {\n if (state.renderingAction?.actionId !== actionId) return;\n state.renderingAction = null;\n render();\n });\n}\n\nfunction waitForRenderingProgressFrame(): Promise<void> {\n return new Promise(resolve => {\n if (typeof requestAnimationFrame === 'function') {\n requestAnimationFrame(() => resolve());\n } else {\n setTimeout(resolve, 0);\n }\n });\n}\n\nfunction waitForRenderingProgressMinimumDuration(startedAt: number): Promise<void> {\n const elapsed = Date.now() - startedAt;\n const remaining = RENDERING_ACTION_PROGRESS_MIN_VISIBLE_MS - elapsed;\n if (remaining <= 0) return Promise.resolve();\n return new Promise(resolve => setTimeout(resolve, remaining));\n}\n\nfunction applyRenderingDocumentPatch<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n patch: LocalEditorHarnessPatchResult<TPatch>,\n fallbackLabel: string,\n): { changed: boolean; workingDocument: TDocument; label: string } {\n if (state.mode !== 'editor' || !state.session) {\n return { changed: false, workingDocument: document, label: patch.label ?? fallbackLabel };\n }\n const label = patch.label ?? fallbackLabel;\n const defaultImpact = patch.reprojectIds?.length\n ? createReprojectProjectionImpact(patch.reprojectIds)\n : patch.changedIds?.length\n ? createReprojectProjectionImpact(patch.changedIds)\n : patch.changedId\n ? createReprojectProjectionImpact([patch.changedId])\n : undefined;\n const projectionImpact = resolveProjectionImpact(patch, defaultImpact);\n const result = state.session.dispatch({\n type: 'document.patch',\n label,\n patch: patch.patch,\n targetId: patch.changedId,\n ...withProjectionImpact(projectionImpact),\n });\n if (!result.documentChanged) {\n return { changed: false, workingDocument: result.workingDocument, label };\n }\n if (projectionImpact) {\n const applied = applyProjectionImpactToDocument(state, options, {\n document: result.workingDocument,\n selection: result.selection,\n impact: projectionImpact,\n reason: 'rendering-document-patch-impact',\n });\n if (!applied) rebuildProjectionFromDocument(state, options, result.workingDocument, result.selection);\n } else {\n syncProjectionForDispatchResult(state, options, result, patch.changedId);\n }\n state.summary = summarizeDocument(options, result.workingDocument, state.session.getSource());\n return { changed: true, workingDocument: result.workingDocument, label };\n}\n\nfunction createInspectorEditTransaction<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n input: LocalEditorBrowserUiPropertyInput,\n targetIds: string[],\n): { ok: true; payload: InspectorEditPayload } | { ok: false; message: string } {\n const property = findInspectorPropertyForEdit(state, options, document, input, targetIds);\n if (!property) {\n return { ok: false, message: `Inspector property not found: ${input.path}.` };\n }\n const result = createInspectorEditPayload(property, {\n targetId: input.targetId,\n targetIds: input.targetIds,\n path: input.path,\n value: input.value,\n control: input.control as InspectorControlKind | undefined,\n valueType: input.valueType as InspectorProperty['valueType'] | undefined,\n commitMode: input.commitMode as InspectorCommitMode | undefined,\n persistence: input.persistence as InspectorPersistenceMode | undefined,\n source: input.source,\n });\n if (!result.ok) return { ok: false, message: result.message };\n return {\n ok: true,\n payload: createPlayableBabylonOutlineInspectorPatchPayload(state, options, document, result.value),\n };\n}\n\nfunction findInspectorPropertyForEdit<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n input: LocalEditorBrowserUiPropertyInput,\n targetIds: string[],\n): InspectorProperty<TDocument> | null {\n const inspector = createInspectorObjectForEdit(state, options, document, input, targetIds);\n if (!inspector) return null;\n return findInspectorPropertyByPath(inspector, input.path);\n}\n\nfunction createInspectorObjectForEdit<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n input: LocalEditorBrowserUiPropertyInput,\n targetIds: string[],\n): InspectorObject<TDocument> | null {\n if (targetIds.length === 1 && state.prefabStage) {\n const inspector = createPrefabStageInspectorObjectForEdit(state, options, document);\n if (inspector && inspector.targetIds.includes(input.targetId)) return inspector;\n }\n if (targetIds.length > 1) {\n const activeId = state.session?.getState().selection.activeId ?? input.targetId ?? null;\n const inspector = createInspectorMultiObjectBase(state, options, document, targetIds, activeId);\n if (inspector) return withDefaultEditorInspectorSections(state, options, document, inspector);\n return null;\n }\n const markerInspector = createMarkerInspectorObjectBase(options, document, input.targetId);\n if (markerInspector) return markerInspector;\n const inspector = options.documentAdapter.getInspectorObject?.(document, input.targetId) ?? null;\n if (inspector) return withDefaultEditorInspectorSections(state, options, document, inspector);\n return null;\n}\n\nfunction createPrefabStageInspectorObjectForEdit<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n): InspectorObject<TDocument> | null {\n const stage = state.prefabStage;\n if (!stage || !options.documentAdapter.getPrefabStageInspectorObject) return null;\n const descriptor = resolvePrefabStageDescriptorForDocument(state, options, document) ?? stage.descriptor;\n return options.documentAdapter.getPrefabStageInspectorObject(\n document,\n descriptor,\n stage.selectedItemId,\n createPrefabStageContext(state, descriptor),\n ) ?? null;\n}\n\nfunction findInspectorPropertyByPath<TDocument>(\n inspector: InspectorObject<TDocument>,\n path: string,\n): InspectorProperty<TDocument> | null {\n for (const section of inspector.sections) {\n const property = section.properties.find(candidate => candidate.path === path);\n if (property) return property;\n }\n return null;\n}\n\nfunction createPlayableBabylonOutlineInspectorPatchPayload<TDocument, TPatch, TAsset>(\n _state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n payload: InspectorEditPayload,\n): InspectorEditPayload {\n if (!isPlayableBabylonOutlineInspectorPatchPath(payload.path) || (payload.targetIds?.length ?? 1) > 1) {\n return payload;\n }\n const projectionNode = options.documentAdapter.getProjectionNode(document, payload.targetId);\n if (!projectionNode) return payload;\n const seedValue = createPlayableBabylonOutlineInspectorSeedPatchValue({\n existingOutline: readPlayableBabylonProjectionOutline(projectionNode.outline),\n path: payload.path,\n value: payload.value,\n });\n if (!seedValue) return payload;\n return {\n ...payload,\n path: 'overrides.outline',\n value: seedValue,\n control: 'object',\n valueType: 'object',\n commitMode: 'immediate',\n };\n}\n\nfunction shouldReprojectEditorInspectorEditPath(path: string): boolean {\n return isPlayableBabylonOutlineInspectorPatchPath(path);\n}\n\nfunction isSerializedTransformPath(path: string): boolean {\n return path === 'transform.position'\n || path === 'transform.rotation'\n || path === 'transform.scale'\n || path.startsWith('transform.position.')\n || path.startsWith('transform.rotation.')\n || path.startsWith('transform.scale.');\n}\n\nfunction isSerializedProjectionMetadataPath(path: string): boolean {\n return isSerializedShadowMetadataPath(path);\n}\n\nfunction isSerializedShadowMetadataPath(path: string): boolean {\n return path.startsWith('shadow.');\n}\n\nfunction isSerializedShadowTopologyMetadataPath(path: string): boolean {\n return path === 'shadow.cast'\n || path === 'shadow.receive'\n || path === 'shadow.mode'\n || path === 'shadow.quality'\n || path === 'shadow.light.mode'\n || path === 'shadow.light.lightId'\n || path.startsWith('shadow.light.');\n}\n\nfunction beginDuplicateDrag<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: BabylonTransformGizmoDuplicateDragInput,\n): BabylonTransformGizmoDuplicateDragResult | null {\n if (state.mode !== 'editor' || !state.session) return null;\n if (state.duplicateDrag) return null;\n const session = state.session;\n const document = session.getState().workingDocument;\n const patch = options.documentAdapter.createDuplicateSelectionPatch?.({\n document,\n targetIds: input.targetIds,\n activeId: input.activeId,\n transforms: input.beforeTransforms,\n });\n if (!patch || patch.createdIds.length === 0) {\n state.status = 'Duplicate drag rejected';\n return null;\n }\n const originalSelection = session.getSelection();\n const projectionImpact = resolveProjectionImpact(\n patch,\n createDuplicateProjectionImpact(patch),\n );\n const result = session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Duplicate ${input.targetIds.length} object(s)`,\n patch: patch.patch,\n targetId: patch.activeId ?? patch.createdIds[patch.createdIds.length - 1] ?? undefined,\n ...withProjectionImpact(projectionImpact),\n });\n if (!result.documentChanged) {\n state.status = 'Duplicate drag unchanged';\n return null;\n }\n const createdIds = patch.createdIds.filter(id => isNodeSelectableInDocument(options, result.workingDocument, id));\n if (createdIds.length === 0) {\n const undone = state.session.undo();\n if (undone) rebuildProjectionFromDocument(state, options, undone.workingDocument, originalSelection);\n state.status = 'Duplicate drag rejected: duplicated selection is not selectable';\n return null;\n }\n const activeId = patch.activeId && createdIds.includes(patch.activeId)\n ? patch.activeId\n : createdIds[createdIds.length - 1] ?? null;\n const selectionResult = state.session.dispatch({\n type: 'selection.replace',\n selectedIds: createdIds,\n activeId,\n label: 'Select Duplicate Drag Targets',\n });\n state.duplicateDrag = {\n originalSelection,\n createdIds,\n activeId,\n };\n if (!applyProjectionImpactToDocument(state, options, {\n document: result.workingDocument,\n selection: selectionResult.selection,\n impact: projectionImpact,\n reason: 'duplicate-drag-impact',\n })) {\n rebuildProjectionFromDocument(state, options, result.workingDocument, selectionResult.selection);\n }\n state.summary = summarizeDocument(options, result.workingDocument, session.getSource());\n state.status = patch.label ?? `Duplicated ${createdIds.length} object(s)`;\n return {\n targetIds: createdIds,\n activeId,\n };\n}\n\nfunction cancelDuplicateDrag<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): boolean {\n const duplicate = state.duplicateDrag;\n if (!duplicate || !state.session) return false;\n state.duplicateDrag = null;\n const undone = state.session.undo();\n if (!undone) return false;\n const selectionResult = state.session.dispatch({\n type: 'selection.replace',\n selectedIds: duplicate.originalSelection.selectedIds,\n activeId: duplicate.originalSelection.activeId,\n label: 'Restore Duplicate Drag Selection',\n });\n rebuildProjectionFromDocument(state, options, undone.workingDocument, selectionResult.selection);\n state.summary = summarizeDocument(options, undone.workingDocument, state.session.getSource());\n state.status = `Canceled duplicate drag ${duplicate.createdIds.length} object(s)`;\n return true;\n}\n\nfunction commitGizmoTransform<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n event: BabylonTransformGizmoCommit,\n): boolean {\n if (state.mode !== 'editor' || !state.session) return false;\n if (state.prefabStage) return commitPrefabStageGizmoTransform(state, options, event);\n const document = state.session.getState().workingDocument;\n const markerChanged = commitMarkerGizmoTransform(state, options, document, event);\n if (markerChanged !== null) return markerChanged;\n if (isTransformBatchCommit(event)) {\n const patch = options.documentAdapter.createTransformBatchPatch?.({\n ...event,\n document,\n });\n if (!patch) {\n if (!cancelDuplicateDrag(state, options)) {\n restoreBatchTransformPreview(state, event.targets);\n state.status = `Ignored ${event.tool} ${event.targetIds.length} objects`;\n }\n return false;\n }\n const result = state.session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `${event.tool} ${event.targetIds.length} objects`,\n patch: patch.patch,\n targetId: event.activeId ?? undefined,\n ...withProjectionImpact(resolveProjectionImpact(\n patch,\n patch.reprojectIds?.length\n ? createReprojectProjectionImpact(patch.reprojectIds)\n : createTransformProjectionImpact(event.targetIds),\n )),\n }, {\n mergeWithPrevious: event.targetIds.some(id => state.duplicateDrag?.createdIds.includes(id)) === true,\n });\n syncProjectionForDispatchResult(state, options, result);\n if (patch.reprojectIds?.length) reprojectProjectionForChangedIds(state, options, result.workingDocument, patch.reprojectIds);\n else syncProjectionForChangedIds(state, options, result.workingDocument, event.targetIds);\n state.summary = summarizeDocument(options, result.workingDocument, state.session.getSource());\n state.status = patch.label ?? `${event.tool} ${event.targetIds.length} objects`;\n state.duplicateDrag = null;\n return result.documentChanged;\n }\n const targetId = event.nodeId;\n const patch = options.documentAdapter.createTransformPatch?.({\n document,\n targetId,\n tool: event.tool,\n space: event.space,\n constraint: event.constraint,\n before: event.before,\n after: event.after,\n });\n if (!patch) {\n if (!cancelDuplicateDrag(state, options)) {\n state.projection?.setNodeTransformPreview(targetId, event.before);\n state.status = `Ignored ${event.tool} ${targetId}`;\n }\n return false;\n }\n const session = state.session;\n if (!session) return false;\n const result = session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `${event.tool} ${targetId}`,\n patch: patch.patch,\n targetId,\n ...withProjectionImpact(resolveProjectionImpact(\n patch,\n patch.reprojectIds?.length\n ? createReprojectProjectionImpact(patch.reprojectIds)\n : createTransformProjectionImpact([patch.changedId ?? targetId]),\n )),\n }, {\n mergeWithPrevious: state.duplicateDrag?.createdIds.includes(targetId) === true,\n });\n if (patch.reprojectIds?.length) reprojectProjectionForChangedIds(state, options, result.workingDocument, patch.reprojectIds);\n else syncProjectionForChangedIds(state, options, result.workingDocument, [patch.changedId ?? targetId]);\n state.summary = summarizeDocument(options, result.workingDocument, session.getSource());\n state.status = patch.label ?? `${event.tool} ${targetId}`;\n state.duplicateDrag = null;\n return result.documentChanged;\n}\n\nfunction commitPrefabStageGizmoTransform<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n event: BabylonTransformGizmoCommit,\n): boolean {\n const session = state.session;\n const document = session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n if (!state.prefabStage || !session || !document || !options.documentAdapter.createAssetActionPatch) return false;\n if (isTransformBatchCommit(event)) {\n restoreBatchTransformPreview(state, event.targets);\n state.status = 'Ignored Prefab Stage multi-selection transform';\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n return false;\n }\n\n const target = resolvePrefabStagePreviewTarget(state, options, document, event.nodeId);\n if (!target?.selectable || !target.transformable) {\n state.projection?.setNodeTransformPreview(event.nodeId, event.before);\n state.status = target?.disabledReason ?? `Ignored ${event.tool} ${event.nodeId}`;\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n return false;\n }\n\n const transformActionValue = createPrefabStageTransformActionValue(event.after);\n if (!transformActionValue) {\n state.projection?.setNodeTransformPreview(event.nodeId, event.before);\n state.status = `Ignored ${event.tool} ${target.label ?? target.targetId}: Prefab Stage transform requires TRS data`;\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n return false;\n }\n\n const patch = options.documentAdapter.createAssetActionPatch({\n actionId: 'prefab.node.setTransform',\n targetPrefabAssetId: state.prefabStage.descriptor.assetId,\n nodeId: target.targetId,\n document,\n asset: null,\n activeId: target.targetId,\n selectedIds: [target.targetId],\n value: transformActionValue,\n });\n if (!patch) {\n state.projection?.setNodeTransformPreview(event.nodeId, event.before);\n state.status = `Ignored ${event.tool} ${target.label ?? target.targetId}`;\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n return false;\n }\n\n const result = session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Set prefab node ${target.targetId} transform`,\n patch: patch.patch,\n targetId: target.targetId,\n ...withProjectionImpact(resolveProjectionImpact(\n patch,\n patch.reprojectIds?.length\n ? createReprojectProjectionImpact(patch.reprojectIds)\n : createTransformProjectionImpact([patch.changedId ?? target.targetId]),\n )),\n });\n syncProjectionForDispatchResult(state, options, result);\n rebuildProjectionFromDocument(state, options, result.workingDocument, EMPTY_EDITOR_SELECTION);\n state.summary = summarizeDocument(options, result.workingDocument, session.getSource());\n state.status = patch.label ?? `Set prefab node ${target.label ?? target.targetId} transform`;\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n syncPrefabStageSelectionFromAssetAction(state, options, {\n actionId: 'prefab.node.setTransform',\n }, patch.changedId ?? target.targetId);\n return result.documentChanged;\n}\n\nfunction createPrefabStageTransformActionValue(transform: EditorTransformSnapshot): Record<string, unknown> | null {\n if (!isEditorTransformTrsSnapshot(transform)) return null;\n return {\n type: 'Transform',\n position: cloneEditorTransformVec3(transform.position),\n rotation: cloneEditorTransformVec3(transform.rotation),\n scale: cloneEditorTransformVec3(transform.scale),\n };\n}\n\nfunction cloneEditorTransformVec3(value: EditorTransformVec3): EditorTransformVec3 {\n return { x: value.x, y: value.y, z: value.z };\n}\n\nfunction commitMarkerGizmoTransform<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n event: BabylonTransformGizmoCommit,\n): boolean | null {\n if (isTransformBatchCommit(event)) return null;\n const graph = options.documentAdapter.getMarkerGraph?.(document) ?? null;\n const hierarchy = graph ? options.documentAdapter.getHierarchyItems(document) : [];\n const markerId = readSpatialMarkerIdFromHierarchySelection(graph, event.nodeId, hierarchy);\n if (!markerId) return null;\n if (markerId === event.nodeId) return null;\n const marker = findSpatialMarkerById(graph, markerId);\n if (!marker) return false;\n if (!isEditorTransformTrsSnapshot(event.after)) {\n state.status = `Ignored ${event.tool} marker ${marker.label}: transform is not editable as TRS`;\n return false;\n }\n if (editorTransformSnapshotsEqual(event.before, event.after)) {\n state.status = `Unchanged ${event.tool} ${marker.label}`;\n return false;\n }\n const nextPatch = createMarkerTransformPatchFromGizmo(marker, event.after);\n const patch = options.documentAdapter.createMarkerGraphPatch?.(document, {\n type: 'marker.update',\n markerId,\n patch: nextPatch,\n });\n if (!patch) {\n state.markerOverlay?.setMarkerTransformPreview(event.nodeId, event.before);\n state.status = `Ignored ${event.tool} marker ${marker.label}`;\n return false;\n }\n const session = state.session;\n if (!session) return false;\n const result = session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `${event.tool} marker ${marker.label}`,\n patch: patch.patch,\n targetId: event.nodeId,\n });\n syncProjectionForDispatchResult(state, options, result, patch.changedId ?? markerId);\n state.gizmo?.refreshSelection();\n requestEditorSceneFrame(state, 'marker-gizmo-transform');\n state.summary = summarizeDocument(options, result.workingDocument, session.getSource());\n state.status = patch.label ?? `${event.tool} marker ${marker.label}`;\n return result.documentChanged;\n}\n\nfunction createMarkerTransformPatchFromGizmo(\n marker: SpatialMarkerNode,\n transform: EditorTransformTrsSnapshot,\n): Partial<Omit<SpatialMarkerNode, 'id'>> {\n const semanticFrame = createMarkerSemanticFrameFromTransform(marker, transform);\n if (marker.geometry.kind === 'box') {\n const nextGeometry = {\n ...marker.geometry,\n center: { ...transform.position },\n size: normalizeMarkerBoxSize(transform.scale),\n };\n if (marker.geometry.rotation || !editorVec3Equal(transform.rotation, { x: 0, y: 0, z: 0 })) {\n nextGeometry.rotation = { ...transform.rotation };\n } else {\n delete nextGeometry.rotation;\n }\n return {\n geometry: nextGeometry,\n semanticFrame,\n };\n }\n if (marker.geometry.kind === 'point') {\n return {\n geometry: {\n ...marker.geometry,\n coordinateSpace: 'world',\n position: { ...transform.position },\n },\n semanticFrame,\n };\n }\n return {\n semanticFrame,\n };\n}\n\nfunction createMarkerSemanticFrameFromTransform(\n marker: SpatialMarkerNode,\n transform: EditorTransformTrsSnapshot,\n): NonNullable<SpatialMarkerNode['semanticFrame']> {\n return {\n ...(marker.semanticFrame ?? {}),\n origin: { ...transform.position },\n right: rotateEditorVec3ByEuler({ x: 1, y: 0, z: 0 }, transform.rotation),\n up: rotateEditorVec3ByEuler({ x: 0, y: 1, z: 0 }, transform.rotation),\n forward: rotateEditorVec3ByEuler({ x: 0, y: 0, z: 1 }, transform.rotation),\n label: marker.semanticFrame?.label ?? marker.label,\n };\n}\n\nfunction rotateEditorVec3ByEuler(\n value: EditorTransformVec3,\n rotation: EditorTransformVec3,\n): EditorTransformVec3 {\n const cx = Math.cos(rotation.x);\n const sx = Math.sin(rotation.x);\n const cy = Math.cos(rotation.y);\n const sy = Math.sin(rotation.y);\n const cz = Math.cos(rotation.z);\n const sz = Math.sin(rotation.z);\n const afterX = {\n x: value.x,\n y: value.y * cx - value.z * sx,\n z: value.y * sx + value.z * cx,\n };\n const afterY = {\n x: afterX.x * cy + afterX.z * sy,\n y: afterX.y,\n z: -afterX.x * sy + afterX.z * cy,\n };\n return {\n x: afterY.x * cz - afterY.y * sz,\n y: afterY.x * sz + afterY.y * cz,\n z: afterY.z,\n };\n}\n\nfunction isTransformBatchCommit(event: BabylonTransformGizmoCommit): event is EditorTransformBatchCommit {\n return 'targets' in event;\n}\n\nfunction normalizeMarkerBoxSize(size: EditorTransformVec3): EditorTransformVec3 {\n return {\n x: Math.max(0.000001, Math.abs(size.x)),\n y: Math.max(0.000001, Math.abs(size.y)),\n z: Math.max(0.000001, Math.abs(size.z)),\n };\n}\n\nfunction restoreBatchTransformPreview<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n targets: EditorTransformTargetSnapshot[],\n): void {\n const transforms: Record<string, EditorTransformSnapshot> = {};\n for (const target of targets) transforms[target.id] = target.before;\n state.projection?.setNodeTransformsPreview(transforms);\n}\n\nfunction formatBlockedGizmoTransformStatus(event: BabylonTransformGizmoBlockEvent): string {\n const target = event.targetIds.length > 1\n ? `${event.targetIds.length} objects`\n : event.nodeId ?? event.activeId ?? 'selection';\n const failed = event.failedTargetId && event.targetIds.length > 1\n ? ` at ${event.failedTargetId}`\n : '';\n return `Blocked ${event.tool} ${target}${failed}: ${formatTransformOperationBlockReason(event.reason)}`;\n}\n\nfunction formatTransformOperationBlockReason(reason: BabylonTransformGizmoBlockEvent['reason']): string {\n if (reason === 'non-trs-representable') return 'result cannot be represented as position/rotation/scale';\n if (reason === 'non-invertible-parent') return 'parent transform cannot be inverted';\n return 'unsupported transform';\n}\n\nfunction cancelActiveGizmoDrag<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): void {\n state.gizmo?.cancelDrag();\n}\n\nfunction cancelActiveOperation<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): void {\n state.sceneViewInput?.cancelActiveIntent();\n state.selectionController?.cancelBoxSelection();\n cancelActiveGizmoDrag(state);\n clearArmedPlacement(state);\n}\n\nfunction cancelEditorIntent<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): boolean {\n if (state.mode !== 'editor') return false;\n if (state.markerRelationPick) {\n state.markerRelationPick = null;\n state.status = '已取消关系端点拾取。';\n state.statusTone = 'success';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n return true;\n }\n if (\n state.viewportTools.activeUtilityTool === 'measure-distance'\n || state.viewportMeasurement.start\n || state.viewportMeasurement.end\n ) {\n return clearViewportMeasurement(state);\n }\n if (state.prefabStage?.selectedItemId) {\n cancelActiveOperation(state);\n state.prefabStage = { ...state.prefabStage, selectedItemId: null };\n state.editorStateRevision += 1;\n syncPrefabStageSelectionToProjection(state, options, 'prefab-stage-selection-cancel', state.editorStateRevision);\n state.status = 'Cleared Prefab Stage selection';\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n return true;\n }\n if (state.prefabStage) {\n cancelActiveOperation(state);\n state.status = 'Canceled Prefab Stage operation';\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n return true;\n }\n const selection = state.session?.getSelection();\n if (selection && selection.selectedIds.length > 0) {\n return dispatchSelectionCommand(state, options, { type: 'selection.clear', label: 'Clear Selection' });\n }\n cancelActiveOperation(state);\n return true;\n}\n\nfunction focusSelectedProjection<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): boolean {\n if (state.mode !== 'editor') return false;\n if (state.prefabStage) {\n const activeId = getCurrentPrefabStageProjectionSelection(state, options).activeId;\n if (!activeId) {\n state.status = 'Focus failed: no Prefab Stage selection';\n return true;\n }\n return focusPrefabStageProjectionNode(state, options, activeId, 'prefab-stage-focus-selection');\n }\n const activeId = state.session?.getState().selection.activeId ?? null;\n if (!activeId) {\n state.status = 'Focus failed: no selection';\n return true;\n }\n return focusProjectionNode(state, activeId);\n}\n\nfunction focusProjectionNode<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n nodeId: string,\n): boolean {\n if (state.mode !== 'editor') return false;\n const root = state.projection?.getAttachableRoot(nodeId) ?? null;\n if (!root) {\n const focusedBounds = focusProjectionSelectionBounds(state, nodeId, 'viewport-focus-selection');\n state.status = focusedBounds\n ? `Focused ${nodeId} · ${formatEditorStatusTime(Date.now())}`\n : `Focus failed: missing projection for ${nodeId}`;\n return true;\n }\n const focused = focusEditorViewportSelection(state.world?.camera ?? null, root, {\n babylon: state.babylon ?? undefined,\n });\n state.status = focused\n ? `Focused ${nodeId} · ${formatEditorStatusTime(Date.now())}`\n : `Focus failed: camera could not frame ${nodeId}`;\n if (focused) requestEditorSceneFrame(state, 'viewport-focus-selection');\n return true;\n}\n\nfunction frameViewportProjectionNode<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n nodeId: string,\n): boolean {\n if (state.mode !== 'editor') return false;\n const root = state.projection?.getAttachableRoot(nodeId) ?? null;\n if (!root) {\n const focusedBounds = focusProjectionSelectionBounds(state, nodeId, 'viewport-focus-object');\n state.status = focusedBounds\n ? `Focused ${nodeId} · ${formatEditorStatusTime(Date.now())}`\n : `Focus failed: missing projection for ${nodeId}`;\n return focusedBounds;\n }\n const focused = focusEditorViewportSelection(state.world?.camera ?? null, root, {\n babylon: state.babylon ?? undefined,\n });\n state.status = focused\n ? `Focused ${nodeId} · ${formatEditorStatusTime(Date.now())}`\n : `Focus failed: camera could not frame ${nodeId}`;\n if (focused) requestEditorSceneFrame(state, 'viewport-focus-object');\n return focused;\n}\n\nfunction focusProjectionSelectionBounds<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n nodeId: string,\n reason: string,\n): boolean {\n const bounds = state.projection?.getSelectionBounds([nodeId]) ?? null;\n const frame = bounds ? createProjectionBoundsFocusFrame(bounds) : null;\n if (!frame) return false;\n const cameraState = state.sceneViewCamera?.getState();\n const focused = state.sceneViewCamera?.setViewPreset(cameraState?.viewPreset ?? 'perspective', {\n target: frame.center,\n radius: Math.max(frame.radius * 2.5, 2),\n }) ?? false;\n if (focused) requestEditorSceneFrame(state, reason);\n return focused;\n}\n\nfunction createProjectionBoundsFocusFrame(\n bounds: BabylonEditorProjectionBounds,\n): { center: { x: number; y: number; z: number }; radius: number } | null {\n const size = bounds.size;\n const radius = Math.hypot(size.x, size.y, size.z) / 2;\n if (!Number.isFinite(radius) || radius <= 0) return null;\n return {\n center: { ...bounds.center },\n radius,\n };\n}\n\nfunction frameSelectedViewportProjection<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): boolean {\n if (state.mode !== 'editor') return false;\n if (state.prefabStage) {\n const activeId = getCurrentPrefabStageProjectionSelection(state, options).activeId;\n if (!activeId) {\n state.status = 'Focus failed: no Prefab Stage selection';\n return false;\n }\n return focusPrefabStageProjectionNode(state, options, activeId, 'prefab-stage-frame-selection');\n }\n const activeId = state.session?.getState({ cloneDocuments: false }).selection.activeId ?? null;\n if (!activeId) {\n state.status = 'Focus failed: no selection';\n return false;\n }\n return frameViewportProjectionNode(state, activeId);\n}\n\nfunction focusPrefabStageProjectionNode<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n projectionNodeId: string,\n reason: string,\n): boolean {\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n if (!state.prefabStage || !document) return false;\n const target = resolvePrefabStagePreviewTarget(state, options, document, projectionNodeId);\n if (!target?.selectable) {\n state.status = `Focus failed: ${projectionNodeId} is not an editable Prefab Stage preview target`;\n return true;\n }\n const root = state.projection?.getAttachableRoot(projectionNodeId) ?? null;\n if (!root) {\n state.status = `Focus failed: missing projection for ${projectionNodeId}`;\n return true;\n }\n const focused = focusEditorViewportSelection(state.world?.camera ?? null, root, {\n babylon: state.babylon ?? undefined,\n });\n state.status = focused\n ? `Focused ${target.label ?? projectionNodeId} · ${formatEditorStatusTime(Date.now())}`\n : `Focus failed: camera could not frame ${target.label ?? projectionNodeId}`;\n if (focused) requestEditorSceneFrame(state, reason);\n return true;\n}\n\nfunction focusPrefabStagePreviewProjection<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n reason: string,\n): void {\n const previewNodeId = state.prefabStage?.descriptor.previewNodeId;\n if (!previewNodeId) return;\n const root = state.projection?.getAttachableRoot(previewNodeId) ?? null;\n if (!root) return;\n const focused = focusEditorViewportSelection(state.world?.camera ?? null, root, {\n babylon: state.babylon ?? undefined,\n });\n if (focused) requestEditorSceneFrame(state, reason);\n}\n\nfunction formatEditorStatusTime(timestamp: number): string {\n const date = new Date(timestamp);\n const pad = (value: number) => String(value).padStart(2, '0');\n return `${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`;\n}\n\nfunction formatVec3(value: { x: number; y: number; z: number }): string {\n return `${formatPlacementNumber(value.x)}, ${formatPlacementNumber(value.y)}, ${formatPlacementNumber(value.z)}`;\n}\n\nfunction formatPlacementNumber(value: number): string {\n return Number.isFinite(value) ? Number(value.toFixed(3)).toString() : String(value);\n}\n\nfunction formatAssetLabel<TAsset>(asset: TAsset, fallback: string): string {\n const record = isObjectRecord(asset) ? asset : null;\n const label = record?.label ?? record?.displayName ?? record?.name;\n return typeof label === 'string' && label.trim() ? label : fallback;\n}\n\ntype ProjectionImpactSource = {\n projectionImpact?: EditorProjectionImpact;\n};\n\nfunction withProjectionImpact(\n impact: EditorProjectionImpact | undefined,\n): { projectionImpact?: EditorProjectionImpact } {\n return impact ? { projectionImpact: impact } : {};\n}\n\nfunction resolveProjectionImpact(\n source: ProjectionImpactSource,\n fallback: EditorProjectionImpact | undefined,\n): EditorProjectionImpact | undefined {\n return source.projectionImpact ?? fallback;\n}\n\nfunction createTransformProjectionImpact(\n ids: readonly (string | null | undefined)[],\n): EditorProjectionImpact | undefined {\n return createIncrementalProjectionImpact({ syncTransformIds: ids });\n}\n\nfunction createReprojectProjectionImpact(\n ids: readonly (string | null | undefined)[],\n): EditorProjectionImpact | undefined {\n return createIncrementalProjectionImpact({ reprojectIds: ids });\n}\n\nfunction createCreatedNodeProjectionImpact(\n ids: readonly (string | null | undefined)[],\n): EditorProjectionImpact | undefined {\n return createIncrementalProjectionImpact({ createdNodeIds: ids });\n}\n\nfunction createDeletedNodeProjectionImpact(\n ids: readonly (string | null | undefined)[],\n): EditorProjectionImpact | undefined {\n return createIncrementalProjectionImpact({ deletedNodeIds: ids });\n}\n\nfunction createCreatedReprojectProjectionImpact(input: {\n createdNodeIds?: readonly (string | null | undefined)[];\n reprojectIds?: readonly (string | null | undefined)[];\n}): EditorProjectionImpact | undefined {\n return createIncrementalProjectionImpact({\n createdNodeIds: input.createdNodeIds,\n reprojectIds: input.reprojectIds,\n });\n}\n\nfunction createKnownCreatedReprojectProjectionImpact(input: {\n createdNodeIds: readonly (string | null | undefined)[];\n reprojectIds?: readonly (string | null | undefined)[];\n}): EditorProjectionImpact | undefined {\n const createdNodeIds = uniqueProjectionIds(input.createdNodeIds);\n if (createdNodeIds.length === 0) return undefined;\n return createCreatedReprojectProjectionImpact({\n createdNodeIds,\n reprojectIds: input.reprojectIds,\n });\n}\n\nfunction createDuplicateProjectionImpact<TPatch>(\n patch: LocalEditorHarnessDuplicateSelectionPatch<TPatch>,\n): EditorProjectionImpact | undefined {\n const createdNodeIds = uniqueProjectionIds(patch.createdIds);\n const reprojectIds = uniqueProjectionIds(patch.reprojectIds);\n const createdNodeIdSet = new Set(createdNodeIds);\n const reprojectIdSet = new Set(reprojectIds);\n const syncTransformIds = uniqueProjectionIds(patch.changedIds)\n .filter(id => !createdNodeIdSet.has(id) && !reprojectIdSet.has(id));\n return createIncrementalProjectionImpact({\n createdNodeIds,\n reprojectIds,\n syncTransformIds,\n });\n}\n\nfunction createIncrementalProjectionImpact(input: {\n syncTransformIds?: readonly (string | null | undefined)[];\n reprojectIds?: readonly (string | null | undefined)[];\n createdNodeIds?: readonly (string | null | undefined)[];\n deletedNodeIds?: readonly (string | null | undefined)[];\n}): EditorProjectionImpact | undefined {\n const syncTransformIds = uniqueProjectionIds(input.syncTransformIds);\n const reprojectIds = uniqueProjectionIds(input.reprojectIds);\n const createdNodeIds = uniqueProjectionIds(input.createdNodeIds);\n const deletedNodeIds = uniqueProjectionIds(input.deletedNodeIds);\n if (\n syncTransformIds.length === 0\n && reprojectIds.length === 0\n && createdNodeIds.length === 0\n && deletedNodeIds.length === 0\n ) {\n return undefined;\n }\n return {\n type: 'incremental',\n ...(syncTransformIds.length ? { syncTransformIds } : {}),\n ...(reprojectIds.length ? { reprojectIds } : {}),\n ...(createdNodeIds.length ? { createdNodeIds } : {}),\n ...(deletedNodeIds.length ? { deletedNodeIds } : {}),\n };\n}\n\nfunction uniqueProjectionIds(\n ids: readonly (string | null | undefined)[] | undefined,\n): string[] {\n const result: string[] = [];\n const seen = new Set<string>();\n for (const id of ids ?? []) {\n if (!id || seen.has(id)) continue;\n seen.add(id);\n result.push(id);\n }\n return result;\n}\n\nfunction applyHistoryOperation<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n operation: LocalEditorHarnessHistoryOperation,\n input: LocalEditorHarnessHistoryOperationOptions = {},\n): LocalEditorHarnessHistoryOperationResult<TDocument> {\n const origin = input.origin ?? 'user';\n const waitForProjection = input.waitForProjection ?? 'none';\n cancelActiveOperation(state);\n const result = operation === 'undo'\n ? state.session?.undo()\n : state.session?.redo();\n if (!result) return createHistoryOperationResult(state, {\n operation,\n origin,\n waitForProjection,\n result: null,\n status: operation === 'undo' ? 'Undo unavailable' : 'Redo unavailable',\n });\n applyHistoryProjectionImpact(state, options, result, operation);\n state.summary = summarizeDocument(options, result.workingDocument, state.session?.getSource());\n state.status = `${operation === 'undo' ? 'Undo' : 'Redo'} ${result.transaction.label}`;\n return createHistoryOperationResult(state, {\n operation,\n origin,\n waitForProjection,\n result,\n status: state.status,\n });\n}\n\nasync function waitForHistoryOperationProjection<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n result: LocalEditorHarnessHistoryOperationResult<TDocument>,\n): Promise<LocalEditorHarnessHistoryOperationResult<TDocument>> {\n if (!result.ok || result.waitForProjection !== 'settled') return result;\n const idleState = await state.projection?.waitForIdle() ?? null;\n return {\n ...result,\n projection: createHistoryProjectionResult(\n result.waitForProjection,\n idleState,\n state,\n ),\n };\n}\n\nfunction createHistoryOperationResult<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n input: {\n operation: LocalEditorHarnessHistoryOperation;\n origin: LocalEditorHarnessOperationOrigin;\n waitForProjection: LocalEditorHarnessProjectionWaitPolicy;\n result: EditorSessionHistoryResult<TDocument> | null;\n status: string;\n },\n): LocalEditorHarnessHistoryOperationResult<TDocument> {\n const sessionState = state.session?.getState() ?? null;\n return {\n ok: !!input.result,\n operation: input.operation,\n origin: input.origin,\n waitForProjection: input.waitForProjection,\n documentChanged: input.result?.documentChanged ?? false,\n transactionLabel: input.result?.transaction.label ?? null,\n workingDocument: input.result?.workingDocument ?? sessionState?.workingDocument ?? null,\n dirty: input.result?.dirty ?? sessionState?.dirty ?? false,\n history: {\n canUndo: sessionState?.canUndo ?? false,\n canRedo: sessionState?.canRedo ?? false,\n },\n status: input.status,\n projection: createHistoryProjectionResult(input.waitForProjection, null, state),\n };\n}\n\nfunction createHistoryProjectionResult<TDocument, TPatch, TAsset>(\n waitPolicy: LocalEditorHarnessProjectionWaitPolicy,\n idleState: BabylonEditorProjectionIdleState | null,\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): LocalEditorHarnessHistoryProjectionResult {\n const resolved = idleState ?? state.projection?.getIdleState() ?? null;\n return {\n waitPolicy,\n idle: resolved?.idle ?? true,\n activeBatchIds: resolved?.activeBatchIds ?? [],\n lastBatch: resolved?.lastBatch ?? null,\n };\n}\n\nfunction applyHistoryProjectionImpact<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n result: EditorSessionHistoryResult<TDocument>,\n operation: LocalEditorHarnessHistoryOperation,\n): void {\n const impact = result.transaction.projectionImpact;\n if (!impact || impact.type === 'rebuild') {\n rebuildProjection(state, options, result);\n return;\n }\n const applied = applyIncrementalHistoryProjectionImpact(state, options, result, operation, impact);\n if (!applied) rebuildProjection(state, options, result);\n}\n\nfunction applyProjectionImpactToDocument<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: {\n document: TDocument;\n selection: EditorSelectionState;\n impact: EditorProjectionImpact | undefined;\n reason: string;\n },\n): boolean {\n if (!input.impact || input.impact.type === 'rebuild') return false;\n return applyIncrementalProjectionImpactToDocument(state, options, {\n document: input.document,\n selection: input.selection,\n syncTransformIds: input.impact.syncTransformIds,\n reprojectIds: input.impact.reprojectIds,\n projectNodeIds: input.impact.createdNodeIds,\n removeNodeIds: input.impact.deletedNodeIds,\n reason: input.reason,\n });\n}\n\nfunction rebuildProjection<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n result: EditorSessionHistoryResult<TDocument>,\n): void {\n rebuildProjectionFromDocument(state, options, result.workingDocument, result.selection);\n}\n\nfunction applyIncrementalHistoryProjectionImpact<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n result: EditorSessionHistoryResult<TDocument>,\n operation: LocalEditorHarnessHistoryOperation,\n impact: Extract<EditorProjectionImpact, { type: 'incremental' }>,\n): boolean {\n const projectNodeIds = operation === 'redo'\n ? uniqueProjectionIds(impact.createdNodeIds)\n : uniqueProjectionIds(impact.deletedNodeIds);\n const removeNodeIds = operation === 'redo'\n ? uniqueProjectionIds(impact.deletedNodeIds)\n : uniqueProjectionIds(impact.createdNodeIds);\n return applyIncrementalProjectionImpactToDocument(state, options, {\n document: result.workingDocument,\n selection: result.selection,\n syncTransformIds: impact.syncTransformIds,\n reprojectIds: impact.reprojectIds,\n projectNodeIds,\n removeNodeIds,\n reason: 'history-impact',\n });\n}\n\nfunction applyIncrementalProjectionImpactToDocument<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: {\n document: TDocument;\n selection: EditorSelectionState;\n syncTransformIds?: readonly (string | null | undefined)[];\n reprojectIds?: readonly (string | null | undefined)[];\n projectNodeIds?: readonly (string | null | undefined)[];\n removeNodeIds?: readonly (string | null | undefined)[];\n reason: string;\n },\n): boolean {\n if (!state.projection) return false;\n if (state.prefabStage) {\n rebuildProjectionFromDocument(state, options, input.document, EMPTY_EDITOR_SELECTION);\n return true;\n }\n const syncTransformIds = uniqueProjectionIds(input.syncTransformIds);\n const reprojectIds = uniqueProjectionIds(input.reprojectIds);\n const projectNodeIds = uniqueProjectionIds(input.projectNodeIds);\n const removeNodeIds = uniqueProjectionIds(input.removeNodeIds);\n const touched = syncTransformIds.length > 0\n || reprojectIds.length > 0\n || projectNodeIds.length > 0\n || removeNodeIds.length > 0;\n if (!touched) return false;\n\n const projectNodes = resolveProjectionNodes(options, input.document, projectNodeIds);\n const reprojectNodes = resolveProjectionNodes(options, input.document, reprojectIds);\n const syncTransformNodes = resolveProjectionNodes(options, input.document, syncTransformIds);\n if (!projectNodes || !reprojectNodes || !syncTransformNodes) return false;\n\n for (const nodeId of removeNodeIds) {\n state.projection.removeNode(nodeId);\n }\n for (const projectedNode of projectNodes) {\n state.projection.projectNode(projectedNode);\n }\n for (const projectedNode of reprojectNodes) {\n syncProjectionNodeTransformOrReprojectRuntime(state, projectedNode, { forceReproject: true });\n }\n for (const projectedNode of syncTransformNodes) {\n syncProjectionNodeTransformOrReprojectRuntime(state, projectedNode);\n }\n\n applyPreviewVisibilityStateToProjection(state);\n const sanitized = sanitizeSelection(state, options, input.document, input.selection);\n syncSelectionToProjection(state, options, sanitized ?? input.selection);\n syncEditorWorldAppearanceFromDocument(state, options, input.document, `world-appearance-${input.reason}`);\n syncEditorWorldRenderingFromDocument(state, options, input.document, `world-rendering-${input.reason}`, true);\n invalidateEditorScene(state, `projection-${input.reason}`, options);\n return true;\n}\n\nfunction resolveProjectionNodes<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n ids: readonly string[],\n): BabylonEditorProjectionNode[] | null {\n const projectedNodes: BabylonEditorProjectionNode[] = [];\n for (const id of ids) {\n const projectedNode = options.documentAdapter.getProjectionNode(document, id);\n if (!projectedNode) return null;\n projectedNodes.push(projectedNode);\n }\n return projectedNodes;\n}\n\nfunction resolveCurrentEditorProjectionNodes<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n): BabylonEditorProjectionNode[] {\n if (!state.prefabStage) return options.documentAdapter.getProjectionNodes(document);\n const descriptor = resolvePrefabStageDescriptorForDocument(state, options, document);\n if (!descriptor) return [];\n return options.documentAdapter.getPrefabStageProjectionNodes?.(document, descriptor) ?? [];\n}\n\nfunction rebuildProjectionFromDocument<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n selection: EditorSelectionState,\n): void {\n const nodes = resolveCurrentEditorProjectionNodes(state, options, document);\n state.projection?.rebuild(nodes);\n applyPreviewVisibilityStateToProjection(state);\n if (state.prefabStage) {\n syncPrefabStageSelectionToProjection(state, options, 'prefab-stage-projection-rebuild');\n } else {\n const sanitized = sanitizeSelection(state, options, document, selection);\n syncSelectionToProjection(state, options, sanitized ?? selection);\n }\n syncEditorWorldAppearanceFromDocument(state, options, document, 'world-appearance-rebuild');\n syncEditorWorldRenderingFromDocument(state, options, document, 'world-rendering-rebuild', true);\n if (state.prefabStage && nodes.length === 0) {\n const descriptor = resolvePrefabStageDescriptorForDocument(state, options, document);\n state.status = `Prefab preview unavailable: ${descriptor?.label ?? state.prefabStage.descriptor.label}`;\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n state.statusDetails = 'The prefab source model asset could not be resolved for preview.';\n }\n invalidateEditorScene(state, 'projection-rebuild');\n}\n\nfunction syncProjectionForDispatchResult<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n result: { documentChanged: boolean; selectionChanged: boolean; workingDocument?: TDocument; selection?: EditorSelectionState },\n changedId?: string,\n): void {\n if (state.prefabStage && result.documentChanged && result.workingDocument) {\n rebuildProjectionFromDocument(state, options, result.workingDocument, EMPTY_EDITOR_SELECTION);\n return;\n }\n if (result.documentChanged && changedId && result.workingDocument) {\n const projectedNode = options.documentAdapter.getProjectionNode(result.workingDocument, changedId);\n if (projectedNode) syncProjectionNodeTransformOrReprojectRuntime(state, projectedNode);\n }\n if (result.selectionChanged) {\n syncSelectionToProjection(state, options, result.selection ?? { selectedIds: [], activeId: null });\n } else if (result.documentChanged) {\n const selection = state.session?.getState({ cloneDocuments: false }).selection ?? { selectedIds: [], activeId: null };\n const sanitized = result.workingDocument ? sanitizeSelection(state, options, result.workingDocument, selection) : null;\n syncSelectionToProjection(state, options, sanitized ?? selection);\n }\n if (result.documentChanged && result.workingDocument) {\n syncEditorWorldAppearanceFromDocument(state, options, result.workingDocument, 'world-appearance-dispatch-result');\n syncEditorWorldRenderingFromDocument(state, options, result.workingDocument, 'world-rendering-dispatch-result', true);\n }\n if (result.documentChanged || result.selectionChanged) {\n invalidateEditorScene(state, 'projection-dispatch-result');\n }\n}\n\nfunction syncProjectionForChangedIds<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n changedIds: string[],\n): void {\n if (state.prefabStage) {\n rebuildProjectionFromDocument(state, options, document, EMPTY_EDITOR_SELECTION);\n return;\n }\n for (const changedId of changedIds) {\n const projectedNode = options.documentAdapter.getProjectionNode(document, changedId);\n if (projectedNode) syncProjectionNodeTransformOrReprojectRuntime(state, projectedNode);\n }\n const selection = state.session?.getState({ cloneDocuments: false }).selection ?? { selectedIds: [], activeId: null };\n syncSelectionToProjection(state, options, selection);\n syncEditorWorldAppearanceFromDocument(state, options, document, 'world-appearance-sync-changed-ids');\n syncEditorWorldRenderingFromDocument(state, options, document, 'world-rendering-sync-changed-ids', true);\n invalidateEditorScene(state, 'projection-sync-changed-ids');\n}\n\nfunction syncProjectionNodeTransformOrReprojectRuntime<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n projectedNode: BabylonEditorProjectionNode,\n options: { forceReproject?: boolean } = {},\n): void {\n if (!state.projection) return;\n if (projectedNode.runtimeKind === 'light' && state.projection.syncRuntimeNode(projectedNode)) {\n state.shadowPreview?.refresh();\n return;\n }\n if (options.forceReproject || projectedNode.runtimeKind === 'light' || shouldReprojectRuntimeProjectionNode(projectedNode)) {\n state.projection.projectNode(projectedNode);\n if (projectedNode.runtimeKind === 'light') state.shadowPreview?.refresh();\n return;\n }\n state.projection.syncNodeTransform(projectedNode);\n}\n\nfunction shouldReprojectRuntimeProjectionNode(projectedNode: BabylonEditorProjectionNode): boolean {\n return projectedNode.runtimeKind === 'camera';\n}\n\nfunction syncProjectionMetadataForChangedIds<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n changedIds: string[],\n syncOptions: {\n deferShadowPreviewRefresh?: boolean;\n invalidateStaticShadowArtifact?: boolean;\n } = {},\n): void {\n if (state.prefabStage) {\n rebuildProjectionFromDocument(state, options, document, EMPTY_EDITOR_SELECTION);\n return;\n }\n for (const changedId of changedIds) {\n const projectedNode = options.documentAdapter.getProjectionNode(document, changedId);\n if (projectedNode) {\n (state.projection as (BabylonEditorProjection & {\n syncNodeMetadata?: (node: BabylonEditorProjectionNode) => void;\n }) | null | undefined)?.syncNodeMetadata?.(projectedNode);\n }\n }\n const selection = state.session?.getState({ cloneDocuments: false }).selection ?? { selectedIds: [], activeId: null };\n syncSelectionToProjection(state, options, selection);\n syncEditorWorldAppearanceFromDocument(state, options, document, 'world-appearance-sync-metadata-ids');\n if (syncOptions.invalidateStaticShadowArtifact) {\n state.shadowPreview?.invalidateStaticProjectedArtifact?.();\n } else {\n syncEditorWorldRenderingFromDocument(state, options, document, 'world-rendering-sync-metadata-ids', true);\n }\n if (syncOptions.deferShadowPreviewRefresh) {\n scheduleProjectionShadowPreviewRefresh(state, 'projection-sync-metadata-ids-shadow-preview');\n } else {\n state.shadowPreview?.refresh();\n }\n invalidateEditorScene(state, 'projection-sync-metadata-ids');\n}\n\nfunction rebuildProjectionAfterShadowTopologyMetadataPatch<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n selection: EditorSelectionState,\n): void {\n rebuildProjectionFromDocument(state, options, document, selection);\n state.shadowPreview?.invalidateStaticProjectedArtifact?.();\n scheduleProjectionShadowPreviewRebuild(state, 'projection-shadow-topology-metadata-rebuild');\n}\n\nfunction reprojectProjectionForChangedIds<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n changedIds: string[],\n): void {\n if (state.prefabStage) {\n rebuildProjectionFromDocument(state, options, document, EMPTY_EDITOR_SELECTION);\n return;\n }\n for (const changedId of changedIds) {\n const projectedNode = options.documentAdapter.getProjectionNode(document, changedId);\n if (projectedNode) state.projection?.projectNode(projectedNode);\n }\n applyPreviewVisibilityStateToProjection(state);\n syncCurrentSelectionToSceneArtifacts(state, options);\n syncEditorWorldAppearanceFromDocument(state, options, document, 'world-appearance-reproject-changed-ids');\n syncEditorWorldRenderingFromDocument(state, options, document, 'world-rendering-reproject-changed-ids', true);\n invalidateEditorScene(state, 'projection-reproject-changed-ids', options);\n}\n\nfunction applyPreviewVisibilityStateToProjection<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): void {\n const projection = state.projection;\n if (!projection?.clearPreviewVisibilityOverrides || !projection.setPreviewVisibilityOverrides) return;\n projection.clearPreviewVisibilityOverrides();\n const overrides = state.previewVisibility.overrides;\n if (Object.keys(overrides).length > 0) {\n projection.setPreviewVisibilityOverrides(overrides);\n }\n}\n\nfunction setSceneCameraPreviewEnabled<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n enabled: boolean,\n): boolean {\n if (!enabled) {\n state.sceneCameraPreviewEnabled = false;\n state.sceneCameraPreview?.setActive(false);\n state.status = 'Scene Camera preview disabled';\n requestEditorSceneFrame(state, 'scene-camera-preview-toggle');\n return true;\n }\n state.sceneCameraPreviewEnabled = true;\n if (!syncSceneCameraPreview(state, options)) {\n state.sceneCameraPreviewEnabled = false;\n state.status = 'Scene Camera preview unavailable';\n state.statusTone = 'warning';\n state.statusToneStatus = state.status;\n state.statusDetails = 'The current document did not provide a Main Camera preview rig.';\n return true;\n }\n state.status = 'Scene Camera preview enabled';\n requestEditorSceneFrame(state, 'scene-camera-preview-toggle');\n return true;\n}\n\nfunction setGridVisible<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n visible: boolean,\n): boolean {\n const nextVisible = visible === true;\n if (!setGridVisibleForEditorContext(state, nextVisible, 'grid-visible-change')) return false;\n state.status = nextVisible ? 'Grid visible' : 'Grid hidden';\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n return true;\n}\n\nfunction setGridVisibleForEditorContext<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n visible: boolean,\n reason: string,\n): boolean {\n const nextVisible = visible === true;\n if (state.gridVisible === nextVisible) return false;\n state.gridVisible = nextVisible;\n state.grid?.setVisible(nextVisible);\n requestEditorSceneFrame(state, reason);\n return true;\n}\n\nfunction syncSceneCameraPreview<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): boolean {\n const controller = state.sceneCameraPreview;\n if (!controller) return false;\n if (!state.sceneCameraPreviewEnabled) {\n controller.setActive(false);\n return false;\n }\n const document = state.session?.getState().workingDocument ?? null;\n const rig = document ? options.documentAdapter.getSceneCameraPreviewRig?.(document) ?? null : null;\n if (!rig) {\n controller.setActive(false);\n return false;\n }\n controller.setActive(true, rig);\n return controller.isActive();\n}\n\nfunction syncViewportCameraState<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): void {\n const cameraState = state.sceneViewCamera?.getState();\n if (!cameraState) return;\n state.viewportTools = {\n ...state.viewportTools,\n viewPreset: cameraState.viewPreset,\n projectionMode: cameraState.projectionMode,\n };\n}\n\nfunction syncViewportSpatialOverlay<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): void {\n const settings = state.viewportTools.overlay;\n if (!settings.bounds && !settings.dimensions && !settings.edgeLengths && !settings.anchor) {\n state.viewportSpatialOverlay = createEmptyEditorViewportSpatialOverlayState();\n return;\n }\n const overlay = state.sceneViewSpatialOverlay;\n const selection = getCurrentPreviewSelection(state, options);\n const activeId = selection.activeId;\n if (state.mode !== 'editor' || !overlay || !activeId || selection.selectedIds.length !== 1) {\n state.viewportSpatialOverlay = createEmptyEditorViewportSpatialOverlayState();\n return;\n }\n const bounds = state.projection?.getSelectionBounds([activeId]) ?? null;\n const transform = state.projection?.readNodeTransform(activeId) ?? null;\n const anchor = transform ? readEditorTransformPosition(transform) : bounds?.center ?? null;\n state.viewportSpatialOverlay = overlay.compute({\n nodeId: activeId,\n bounds,\n anchor,\n settings,\n });\n}\n\nfunction syncViewportMeasurementState<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): void {\n if (state.mode !== 'editor') return;\n const measurement = state.sceneViewMeasurement?.getState();\n if (measurement) state.viewportMeasurement = measurement;\n}\n\nfunction hasSceneCameraPreviewRig<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): boolean {\n const document = state.session?.getState().workingDocument ?? null;\n return !!document && !!options.documentAdapter.getSceneCameraPreviewRig?.(document);\n}\n\nfunction applyActiveTransformPreviewToInspectorObject<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument | null,\n inspectorObject: InspectorObject<TDocument> | null,\n): InspectorObject<TDocument> | null {\n const preview = state.activeTransformPreview;\n if (!preview || !inspectorObject || inspectorObject.targetIds.length !== 1) return inspectorObject;\n const targetId = inspectorObject.activeId ?? inspectorObject.targetIds[0] ?? null;\n if (!targetId || targetId !== preview.activeId) return inspectorObject;\n const transform = resolveActiveTransformInspectorPreviewTransform(state, options, document, targetId);\n if (!transform) return inspectorObject;\n\n let changed = false;\n const sections = inspectorObject.sections.map(section => {\n let sectionChanged = false;\n const properties = section.properties.map(property => {\n const previewValue = readActiveTransformPreviewPropertyValue(transform, property.path);\n if (previewValue === undefined) return property;\n sectionChanged = true;\n return {\n ...property,\n value: previewValue,\n mixed: false,\n };\n });\n if (!sectionChanged) return section;\n changed = true;\n return { ...section, properties };\n });\n\n return changed ? { ...inspectorObject, sections } : inspectorObject;\n}\n\nfunction resolveActiveTransformInspectorPreviewTransform<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument | null,\n targetId: string,\n): EditorTransformSnapshot | null {\n const preview = state.activeTransformPreview;\n const transform = preview?.transforms[targetId] ?? null;\n if (!preview || !transform) return null;\n const createInspectorPreview = options.documentAdapter.createTransformInspectorPreview;\n if (!document || !createInspectorPreview) return transform;\n return createInspectorPreview({\n document,\n targetId,\n targetIds: [...preview.targetIds],\n activeId: preview.activeId,\n transform: cloneEditorTransformSnapshot(transform),\n });\n}\n\nfunction readActiveTransformPreviewPropertyValue(\n transform: EditorTransformSnapshot,\n path: string,\n): unknown {\n if (!isEditorTransformTrsSnapshot(transform)) return undefined;\n const vectorMatch = path.match(/^transform\\.(position|rotation|scale)$/);\n if (vectorMatch) {\n const group = vectorMatch[1] as 'position' | 'rotation' | 'scale';\n return group === 'rotation'\n ? {\n x: radiansToInspectorDegrees(transform.rotation.x),\n y: radiansToInspectorDegrees(transform.rotation.y),\n z: radiansToInspectorDegrees(transform.rotation.z),\n }\n : { ...transform[group] };\n }\n const axisMatch = path.match(/^transform\\.(position|rotation|scale)\\.(x|y|z)$/);\n if (!axisMatch) return undefined;\n const group = axisMatch[1] as 'position' | 'rotation' | 'scale';\n const axis = axisMatch[2] as keyof EditorTransformVec3;\n const value = transform[group][axis];\n return group === 'rotation' ? radiansToInspectorDegrees(value) : value;\n}\n\nfunction radiansToInspectorDegrees(value: number): number {\n return (value * 180) / Math.PI;\n}\n\nfunction createUiState<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): LocalEditorBrowserUiState<TDocument> {\n const sessionState = state.session?.getState({ cloneDocuments: false });\n const document = sessionState?.workingDocument ?? null;\n const documentSelectedIds = sessionState?.selection.selectedIds ?? [];\n const documentActiveId = sessionState?.selection.activeId ?? null;\n const scopedPreviewSelection = getScopedPreviewSelectionForUiState(state, options, {\n selectedIds: documentSelectedIds,\n activeId: documentActiveId,\n });\n const selectedIds = scopedPreviewSelection.selectedIds;\n const activeId = scopedPreviewSelection.activeId;\n const largeSelection = isLargeSelection(documentSelectedIds);\n const transformSelectionIsLarge = isLargeSelection(selectedIds);\n const markerGraph = document ? options.documentAdapter.getMarkerGraph?.(document) ?? null : null;\n const markerTypes = document ? options.documentAdapter.getMarkerTypeCatalog?.(document) ?? [] : [];\n const relationTypes = document ? options.documentAdapter.getRelationTypeCatalog?.(document) ?? [] : [];\n const documentHierarchy = document ? options.documentAdapter.getHierarchyItems(document) : [];\n const activeMarkerId = activeId ? readSpatialMarkerIdFromHierarchySelection(markerGraph, activeId, documentHierarchy) : null;\n const markerRelationVisibility = createMarkerRelationVisibilityOptions(state);\n const markerInspectorObject = document && activeId\n ? createMarkerInspectorObjectBase(\n options,\n document,\n activeId,\n markerGraph,\n documentHierarchy,\n markerTypes,\n state.activeMarkerRelationId,\n state.markerRelationPick,\n markerRelationVisibility,\n )\n : null;\n const inspectorObjectBase = document && activeId && (selectedIds.length === 1 || markerInspectorObject)\n ? markerInspectorObject\n ?? options.documentAdapter.getInspectorObject?.(document, activeId)\n ?? null\n : null;\n const inspectorMultiObjectBase = document && documentSelectedIds.length > 1\n ? createInspectorMultiObjectBase(state, options, document, documentSelectedIds, documentActiveId, {\n largeSelection,\n })\n : null;\n const markerRelationInspectorObjectBase = document && inspectorObjectBase\n ? withMarkerGraphRelationInspectorSection(\n options,\n document,\n inspectorObjectBase,\n markerGraph,\n documentHierarchy,\n markerTypes,\n relationTypes,\n state.activeMarkerRelationId,\n state.markerRelationPick,\n markerRelationVisibility,\n )\n : inspectorObjectBase;\n const inspectorObject = document && markerRelationInspectorObjectBase\n ? withRuntimeInspectorSections(state, options, document, markerRelationInspectorObjectBase)\n : inspectorObjectBase;\n const inspectorMultiObject = document && inspectorMultiObjectBase\n ? withRuntimeInspectorSections(state, options, document, inspectorMultiObjectBase)\n : inspectorMultiObjectBase;\n const previewInspectorObject = applyActiveTransformPreviewToInspectorObject(state, options, document, inspectorObject);\n const previewInspectorMultiObject = applyActiveTransformPreviewToInspectorObject(state, options, document, inspectorMultiObject);\n const documentAssetItems = document\n ? options.documentAdapter.getBrowserAssetItems?.(document) ?? []\n : [];\n const hierarchy = document\n ? createMarkerGraphHierarchyItems(documentHierarchy, markerGraph, createMarkerGraphHierarchyVisibility(state))\n : [];\n state.performanceObjectCount = document ? countLocalEditorAuthoredObjects(documentHierarchy) : null;\n state.performanceStats = createLocalEditorPerformanceStats({\n frameStats: state.sceneFrameStats,\n runtimeStats: state.performanceMonitor?.readSnapshot() ?? null,\n objectCount: state.performanceObjectCount,\n });\n const assets = dedupeLocalEditorBrowserAssetItems([\n ...state.assets.map(asset => toBrowserAssetItem(options, asset)),\n ...documentAssetItems,\n ]);\n return {\n mode: state.mode,\n busy: state.busy,\n agentBridge: state.agentBridgeStatus,\n status: state.status,\n statusTone: state.statusToneStatus === state.status ? state.statusTone : 'default',\n statusDetails: state.statusToneStatus === state.status ? state.statusDetails : '',\n summary: state.summary,\n assetFilter: state.assetFilter,\n assets,\n selectedAssetId: state.selectedAssetId,\n assetCountLabel: `${assets.length} assets`,\n hierarchy,\n selectedIds,\n activeId,\n selectionSummary: {\n count: selectedIds.length,\n activeId,\n },\n inspectorObject: previewInspectorObject,\n inspectorMultiObject: previewInspectorMultiObject,\n renderingPanel: document\n ? options.documentAdapter.getRenderingPanelState?.(document, {\n scene: state.world?.scene ?? null,\n projection: state.projection,\n renderingAction: state.renderingAction,\n }) ?? null\n : null,\n markerPanel: document\n ? createMarkerPanelState(\n markerGraph,\n markerTypes,\n relationTypes,\n documentHierarchy,\n activeMarkerId,\n state.activeMarkerRelationId,\n state.markerRelationPick,\n markerRelationVisibility,\n )\n : null,\n pluginPanel: createLocalEditorPluginPanelState(options.pluginHost, state.lifecycle),\n boxSelection: state.boxSelection,\n coordinateAxes: options.world?.coordinateAxes === false\n ? null\n : createSceneViewCoordinateAxesState(state),\n transformTool: {\n activeTool: state.transformTool,\n activeSpace: state.transformSpace,\n activeConstraint: state.transformConstraint,\n dragPhase: state.gizmo?.getState().dragPhase ?? 'idle',\n draggingNodeId: state.gizmo?.getState().draggingNodeId ?? null,\n },\n transformOperations: {\n settings: cloneTransformOperationSettings(getScopedTransformOperationSettings(state)),\n selectedCount: selectedIds.length,\n activeId,\n canAlign: !transformSelectionIsLarge && selectedIds.length >= 2 && activeId != null && !state.prefabStage,\n canDistribute: !transformSelectionIsLarge && selectedIds.length >= 3 && !state.prefabStage,\n },\n viewportTools: cloneEditorViewportToolState(state.viewportTools),\n viewportMeasurement: cloneViewportMeasurement(state.viewportMeasurement),\n viewportSpatialOverlay: cloneEditorViewportSpatialOverlayState(state.viewportSpatialOverlay),\n sceneFrameStats: state.sceneFrameStats\n ? { ...state.sceneFrameStats, activeReasons: [...state.sceneFrameStats.activeReasons] }\n : null,\n performanceStats: cloneLocalEditorPerformanceStats(state.performanceStats),\n sceneCameraPreview: {\n enabled: state.sceneCameraPreviewEnabled,\n available: hasSceneCameraPreviewRig(state, options),\n },\n prefabStage: createBrowserPrefabStageState(state, options, document),\n grid: {\n visible: state.gridVisible,\n available: !!state.grid,\n },\n session: sessionState\n ? {\n source: sessionState.source,\n dirty: sessionState.dirty,\n canUndo: sessionState.canUndo,\n canRedo: sessionState.canRedo,\n history: sessionState.history,\n }\n : null,\n };\n}\n\nfunction createBrowserPrefabStageState<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument | null,\n): LocalEditorBrowserUiState<TDocument>['prefabStage'] {\n const stage = state.prefabStage;\n if (!stage || !document) return null;\n const descriptor = resolvePrefabStageDescriptorForDocument(state, options, document) ?? stage.descriptor;\n const context = createPrefabStageContext(state, descriptor);\n const structureItems = options.documentAdapter.getPrefabStageStructure?.(document, descriptor, context)\n ?? createFallbackPrefabStageStructure(descriptor);\n const inspectorObject = options.documentAdapter.getPrefabStageInspectorObject?.(\n document,\n descriptor,\n stage.selectedItemId,\n context,\n ) ?? null;\n return {\n assetId: descriptor.assetId,\n browserAssetId: descriptor.browserAssetId,\n label: descriptor.label,\n sourceAssetId: descriptor.sourceAssetId,\n sourceAssetGuid: descriptor.sourceAssetGuid,\n readonly: descriptor.readonly,\n selectedItemId: stage.selectedItemId,\n structureItems,\n inspectorObject,\n importStructureReady: context.importStructureReady,\n importStats: createPrefabStageImportStats(context),\n previewNodeId: descriptor.previewNodeId,\n comparisonPreviews: createPrefabStageComparisonPreviews(state, descriptor),\n };\n}\n\nfunction summarizeAgentBridgePrefabStage<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): EditorAgentBridgePrefabStageState | null {\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n const stage = createBrowserPrefabStageState(state, options, document);\n if (!stage) return null;\n return createAgentBridgePrefabStageState(stage);\n}\n\nfunction summarizeAgentBridgePrefabStageDetails<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): LocalEditorAgentBridgePrefabStageDetails<TDocument> | null {\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n const stage = createBrowserPrefabStageState(state, options, document);\n if (!stage) return null;\n return {\n stage: createAgentBridgePrefabStageState(stage),\n structureItems: stage.structureItems,\n inspectorObject: stage.inspectorObject ?? null,\n };\n}\n\nfunction createAgentBridgePrefabStageState<TDocument>(\n stage: NonNullable<LocalEditorBrowserUiState<TDocument>['prefabStage']>,\n): EditorAgentBridgePrefabStageState {\n return {\n assetId: stage.assetId,\n ...(stage.browserAssetId ? { browserAssetId: stage.browserAssetId } : {}),\n label: stage.label,\n ...(stage.sourceAssetId ? { sourceAssetId: stage.sourceAssetId } : {}),\n ...(stage.sourceAssetGuid ? { sourceAssetGuid: stage.sourceAssetGuid } : {}),\n ...(stage.previewNodeId ? { previewNodeId: stage.previewNodeId } : {}),\n selectedItemId: stage.selectedItemId ?? null,\n ...(stage.readonly != null ? { readonly: stage.readonly } : {}),\n };\n}\n\nfunction createAgentBridgePrefabSummaryFromStage(\n stage: EditorAgentBridgePrefabStageState,\n): EditorAgentBridgePrefabSummary {\n return {\n assetId: stage.assetId,\n ...(stage.browserAssetId ? { browserAssetId: stage.browserAssetId } : {}),\n displayName: stage.label,\n ...(stage.sourceAssetId ? { sourceAssetId: stage.sourceAssetId } : {}),\n ...(stage.sourceAssetGuid ? { sourceAssetGuid: stage.sourceAssetGuid } : {}),\n ...(stage.readonly != null ? { readonly: stage.readonly } : {}),\n status: 'ready',\n };\n}\n\nfunction isSameAgentBridgePrefabStage(\n left: EditorAgentBridgePrefabStageState | null,\n right: EditorAgentBridgePrefabStageState | null,\n): boolean {\n if (!left || !right) return false;\n return left.assetId === right.assetId\n || (!!left.browserAssetId && left.browserAssetId === right.browserAssetId);\n}\n\nfunction createPrefabStageContext<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n descriptor: LocalEditorHarnessPrefabStageDescriptor<TDocument>,\n): LocalEditorHarnessPrefabStageContext {\n const previewNodeId = descriptor.previewNodeId;\n if (!previewNodeId) {\n return {\n importStructure: null,\n importStructureReady: false,\n };\n }\n const projectedNode = state.projection?.getProjectedNode(previewNodeId) ?? null;\n return {\n previewNodeId,\n importStructure: state.projection?.readNodeImportStructure(previewNodeId) ?? null,\n importStructureReady: !!projectedNode && !projectedNode.loadPromise,\n };\n}\n\nfunction createPrefabStageImportStats(\n context: LocalEditorHarnessPrefabStageContext,\n): LocalEditorBrowserPrefabStageImportStats {\n const snapshot = context.importStructure;\n if (!context.importStructureReady) {\n return createEmptyPrefabStageImportStats('loading', snapshot);\n }\n if (!snapshot) {\n return createEmptyPrefabStageImportStats('missing', null);\n }\n const nodes = snapshot.nodes ?? [];\n return {\n status: 'ready',\n projectionNodeId: snapshot.projectionNodeId,\n ...(snapshot.assetId ? { assetId: snapshot.assetId } : {}),\n ...(snapshot.sourceId ? { sourceId: snapshot.sourceId } : {}),\n nodeCount: nodes.length,\n transformCount: nodes.filter(node => node.kind === 'root' || node.kind === 'transform').length,\n meshCount: nodes.filter(node => node.kind === 'mesh').length,\n materialCount: snapshot.materials?.length ?? 0,\n textureCount: snapshot.textures?.length ?? 0,\n animationCount: snapshot.animations?.length ?? 0,\n };\n}\n\nfunction createEmptyPrefabStageImportStats(\n status: LocalEditorBrowserPrefabStageImportStats['status'],\n snapshot: BabylonEditorProjectionImportStructureSnapshot | null,\n): LocalEditorBrowserPrefabStageImportStats {\n return {\n status,\n ...(snapshot?.projectionNodeId ? { projectionNodeId: snapshot.projectionNodeId } : {}),\n ...(snapshot?.assetId ? { assetId: snapshot.assetId } : {}),\n ...(snapshot?.sourceId ? { sourceId: snapshot.sourceId } : {}),\n nodeCount: 0,\n transformCount: 0,\n meshCount: 0,\n materialCount: 0,\n textureCount: 0,\n animationCount: 0,\n };\n}\n\nfunction createPrefabStageComparisonPreviews<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n descriptor: LocalEditorHarnessPrefabStageDescriptor<TDocument>,\n): LocalEditorBrowserPrefabStageComparisonPreview[] {\n return PREFAB_STAGE_COMPARISON_PREVIEW_DEFINITIONS.map((definition): LocalEditorBrowserPrefabStageComparisonPreview => {\n const projectionNodeId = createPrefabStageComparisonProjectionNodeId(descriptor, definition.nodeIdSuffix);\n const projectedNode = state.projection?.getProjectedNode(projectionNodeId) ?? null;\n const status: LocalEditorBrowserPrefabStageComparisonPreview['status'] = !descriptor.sourceAssetId || !projectedNode\n ? 'unavailable'\n : projectedNode.loadPromise\n ? 'loading'\n : 'ready';\n return {\n id: definition.id,\n label: definition.label,\n mode: definition.mode,\n projectionNodeId,\n status,\n };\n });\n}\n\nfunction createPrefabStageComparisonProjectionNodeId<TDocument>(\n descriptor: LocalEditorHarnessPrefabStageDescriptor<TDocument>,\n suffix: string,\n): string {\n const previewNodeId = descriptor.previewNodeId ?? `prefab-stage:${descriptor.assetId}`;\n return `${previewNodeId}:${suffix}`;\n}\n\nfunction createFallbackPrefabStageStructure<TDocument>(\n descriptor: LocalEditorHarnessPrefabStageDescriptor<TDocument>,\n): LocalEditorHarnessPrefabStageStructureItem[] {\n return [{\n id: 'prefab-root',\n label: descriptor.label,\n kind: 'root',\n icon: 'prefab',\n meta: descriptor.assetId,\n readonly: descriptor.readonly,\n children: [{\n id: 'prefab-source',\n label: 'Source Model',\n kind: 'source',\n icon: 'asset',\n sourceAssetId: descriptor.sourceAssetId,\n meta: descriptor.sourceAssetId ?? 'Missing source asset',\n readonly: true,\n }],\n }];\n}\n\nfunction getScopedPreviewSelectionForUiState<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n fallbackSelection: EditorSelectionState,\n): EditorSelectionState {\n return state.prefabStage\n ? getCurrentPrefabStageProjectionSelection(state, options)\n : fallbackSelection;\n}\n\nfunction getCurrentPreviewSelection<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): EditorSelectionState {\n return getScopedPreviewSelectionForUiState(\n state,\n options,\n state.session?.getState({ cloneDocuments: false }).selection ?? EMPTY_EDITOR_SELECTION,\n );\n}\n\nfunction createUiPreviewState<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): LocalEditorHarnessUiPreviewState<TDocument> {\n const sessionState = state.session?.getState({ cloneDocuments: false });\n const selection = sessionState?.selection;\n const document = sessionState?.workingDocument ?? null;\n const documentSelectedIds = selection?.selectedIds ?? [];\n const documentActiveId = selection?.activeId ?? null;\n const scopedPreviewSelection = getScopedPreviewSelectionForUiState(state, options, {\n selectedIds: documentSelectedIds,\n activeId: documentActiveId,\n });\n const selectedIds = scopedPreviewSelection.selectedIds;\n const activeId = scopedPreviewSelection.activeId;\n const transformSelectionIsLarge = isLargeSelection(selectedIds);\n const shouldPreviewInspector = !!state.activeTransformPreview && document && documentActiveId && documentSelectedIds.length === 1;\n const inspectorObjectBase = shouldPreviewInspector\n ? options.documentAdapter.getInspectorObject?.(document, documentActiveId) ?? null\n : null;\n const inspectorObject = shouldPreviewInspector && document && inspectorObjectBase\n ? applyActiveTransformPreviewToInspectorObject(\n state,\n options,\n document,\n withRuntimeInspectorSections(state, options, document, inspectorObjectBase),\n )\n : null;\n return {\n status: state.status,\n statusTone: state.statusToneStatus === state.status ? state.statusTone : 'default',\n statusDetails: state.statusToneStatus === state.status ? state.statusDetails : '',\n ...(inspectorObject ? { inspectorObject } : {}),\n boxSelection: state.boxSelection,\n coordinateAxes: options.world?.coordinateAxes === false\n ? null\n : createSceneViewCoordinateAxesState(state),\n transformTool: {\n activeTool: state.transformTool,\n activeSpace: state.transformSpace,\n activeConstraint: state.transformConstraint,\n dragPhase: state.gizmo?.getState().dragPhase ?? 'idle',\n draggingNodeId: state.gizmo?.getState().draggingNodeId ?? null,\n },\n transformOperations: {\n settings: cloneTransformOperationSettings(getScopedTransformOperationSettings(state)),\n selectedCount: selectedIds.length,\n activeId,\n canAlign: !transformSelectionIsLarge && selectedIds.length >= 2 && activeId != null && !state.prefabStage,\n canDistribute: !transformSelectionIsLarge && selectedIds.length >= 3 && !state.prefabStage,\n },\n viewportTools: cloneEditorViewportToolState(state.viewportTools),\n viewportMeasurement: cloneViewportMeasurement(state.viewportMeasurement),\n viewportSpatialOverlay: cloneEditorViewportSpatialOverlayState(state.viewportSpatialOverlay),\n sceneFrameStats: state.sceneFrameStats\n ? { ...state.sceneFrameStats, activeReasons: [...state.sceneFrameStats.activeReasons] }\n : null,\n performanceStats: cloneLocalEditorPerformanceStats(state.performanceStats),\n };\n}\n\nfunction setLocalEditorPerformanceMonitorOpen<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n open: boolean,\n): void {\n if (state.performanceMonitorOpen === open) return;\n state.performanceMonitorOpen = open;\n if (open) {\n state.viewportRenderCoordinator?.beginContinuous(LOCAL_EDITOR_PERFORMANCE_MONITOR_REASON);\n } else {\n state.viewportRenderCoordinator?.endContinuous(LOCAL_EDITOR_PERFORMANCE_MONITOR_REASON);\n }\n}\n\nfunction updateLocalEditorPerformanceStats<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n updatePerformanceStats: (stats: LocalEditorBrowserPerformanceStats | null) => void,\n): void {\n state.performanceStats = createLocalEditorPerformanceStats({\n frameStats: state.sceneFrameStats,\n runtimeStats: state.performanceMonitor?.readSnapshot() ?? null,\n objectCount: state.performanceObjectCount,\n });\n updatePerformanceStats(cloneLocalEditorPerformanceStats(state.performanceStats));\n}\n\ninterface SceneViewAxisVec3 {\n x: number;\n y: number;\n z: number;\n}\n\nfunction createSceneViewCoordinateAxesState<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n): LocalEditorBrowserUiState['coordinateAxes'] | null {\n if (state.mode !== 'editor') return null;\n const scene = state.world?.scene ?? null;\n const camera = scene?.activeCamera ?? state.world?.camera ?? null;\n const Vector3 = state.babylon?.Vector3;\n if (!scene || !camera || !Vector3) return null;\n\n const right = readSceneViewCameraDirection(camera, Vector3, { x: 1, y: 0, z: 0 });\n const up = readSceneViewCameraDirection(camera, Vector3, { x: 0, y: 1, z: 0 });\n const forward = readSceneViewCameraForward(scene, camera, Vector3);\n if (!right || !up || !forward) return null;\n\n return {\n projectionMode: readSceneViewFreeCameraProjectionMode(state, camera),\n projectionToggleDisabled: state.sceneCameraPreviewEnabled,\n axes: [\n createSceneViewCoordinateAxis('x', 'X', '#ff4b70', { x: 1, y: 0, z: 0 }, right, up, forward),\n createSceneViewCoordinateAxis('y', 'Y', '#75ff42', { x: 0, y: 1, z: 0 }, right, up, forward),\n createSceneViewCoordinateAxis('z', 'Z', '#4f86ff', { x: 0, y: 0, z: 1 }, right, up, forward),\n ],\n };\n}\n\nfunction readSceneViewFreeCameraProjectionMode<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n camera: any,\n): EditorViewportProjectionMode {\n return state.sceneViewCamera?.getState().projectionMode\n ?? readSceneViewCameraProjectionMode(state, state.world?.camera ?? camera);\n}\n\nfunction readSceneViewCameraProjectionMode<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n camera: any,\n): EditorViewportProjectionMode {\n const orthoMode = state.babylon?.Camera?.ORTHOGRAPHIC_CAMERA ?? 1;\n return camera?.mode === orthoMode ? 'orthographic' : 'perspective';\n}\n\nfunction createSceneViewCoordinateAxis(\n id: 'x' | 'y' | 'z',\n label: string,\n color: string,\n worldAxis: SceneViewAxisVec3,\n cameraRight: SceneViewAxisVec3,\n cameraUp: SceneViewAxisVec3,\n cameraForward: SceneViewAxisVec3,\n): NonNullable<LocalEditorBrowserUiState['coordinateAxes']>['axes'][number] {\n const screenX = dotSceneViewAxisVec3(worldAxis, cameraRight);\n const screenY = -dotSceneViewAxisVec3(worldAxis, cameraUp);\n const projectedLength = Math.hypot(screenX, screenY);\n const fallback = getSceneViewAxisFallbackDirection(id);\n const direction = projectedLength > 0.0001\n ? { x: screenX / projectedLength, y: screenY / projectedLength }\n : fallback;\n return {\n id,\n label,\n color,\n x: direction.x,\n y: direction.y,\n depth: dotSceneViewAxisVec3(worldAxis, cameraForward),\n scale: clampNumber(projectedLength, 0.36, 1),\n };\n}\n\nfunction readSceneViewCameraDirection(camera: any, Vector3: any, local: SceneViewAxisVec3): SceneViewAxisVec3 | null {\n if (!camera?.getDirection) return null;\n try {\n return normalizeSceneViewAxisVec3(camera.getDirection(new Vector3(local.x, local.y, local.z)));\n } catch {\n return null;\n }\n}\n\nfunction readSceneViewCameraForward(scene: any, camera: any, Vector3: any): SceneViewAxisVec3 | null {\n const rayDirection = normalizeSceneViewAxisVec3(camera?.getForwardRay?.()?.direction);\n if (rayDirection) return rayDirection;\n return readSceneViewCameraDirection(camera, Vector3, {\n x: 0,\n y: 0,\n z: scene?.useRightHandedSystem ? -1 : 1,\n });\n}\n\nfunction normalizeSceneViewAxisVec3(value: any): SceneViewAxisVec3 | null {\n const x = Number(value?.x) || 0;\n const y = Number(value?.y) || 0;\n const z = Number(value?.z) || 0;\n const length = Math.hypot(x, y, z);\n if (!Number.isFinite(length) || length <= 0.000001) return null;\n return { x: x / length, y: y / length, z: z / length };\n}\n\nfunction dotSceneViewAxisVec3(left: SceneViewAxisVec3, right: SceneViewAxisVec3): number {\n return left.x * right.x + left.y * right.y + left.z * right.z;\n}\n\nfunction getSceneViewAxisFallbackDirection(id: 'x' | 'y' | 'z'): { x: number; y: number } {\n if (id === 'x') return { x: 1, y: 0 };\n if (id === 'y') return { x: 0, y: -1 };\n return { x: -1, y: 0 };\n}\n\nfunction clampNumber(value: number, min: number, max: number): number {\n if (!Number.isFinite(value)) return min;\n return Math.min(max, Math.max(min, value));\n}\n\nfunction isLargeSelection(selectedIds: readonly string[]): boolean {\n return selectedIds.length > LARGE_SELECTION_THRESHOLD;\n}\n\nfunction createInspectorMultiObjectBase<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n selectedIds: readonly string[],\n activeId: string | null,\n multiOptions: { largeSelection?: boolean } = {},\n): InspectorObject<TDocument> | null {\n const targetIds = [...selectedIds];\n if (targetIds.length <= 1) return null;\n const adapterMultiObject = options.documentAdapter.getInspectorMultiObject?.(document, targetIds, activeId) ?? null;\n if (multiOptions.largeSelection) {\n return applyMultiInspectorBatchCapabilityGate(\n options,\n document,\n adapterMultiObject ?? createLargeSelectionInspectorObject(document, targetIds, activeId),\n );\n }\n const baseInspector = adapterMultiObject;\n const aggregatedInspector = createAggregatedInspectorMultiObjectBase(state, options, document, targetIds, activeId);\n let inspectorObject = baseInspector ?? aggregatedInspector;\n if (baseInspector && aggregatedInspector) {\n inspectorObject = {\n ...baseInspector,\n targetIds,\n activeId,\n label: baseInspector.label ?? aggregatedInspector.label,\n document,\n selection: {\n ...baseInspector.selection,\n targetIds,\n activeId,\n document,\n },\n sections: mergeInspectorSections(baseInspector.sections, aggregatedInspector.sections, {\n propertyConflict: 'ignore',\n }),\n };\n }\n return applyMultiInspectorBatchCapabilityGate(options, document, inspectorObject);\n}\n\nfunction createLargeSelectionInspectorObject<TDocument>(\n document: TDocument,\n targetIds: readonly string[],\n activeId: string | null,\n): InspectorObject<TDocument> {\n return {\n targetIds: [...targetIds],\n activeId,\n label: `${targetIds.length} objects`,\n document,\n selection: {\n targetIds: [...targetIds],\n activeId,\n document,\n },\n sections: [{\n id: 'large-selection',\n title: 'Large Selection',\n order: 10,\n placement: 'body',\n persistence: 'readonly',\n properties: [\n {\n path: 'selection.count',\n label: 'Selected',\n valueType: 'number',\n control: 'readonly',\n value: targetIds.length,\n readOnly: true,\n persistence: 'readonly',\n commitMode: 'immediate',\n },\n {\n path: 'selection.activeId',\n label: 'Active ID',\n valueType: 'string',\n control: 'readonly',\n value: activeId ?? 'None',\n readOnly: true,\n persistence: 'readonly',\n commitMode: 'immediate',\n },\n ],\n }],\n };\n}\n\nfunction createAggregatedInspectorMultiObjectBase<TDocument, TPatch, TAsset>(\n _state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n selectedIds: readonly string[],\n activeId: string | null,\n): InspectorObject<TDocument> | null {\n const inspectorObjects = selectedIds.map((id) => createSingleInspectorObjectBase(options, document, id));\n if (inspectorObjects.some(object => !object)) return null;\n const aggregatedInspector = aggregateInspectorObjectsToMultiObject({\n targetIds: selectedIds,\n activeId,\n inspectorObjects: inspectorObjects as InspectorObject<TDocument>[],\n label: `${selectedIds.length} objects`,\n document,\n });\n return aggregatedInspector;\n}\n\nfunction createSingleInspectorObjectBase<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n targetId: string,\n): InspectorObject<TDocument> | null {\n const markerInspector = createMarkerInspectorObjectBase(options, document, targetId);\n if (markerInspector) return markerInspector;\n const inspectorObject = options.documentAdapter.getInspectorObject?.(document, targetId) ?? null;\n if (inspectorObject) return withMarkerGraphRelationInspectorSection(options, document, inspectorObject);\n return null;\n}\n\nfunction withMarkerGraphRelationInspectorSection<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n inspectorObject: InspectorObject<TDocument>,\n graph = options.documentAdapter.getMarkerGraph?.(document) ?? null,\n hierarchy: readonly LocalEditorBrowserUiHierarchyItem[] = options.documentAdapter.getHierarchyItems(document),\n markerTypes: readonly SpatialMarkerTypeDefinition[] = options.documentAdapter.getMarkerTypeCatalog?.(document) ?? [],\n relationTypes: readonly SpatialRelationTypeDefinition[] = options.documentAdapter.getRelationTypeCatalog?.(document) ?? [],\n activeRelationId: string | null = null,\n relationPick: LocalEditorMarkerRelationPickState | null = null,\n relationVisibility: MarkerRelationVisibilityOptions = {},\n): InspectorObject<TDocument> {\n if (inspectorObject.targetIds.length !== 1) return inspectorObject;\n if (inspectorObject.sections.some(section => section.id === 'markerRelations')) return inspectorObject;\n if (inspectorObject.sections.some(section => section.properties.some(property => property.path === 'marker.relations.editor'))) {\n return inspectorObject;\n }\n const targetId = inspectorObject.activeId ?? inspectorObject.targetIds[0] ?? null;\n const markerId = readSpatialMarkerIdFromHierarchySelection(graph, targetId, hierarchy);\n if (!targetId || !markerId) return inspectorObject;\n const markerInspector = createMarkerGraphInspectorObject({\n document,\n graph,\n markerId: targetId,\n hierarchy,\n markerTypes,\n relationTypes,\n activeRelationId,\n relationPick,\n relationVisibility,\n });\n const relationSection = markerInspector?.sections.find(section => section.id === 'markerRelations') ?? null;\n if (!relationSection) return inspectorObject;\n const capabilities = new Set(inspectorObject.selection.capabilities ?? []);\n capabilities.add('markerGraph');\n const markerSection = inspectorObject.sections.find(section => section.id === 'marker') ?? null;\n const sections = markerSection\n ? inspectorObject.sections.map(section => section.id === 'marker'\n ? {\n ...section,\n properties: [\n ...section.properties,\n ...createIntegratedMarkerRelationProperties(section.properties, relationSection.properties),\n ],\n }\n : section)\n : mergeInspectorSections(inspectorObject.sections, [relationSection], { propertyConflict: 'ignore' });\n return {\n ...inspectorObject,\n selection: {\n ...inspectorObject.selection,\n targetKind: inspectorObject.selection.targetKind ?? 'marker',\n capabilities: [...capabilities],\n },\n sections,\n };\n}\n\nfunction createIntegratedMarkerRelationProperties<TDocument>(\n markerProperties: readonly InspectorProperty<TDocument>[],\n relationProperties: readonly InspectorProperty<TDocument>[],\n): InspectorProperty<TDocument>[] {\n const existingPaths = new Set(markerProperties.map(property => property.path));\n const baseOrder = markerProperties.reduce((maxOrder, property, index) => (\n Math.max(maxOrder, property.order ?? index)\n ), -1);\n return relationProperties\n .filter(property => !existingPaths.has(property.path))\n .map((property, index) => ({\n ...property,\n label: formatIntegratedMarkerRelationPropertyLabel(property),\n order: baseOrder + index + 1,\n }));\n}\n\nfunction formatIntegratedMarkerRelationPropertyLabel<TDocument>(\n property: InspectorProperty<TDocument>,\n): string {\n switch (property.path) {\n case 'marker.relations.count': return '关系数量';\n case 'marker.relations.status': return '关系状态';\n case 'marker.relations.editor': return '关系';\n default: return property.label;\n }\n}\n\nfunction createMarkerInspectorObjectBase<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n targetId: string,\n graph = options.documentAdapter.getMarkerGraph?.(document) ?? null,\n hierarchy: readonly LocalEditorBrowserUiHierarchyItem[] = options.documentAdapter.getHierarchyItems(document),\n markerTypes: readonly SpatialMarkerTypeDefinition[] = options.documentAdapter.getMarkerTypeCatalog?.(document) ?? [],\n activeRelationId: string | null = null,\n relationPick: LocalEditorMarkerRelationPickState | null = null,\n relationVisibility: MarkerRelationVisibilityOptions = {},\n): InspectorObject<TDocument> | null {\n const virtualMarkerId = readMarkerGraphHierarchyMarkerIdForGraph(graph, targetId, hierarchy);\n const isVirtualRoot = isMarkerGraphHierarchyRootRowId(graph, targetId, hierarchy);\n if (!virtualMarkerId && !isVirtualRoot) return null;\n return createMarkerGraphInspectorObject({\n document,\n graph,\n markerId: targetId,\n hierarchy,\n markerTypes,\n relationTypes: options.documentAdapter.getRelationTypeCatalog?.(document) ?? [],\n activeRelationId,\n relationPick,\n relationVisibility,\n }) ?? createMarkerGraphRootInspectorObject({\n document,\n graph,\n rootId: targetId,\n hierarchy,\n markerTypes,\n relationTypes: options.documentAdapter.getRelationTypeCatalog?.(document) ?? [],\n });\n}\n\nfunction applyMultiInspectorBatchCapabilityGate<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n inspectorObject: InspectorObject<TDocument> | null,\n): InspectorObject<TDocument> | null {\n return options.documentAdapter.createSerializedMultiPropertyPatch\n ? applyAggregatedBatchInspectorCapabilityGate(options, document, inspectorObject)\n : disableAggregatedBatchInspectorObject(inspectorObject);\n}\n\nfunction disableAggregatedBatchInspectorObject<TDocument>(\n inspectorObject: InspectorObject<TDocument> | null,\n): InspectorObject<TDocument> | null {\n if (!inspectorObject) return null;\n const coverageLabel = `${inspectorObject.targetIds.length} selected`;\n return {\n ...inspectorObject,\n sections: inspectorObject.sections.map(section => ({\n ...section,\n effect: 'unsupported',\n disabledReason: section.disabledReason ?? BATCH_EDIT_REQUIRES_MULTI_PATCH_REASON,\n properties: section.properties.map(property => ({\n ...property,\n controlOptions: {\n ...property.controlOptions,\n coverageLabel: readInspectorControlOptionString(property, 'coverageLabel') ?? coverageLabel,\n actionDisabledReason: readInspectorControlOptionString(property, 'actionDisabledReason')\n ?? BATCH_EDIT_REQUIRES_MULTI_PATCH_REASON,\n },\n readOnly: true,\n effect: 'unsupported',\n disabledReason: property.disabledReason ?? BATCH_EDIT_REQUIRES_MULTI_PATCH_REASON,\n })),\n })),\n };\n}\n\nfunction applyAggregatedBatchInspectorCapabilityGate<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n inspectorObject: InspectorObject<TDocument> | null,\n): InspectorObject<TDocument> | null {\n if (!inspectorObject || !options.documentAdapter.canCreateSerializedMultiPropertyPatch) return inspectorObject;\n const coverageLabel = `${inspectorObject.targetIds.length} selected`;\n return {\n ...inspectorObject,\n sections: inspectorObject.sections.map((section) => {\n const properties = section.properties.map((property) => {\n const supported = options.documentAdapter.canCreateSerializedMultiPropertyPatch?.({\n document,\n targetIds: inspectorObject.targetIds,\n activeId: inspectorObject.activeId,\n path: property.path,\n control: property.control,\n valueType: property.valueType,\n commitMode: property.commitMode,\n persistence: property.persistence,\n }) === true;\n return supported\n ? property\n : disableAggregatedBatchInspectorProperty(property, coverageLabel);\n });\n const disabledCount = properties.filter(property => property.effect === 'unsupported' && property.readOnly).length;\n if (disabledCount === 0) return { ...section, properties };\n return {\n ...section,\n effect: disabledCount === properties.length ? 'unsupported' : section.effect,\n disabledReason: disabledCount === properties.length\n ? section.disabledReason ?? BATCH_EDIT_REQUIRES_MULTI_PATCH_REASON\n : section.disabledReason,\n properties,\n };\n }),\n };\n}\n\nfunction disableAggregatedBatchInspectorProperty<TDocument>(\n property: InspectorProperty<TDocument>,\n coverageLabel: string,\n): InspectorProperty<TDocument> {\n return {\n ...property,\n controlOptions: {\n ...property.controlOptions,\n coverageLabel: readInspectorControlOptionString(property, 'coverageLabel') ?? coverageLabel,\n actionDisabledReason: readInspectorControlOptionString(property, 'actionDisabledReason')\n ?? BATCH_EDIT_REQUIRES_MULTI_PATCH_REASON,\n },\n readOnly: true,\n effect: 'unsupported',\n disabledReason: property.disabledReason ?? BATCH_EDIT_REQUIRES_MULTI_PATCH_REASON,\n };\n}\n\nfunction readInspectorControlOptionString<TDocument>(\n property: InspectorProperty<TDocument>,\n key: string,\n): string | undefined {\n const value = property.controlOptions?.[key];\n return typeof value === 'string' && value.trim() ? value : undefined;\n}\n\nfunction withRuntimeInspectorSections<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n inspectorObject: InspectorObject<TDocument>,\n): InspectorObject<TDocument> {\n const baseInspectorObject = withDefaultEditorInspectorSections(state, options, document, inspectorObject);\n const activeId = inspectorObject.activeId;\n const projectionNode = activeId ? options.documentAdapter.getProjectionNode(document, activeId) : null;\n const projectedRoot = activeId ? state.projection?.getProjectedNode(activeId)?.root ?? null : null;\n const context: LocalEditorHarnessRuntimeInspectorContext<TDocument> = {\n document,\n targetIds: baseInspectorObject.targetIds,\n activeId,\n inspectorObject: baseInspectorObject,\n projectionNode,\n projectedRoot,\n };\n const runtimeSections = [\n ...createDefaultRuntimeInspectorSections(context),\n ...(options.documentAdapter.getRuntimeInspectorSections?.(context) ?? []),\n ];\n const sections = mergeInspectorSections(baseInspectorObject.sections, runtimeSections, {\n propertyConflict: options.inspector?.propertyConflict ?? 'ignore',\n });\n return {\n ...baseInspectorObject,\n sections,\n };\n}\n\nfunction withDefaultEditorInspectorSections<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n inspectorObject: InspectorObject<TDocument>,\n): InspectorObject<TDocument> {\n const componentInspectorObject = withInspectorComponentSections(state, options, document, inspectorObject);\n return withPlayableBabylonOutlineInspectorSection(state, options, document, componentInspectorObject);\n}\n\nfunction withPlayableBabylonOutlineInspectorSection<TDocument, TPatch, TAsset>(\n _state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n inspectorObject: InspectorObject<TDocument>,\n): InspectorObject<TDocument> {\n if (inspectorObject.targetIds.length !== 1 || !inspectorObject.activeId) return inspectorObject;\n const projectionNode = options.documentAdapter.getProjectionNode(document, inspectorObject.activeId);\n if (!projectionNode) return inspectorObject;\n const outlineSection = createPlayableBabylonOutlineInspectorSection<TDocument, string>({\n document,\n nodeKind: inferPlayableBabylonOutlineNodeKind(projectionNode),\n outline: readPlayableBabylonProjectionOutline(projectionNode.outline),\n language: readPlayableBabylonInspectorLanguage(inspectorObject),\n });\n const sections = [\n ...inspectorObject.sections.filter(section => section.id !== outlineSection.id),\n outlineSection,\n ].sort(compareInspectorSections);\n return {\n ...inspectorObject,\n sections,\n };\n}\n\nfunction inferPlayableBabylonOutlineNodeKind(projectionNode: BabylonEditorProjectionNode): string {\n if (projectionNode.primitive) return 'primitive';\n if (projectionNode.asset) return 'instance';\n return 'transform';\n}\n\nfunction readPlayableBabylonProjectionOutline(\n value: unknown,\n): PlayableBabylonOutlineOverrideConfig | null {\n if (!isObjectRecord(value)) return null;\n const outline: PlayableBabylonOutlineOverrideConfig = {};\n if (value.strategy === 'babylon-default') outline.strategy = value.strategy;\n if (typeof value.renderOutline === 'boolean') outline.renderOutline = value.renderOutline;\n if (typeof value.outlineWidth === 'number' && Number.isFinite(value.outlineWidth)) {\n outline.outlineWidth = value.outlineWidth;\n }\n const color = value.outlineColor;\n if (\n isObjectRecord(color)\n && typeof color.r === 'number'\n && typeof color.g === 'number'\n && typeof color.b === 'number'\n && Number.isFinite(color.r)\n && Number.isFinite(color.g)\n && Number.isFinite(color.b)\n ) {\n outline.outlineColor = { r: color.r, g: color.g, b: color.b };\n }\n return Object.keys(outline).length > 0 ? outline : {};\n}\n\nfunction readPlayableBabylonInspectorLanguage<TDocument>(\n inspectorObject: InspectorObject<TDocument>,\n): PlayableBabylonOutlineInspectorLanguage {\n const languageProperty = findInspectorPropertyByPath(inspectorObject, 'metadata.artistMaterialInspectorLanguage');\n return languageProperty?.value === 'en' ? 'en' : 'zh';\n}\n\nfunction withInspectorComponentSections<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n inspectorObject: InspectorObject<TDocument>,\n): InspectorObject<TDocument> {\n const context = createHarnessInspectorSelectionContext(state, document, inspectorObject);\n return mergeLocalEditorHarnessInspectorComponentSections({\n inspectorObject,\n components: options.inspector?.components,\n context,\n componentConflict: options.inspector?.componentConflict,\n propertyConflict: options.inspector?.propertyConflict,\n });\n}\n\nfunction getInspectorComponentSections<TDocument>(input: {\n components: InspectorRegistry<TDocument> | readonly InspectorComponentRegistration<TDocument>[];\n context: InspectorSelectionContext<TDocument>;\n componentConflict?: InspectorRegistryConflictStrategy;\n propertyConflict?: InspectorRegistryConflictStrategy;\n}): InspectorSection<TDocument>[] {\n if (isInspectorRegistry(input.components)) return input.components.getSections(input.context);\n const registry = createInspectorRegistry<TDocument>({\n onConflict: input.componentConflict,\n propertyConflict: input.propertyConflict,\n });\n for (const component of input.components) registry.register(component);\n return registry.getSections(input.context);\n}\n\nfunction createHarnessInspectorSelectionContext<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n document: TDocument,\n inspectorObject: InspectorObject<TDocument>,\n): InspectorSelectionContext<TDocument> {\n const activeId = inspectorObject.activeId;\n const projectedRoot = activeId ? state.projection?.getProjectedNode(activeId)?.root ?? null : null;\n return {\n ...inspectorObject.selection,\n targetIds: inspectorObject.targetIds,\n activeId,\n document,\n runtimeTarget: inspectorObject.selection.runtimeTarget ?? projectedRoot ?? undefined,\n };\n}\n\nfunction isInspectorRegistry<TDocument>(\n components: InspectorRegistry<TDocument> | readonly InspectorComponentRegistration<TDocument>[],\n): components is InspectorRegistry<TDocument> {\n return !Array.isArray(components)\n && typeof (components as InspectorRegistry<TDocument>).getSections === 'function';\n}\n\nfunction createDefaultRuntimeInspectorSections<TDocument>(\n context: LocalEditorHarnessRuntimeInspectorContext<TDocument>,\n): InspectorSection<TDocument>[] {\n if (context.targetIds.length !== 1) return [];\n const root = context.projectedRoot;\n const projectionNode = context.projectionNode;\n if (!root && !projectionNode) return [];\n const properties: InspectorProperty<TDocument>[] = [];\n if (projectionNode) {\n properties.push(createRuntimeInspectorProperty('runtime.projection.nodeId', 'Projected ID', projectionNode.id, properties.length));\n const projectionAsset = projectionNode.asset as (typeof projectionNode.asset & { assetId?: string }) | undefined;\n const assetId = projectionAsset?.assetId ?? projectionAsset?.id ?? '';\n if (assetId) properties.push(createRuntimeInspectorProperty('runtime.projection.assetId', 'Asset ID', assetId, properties.length));\n }\n const runtimeClass = readRuntimeClassName(root);\n if (runtimeClass) properties.push(createRuntimeInspectorProperty('runtime.root.className', 'Runtime Class', runtimeClass, properties.length));\n const runtimeName = readRuntimeStringProperty(root, 'name');\n if (runtimeName) properties.push(createRuntimeInspectorProperty('runtime.root.name', 'Runtime Name', runtimeName, properties.length));\n const childCount = readRuntimeChildCount(root);\n if (childCount != null) properties.push(createRuntimeInspectorProperty('runtime.root.children', 'Runtime Children', childCount, properties.length));\n if (properties.length === 0) return [];\n return [{\n id: 'runtimeDiagnostics',\n title: 'Runtime Diagnostics',\n order: 900,\n placement: 'body',\n persistence: 'runtime',\n runtimeOnly: true,\n properties,\n }];\n}\n\nfunction createRuntimeInspectorProperty<TDocument>(\n path: string,\n label: string,\n value: unknown,\n order: number,\n): InspectorProperty<TDocument> {\n return {\n path,\n label,\n valueType: typeof value === 'number' ? 'number' : typeof value === 'boolean' ? 'boolean' : typeof value === 'object' ? 'object' : 'string',\n control: 'readonly',\n value,\n readOnly: true,\n persistence: 'runtime',\n commitMode: 'blur',\n order,\n };\n}\n\nfunction readRuntimeClassName(value: unknown): string | null {\n const record = isObjectRecord(value) ? value : null;\n const getter = record?.getClassName;\n if (typeof getter === 'function') {\n const className = getter.call(value);\n if (typeof className === 'string' && className.trim()) return className;\n }\n const constructorName = record?.constructor && typeof record.constructor === 'function'\n ? record.constructor.name\n : '';\n return constructorName && constructorName !== 'Object' ? constructorName : null;\n}\n\nfunction readRuntimeStringProperty(value: unknown, key: string): string | null {\n if (!isObjectRecord(value)) return null;\n const raw = value[key];\n return typeof raw === 'string' && raw.trim() ? raw : null;\n}\n\nfunction readRuntimeChildCount(value: unknown): number | null {\n if (!isObjectRecord(value)) return null;\n const children = value.getChildren;\n if (typeof children === 'function') {\n const result = children.call(value);\n return Array.isArray(result) ? result.length : null;\n }\n return null;\n}\n\nfunction isObjectRecord(value: unknown): value is Record<string, any> {\n return !!value && typeof value === 'object';\n}\n\nfunction summarizeDocument<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n _source?: AuthoringSourceDescriptor | null,\n): string {\n return options.documentAdapter.summarize?.(document) ?? '';\n}\n\nexport function summarizeLocalEditorAuthoringFailure(\n result: AuthoringCommandResult<unknown>,\n): LocalEditorAuthoringFailureStatus {\n const diagnostic = result.diagnostics.find(item => item.severity === 'error') ?? result.diagnostics[0];\n const status = diagnostic?.message ?? result.reason ?? 'Authoring source commit failed';\n const diagnostics = summarizeDiagnostics(result.diagnostics);\n const details = [\n result.reason ? `Reason: ${result.reason}` : '',\n diagnostics ? `Diagnostics: ${diagnostics}` : '',\n ].filter(Boolean).join('\\n') || status;\n return { status, details };\n}\n\nfunction summarizeDiagnostics(diagnostics: readonly { message: string }[] | undefined): string | undefined {\n if (!diagnostics?.length) return undefined;\n return diagnostics.map(diagnostic => diagnostic.message).join('; ');\n}\n\nasync function loadDocumentFallback<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n): Promise<TDocument> {\n if (!options.persistenceAdapter.loadDocument) {\n throw new Error('LocalEditorHarness requires loadAuthoringSource or loadDocument.');\n }\n return options.persistenceAdapter.loadDocument();\n}\n\nasync function saveDocumentFallback<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n): Promise<{ document: TDocument; summary?: string }> {\n if (!options.persistenceAdapter.saveDocument) {\n throw new Error('LocalEditorHarness requires saveAuthoringSource or saveDocument.');\n }\n return options.persistenceAdapter.saveDocument(document);\n}\n\nfunction isDocumentNodeSelectable<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n id: string,\n): boolean {\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument;\n if (!document) return false;\n return isNodeSelectableInDocument(options, document, id);\n}\n\nfunction isDocumentNodeLocked<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n id: string,\n): boolean {\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument;\n if (!document) return false;\n return options.documentAdapter.isLocked?.(document, id) ?? false;\n}\n\nfunction isNodeSelectableInDocument<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n id: string,\n): boolean {\n const graph = options.documentAdapter.getMarkerGraph?.(document) ?? null;\n const hierarchy = graph ? options.documentAdapter.getHierarchyItems(document) : [];\n if (isMarkerGraphHierarchyRootRowId(graph, id, hierarchy)) return true;\n if (isMarkerGraphHierarchyId(graph, id, hierarchy)) return true;\n if (options.documentAdapter.isLocked?.(document, id)) return false;\n return options.documentAdapter.isSelectable?.(document, id) ?? true;\n}\n\nfunction resolveAssetId<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n asset: TAsset,\n): string {\n return options.worldAdapter.resolveAssetId?.(asset)\n ?? (asset as LocalEditorHarnessAssetItem).assetId\n ?? (asset as LocalEditorHarnessAssetItem).id;\n}\n\nfunction findAssetByResolvedId<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n assetId: string,\n): TAsset | null {\n let selected: { asset: TAsset; item: LocalEditorBrowserUiAssetItem } | null = null;\n for (const asset of state.assets) {\n if (resolveAssetId(options, asset) !== assetId) continue;\n const item = toBrowserAssetItem(options, asset);\n if (!selected || shouldReplaceBrowserAssetItem(selected.item, item)) {\n selected = { asset, item };\n }\n }\n return selected?.asset ?? null;\n}\n\nfunction findBrowserAssetItemByResolvedId<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument | null,\n assetId: string,\n): LocalEditorBrowserUiAssetItem | null {\n let selected: LocalEditorBrowserUiAssetItem | null = null;\n for (const asset of state.assets) {\n const item = toBrowserAssetItem(options, asset);\n if (item.id !== assetId && item.assetId !== assetId && resolveAssetId(options, asset) !== assetId) continue;\n if (!selected || shouldReplaceBrowserAssetItem(selected, item)) selected = item;\n }\n const documentItem = document ? findDocumentBrowserAssetItemByResolvedId(options, document, assetId) : null;\n if (documentItem && (!selected || shouldReplaceBrowserAssetItem(selected, documentItem))) selected = documentItem;\n return selected;\n}\n\nfunction findAssetOrDocumentBrowserItemByResolvedId<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument | null,\n assetId: string,\n): TAsset | null {\n return findAssetByResolvedId(state, options, assetId)\n ?? (document ? findDocumentBrowserAssetItemByResolvedId(options, document, assetId) as unknown as TAsset | null : null);\n}\n\nfunction findDocumentBrowserAssetItemByResolvedId<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n assetId: string,\n): LocalEditorBrowserUiAssetItem | null {\n let selected: LocalEditorBrowserUiAssetItem | null = null;\n for (const item of options.documentAdapter.getBrowserAssetItems?.(document) ?? []) {\n if (item.id !== assetId && item.assetId !== assetId) continue;\n if (item.placeable === false || item.disabled === true) continue;\n if (!selected || shouldReplaceBrowserAssetItem(selected, item)) selected = item;\n }\n return selected;\n}\n\nfunction resolveBrowserAssetItemId<TDocument, TPatch, TAsset>(\n state: LocalEditorHarnessState<TDocument, TPatch, TAsset>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n assetId: string,\n): string | null {\n let selected: LocalEditorBrowserUiAssetItem | null = null;\n for (const asset of state.assets) {\n const item = toBrowserAssetItem(options, asset);\n if (item.id !== assetId && item.assetId !== assetId && resolveAssetId(options, asset) !== assetId) continue;\n if (!selected || shouldReplaceBrowserAssetItem(selected, item)) selected = item;\n }\n return selected?.id ?? null;\n}\n\nfunction toBrowserAssetItem<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n asset: TAsset,\n): LocalEditorBrowserUiAssetItem {\n return options.worldAdapter.toBrowserAssetItem?.(asset)\n ?? {\n id: (asset as LocalEditorHarnessAssetItem).assetId ?? (asset as LocalEditorHarnessAssetItem).id,\n label: (asset as LocalEditorHarnessAssetItem).displayName ?? (asset as LocalEditorHarnessAssetItem).label,\n guid: (asset as LocalEditorHarnessAssetItem).guid,\n assetId: (asset as LocalEditorHarnessAssetItem).assetId,\n kind: (asset as LocalEditorHarnessAssetItem).kind,\n external: (asset as LocalEditorHarnessAssetItem).external,\n origin: (asset as LocalEditorHarnessAssetItem).origin,\n dedupeKey: (asset as LocalEditorHarnessAssetItem).dedupeKey,\n placeable: (asset as LocalEditorHarnessAssetItem).placeable,\n preview: (asset as LocalEditorHarnessAssetItem).preview,\n material: (asset as LocalEditorHarnessAssetItem & { material?: LocalEditorBrowserUiAssetItem['material'] }).material,\n prefab: (asset as LocalEditorHarnessAssetItem).prefab,\n meta: (asset as LocalEditorHarnessAssetItem).meta,\n disabled: (asset as LocalEditorHarnessAssetItem).disabled ?? (asset as LocalEditorHarnessAssetItem).placeable === false,\n };\n}\n\nexport function dedupeLocalEditorBrowserAssetItems(\n items: LocalEditorBrowserUiAssetItem[],\n): LocalEditorBrowserUiAssetItem[] {\n const byKey = new Map<string, LocalEditorBrowserUiAssetItem>();\n for (const item of items) {\n const key = getBrowserAssetCanonicalKey(item);\n const existing = byKey.get(key);\n if (!existing || shouldReplaceBrowserAssetItem(existing, item)) {\n byKey.set(key, item);\n }\n }\n\n const projectDuplicateKeys = new Set<string>();\n for (const item of byKey.values()) {\n if (!item.guid || item.origin !== 'project') continue;\n for (const duplicateKey of getBrowserAssetDuplicateSuppressionKeys(item)) {\n projectDuplicateKeys.add(duplicateKey);\n }\n }\n\n return [...byKey.values()].filter((item) => {\n if (item.guid) return true;\n return !getBrowserAssetDuplicateSuppressionKeys(item)\n .some(duplicateKey => projectDuplicateKeys.has(duplicateKey));\n });\n}\n\nfunction getBrowserAssetCanonicalKey(item: LocalEditorBrowserUiAssetItem): string {\n const guid = normalizeBrowserAssetString(item.guid);\n if (guid) return `guid:${guid}`;\n const platformAssetId = normalizeBrowserAssetString(item.external?.platformAssetId);\n if (platformAssetId) return `external:${platformAssetId}`;\n const dedupeKey = normalizeBrowserAssetString(item.dedupeKey);\n if (dedupeKey) return `dedupe:${dedupeKey}`;\n const assetId = normalizeBrowserAssetString(item.assetId);\n if (assetId) return `asset:${assetId}`;\n return `id:${normalizeBrowserAssetString(item.id) ?? item.id}`;\n}\n\nfunction getBrowserAssetDuplicateSuppressionKeys(item: LocalEditorBrowserUiAssetItem): string[] {\n const keys: string[] = [];\n pushBrowserAssetDuplicateKey(keys, 'external', item.external?.platformAssetId);\n pushBrowserAssetDuplicateKey(keys, 'dedupe', item.dedupeKey);\n pushBrowserAssetDuplicateKey(keys, 'asset', item.assetId);\n pushBrowserAssetDuplicateKey(keys, 'id', item.id);\n return keys;\n}\n\nfunction pushBrowserAssetDuplicateKey(keys: string[], prefix: string, value: unknown): void {\n const normalized = normalizeBrowserAssetString(value);\n if (normalized) keys.push(`${prefix}:${normalized}`);\n}\n\nfunction shouldReplaceBrowserAssetItem(\n current: LocalEditorBrowserUiAssetItem,\n candidate: LocalEditorBrowserUiAssetItem,\n): boolean {\n const currentScore = getBrowserAssetPreferenceScore(current);\n const candidateScore = getBrowserAssetPreferenceScore(candidate);\n if (candidateScore !== currentScore) return candidateScore > currentScore;\n return getBrowserAssetDetailScore(candidate) > getBrowserAssetDetailScore(current);\n}\n\nfunction getBrowserAssetPreferenceScore(item: LocalEditorBrowserUiAssetItem): number {\n return (item.origin === 'project' ? 1000 : 0)\n + (item.guid ? 100 : 0)\n + (item.assetId ? 40 : 0)\n + (item.placeable === false ? 0 : 10)\n + (item.disabled ? 0 : 5);\n}\n\nfunction getBrowserAssetDetailScore(item: LocalEditorBrowserUiAssetItem): number {\n return [\n item.label,\n item.meta,\n item.kind,\n item.external?.platformAssetId,\n item.external?.assetPath,\n item.external?.assetUrl,\n ].filter(value => typeof value === 'string' && value.trim()).length;\n}\n\nfunction normalizeBrowserAssetString(value: unknown): string | null {\n return typeof value === 'string' && value.trim() ? value.trim() : null;\n}\n"]}
|