@fps-games/editor 0.2.0-beta.4 → 0.2.1-beta.2
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/editor-state.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/editor-state.js +12 -6
- package/dist/agent-bridge/capabilities/editor-state.js.map +1 -1
- package/dist/agent-bridge/capabilities/hierarchy.d.ts +4 -0
- package/dist/agent-bridge/capabilities/hierarchy.d.ts.map +1 -0
- package/dist/agent-bridge/capabilities/hierarchy.js +209 -0
- package/dist/agent-bridge/capabilities/hierarchy.js.map +1 -0
- package/dist/agent-bridge/capabilities/prefabs.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/prefabs.js +208 -73
- package/dist/agent-bridge/capabilities/prefabs.js.map +1 -1
- package/dist/agent-bridge/capabilities/scene-objects.d.ts +3 -4
- package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/scene-objects.js +24 -23
- package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -1
- package/dist/agent-bridge/capabilities/shadows.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/shadows.js +829 -66
- package/dist/agent-bridge/capabilities/shadows.js.map +1 -1
- package/dist/agent-bridge/capabilities/ui-regions.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/ui-regions.js +19 -1
- package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -1
- package/dist/agent-bridge/capabilities/viewport.d.ts.map +1 -1
- package/dist/agent-bridge/capabilities/viewport.js +22 -9
- package/dist/agent-bridge/capabilities/viewport.js.map +1 -1
- package/dist/agent-bridge/capability-sources.d.ts.map +1 -1
- package/dist/agent-bridge/capability-sources.js +2 -0
- package/dist/agent-bridge/capability-sources.js.map +1 -1
- package/dist/agent-bridge/register.d.ts.map +1 -1
- package/dist/agent-bridge/register.js +194 -0
- package/dist/agent-bridge/register.js.map +1 -1
- package/dist/agent-bridge/shared.d.ts +231 -11
- package/dist/agent-bridge/shared.d.ts.map +1 -1
- package/dist/agent-bridge/shared.js +162 -20
- package/dist/agent-bridge/shared.js.map +1 -1
- package/dist/agent-bridge/source-types.d.ts +17 -1
- package/dist/agent-bridge/source-types.d.ts.map +1 -1
- package/dist/agent-bridge/source-types.js.map +1 -1
- package/dist/build-info.json +57 -42
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/internal/babylon-preview-engine.d.ts +3 -0
- package/dist/internal/babylon-preview-engine.d.ts.map +1 -0
- package/dist/internal/babylon-preview-engine.js +11 -0
- package/dist/internal/babylon-preview-engine.js.map +1 -0
- package/dist/internal/material-preview.d.ts +22 -0
- package/dist/internal/material-preview.d.ts.map +1 -0
- package/dist/internal/material-preview.js +186 -0
- package/dist/internal/material-preview.js.map +1 -0
- package/dist/internal/product-local-editor-cleanup.d.ts +5 -0
- package/dist/internal/product-local-editor-cleanup.d.ts.map +1 -0
- package/dist/internal/product-local-editor-cleanup.js +20 -0
- package/dist/internal/product-local-editor-cleanup.js.map +1 -0
- package/dist/internal/project-model-preview.d.ts +4 -0
- package/dist/internal/project-model-preview.d.ts.map +1 -0
- package/dist/internal/project-model-preview.js +359 -0
- package/dist/internal/project-model-preview.js.map +1 -0
- package/dist/local-editor-agent-actions.d.ts +2 -4
- package/dist/local-editor-agent-actions.d.ts.map +1 -1
- package/dist/local-editor-agent-actions.js +56 -32
- package/dist/local-editor-agent-actions.js.map +1 -1
- package/dist/local-editor-agent-context.d.ts +17 -6
- package/dist/local-editor-agent-context.d.ts.map +1 -1
- package/dist/local-editor-agent-context.js +47 -0
- package/dist/local-editor-agent-context.js.map +1 -1
- package/dist/local-editor-harness.d.ts +353 -35
- package/dist/local-editor-harness.d.ts.map +1 -1
- package/dist/local-editor-harness.js +4115 -1313
- package/dist/local-editor-harness.js.map +1 -1
- package/dist/local-editor-marker-graph.d.ts +15 -15
- package/dist/local-editor-marker-graph.d.ts.map +1 -1
- package/dist/local-editor-marker-graph.js +3 -0
- package/dist/local-editor-marker-graph.js.map +1 -1
- package/dist/local-editor-performance-stats.d.ts +3 -2
- package/dist/local-editor-performance-stats.d.ts.map +1 -1
- package/dist/local-editor-performance-stats.js.map +1 -1
- package/dist/local-editor-prefab-stage-transaction.d.ts +19 -0
- package/dist/local-editor-prefab-stage-transaction.d.ts.map +1 -0
- package/dist/local-editor-prefab-stage-transaction.js +45 -0
- package/dist/local-editor-prefab-stage-transaction.js.map +1 -0
- package/dist/local-editor-scene-view-interaction-runtime.d.ts +3 -1
- package/dist/local-editor-scene-view-interaction-runtime.d.ts.map +1 -1
- package/dist/local-editor-scene-view-interaction-runtime.js +24 -0
- package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
- package/dist/local-editor-tools.d.ts +19 -0
- package/dist/local-editor-tools.d.ts.map +1 -0
- package/dist/local-editor-tools.js +56 -0
- package/dist/local-editor-tools.js.map +1 -0
- package/dist/playable-babylon-rendering.d.ts +9 -0
- package/dist/playable-babylon-rendering.d.ts.map +1 -1
- package/dist/playable-babylon-rendering.js +162 -6
- package/dist/playable-babylon-rendering.js.map +1 -1
- package/dist/playable-local-editor-entry.d.ts +68 -0
- package/dist/playable-local-editor-entry.d.ts.map +1 -0
- package/dist/playable-local-editor-entry.js +424 -0
- package/dist/playable-local-editor-entry.js.map +1 -0
- package/dist/playable-local-editor-host.d.ts +55 -29
- package/dist/playable-local-editor-host.d.ts.map +1 -1
- package/dist/playable-local-editor-host.js +50 -11
- package/dist/playable-local-editor-host.js.map +1 -1
- package/dist/playable-product-local-editor.d.ts +10 -12
- package/dist/playable-product-local-editor.d.ts.map +1 -1
- package/dist/playable-product-local-editor.js +178 -85
- package/dist/playable-product-local-editor.js.map +1 -1
- package/dist/playable-product-projection-preview.d.ts +4 -1
- package/dist/playable-product-projection-preview.d.ts.map +1 -1
- package/dist/playable-product-projection-preview.js +122 -5
- package/dist/playable-product-projection-preview.js.map +1 -1
- package/dist/playable-product-rendering.d.ts +12 -0
- package/dist/playable-product-rendering.d.ts.map +1 -1
- package/dist/playable-product-rendering.js +128 -6
- package/dist/playable-product-rendering.js.map +1 -1
- package/dist/playable-product-scene-capabilities.d.ts +24 -7
- package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
- package/dist/playable-product-scene-capabilities.js +180 -17
- package/dist/playable-product-scene-capabilities.js.map +1 -1
- package/dist/playable-project-mode.d.ts +17 -0
- package/dist/playable-project-mode.d.ts.map +1 -0
- package/dist/playable-project-mode.js +2 -0
- package/dist/playable-project-mode.js.map +1 -0
- package/dist/playable-runtime-babylon.d.ts +3 -6
- package/dist/playable-runtime-babylon.d.ts.map +1 -1
- package/dist/playable-runtime-babylon.js +1 -5
- package/dist/playable-runtime-babylon.js.map +1 -1
- package/dist/playable-sdk.d.ts +16 -9
- package/dist/playable-sdk.d.ts.map +1 -1
- package/dist/playable-sdk.js +6 -4
- package/dist/playable-sdk.js.map +1 -1
- package/dist/playable-standard-project.d.ts +23 -14
- package/dist/playable-standard-project.d.ts.map +1 -1
- package/dist/playable-standard-project.js +57 -20
- package/dist/playable-standard-project.js.map +1 -1
- package/dist/vite-client.d.ts +4 -0
- package/node_modules/@babel/helper-string-parser/lib/index.js +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/identifier.js +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/index.js +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/keyword.js +0 -1
- package/node_modules/@babel/parser/lib/index.js +0 -1
- package/node_modules/@babel/types/lib/asserts/assertNode.js +0 -1
- package/node_modules/@babel/types/lib/asserts/generated/index.js +0 -1
- package/node_modules/@babel/types/lib/ast-types/generated/index.js +0 -1
- package/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js +0 -1
- package/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js +0 -1
- package/node_modules/@babel/types/lib/builders/generated/index.js +0 -1
- package/node_modules/@babel/types/lib/builders/generated/lowercase.js +0 -1
- package/node_modules/@babel/types/lib/builders/generated/uppercase.js +0 -1
- package/node_modules/@babel/types/lib/builders/productions.js +0 -1
- package/node_modules/@babel/types/lib/builders/react/buildChildren.js +0 -1
- package/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js +0 -1
- package/node_modules/@babel/types/lib/builders/validateNode.js +0 -1
- package/node_modules/@babel/types/lib/clone/clone.js +0 -1
- package/node_modules/@babel/types/lib/clone/cloneDeep.js +0 -1
- package/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js +0 -1
- package/node_modules/@babel/types/lib/clone/cloneNode.js +0 -1
- package/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js +0 -1
- package/node_modules/@babel/types/lib/comments/addComment.js +0 -1
- package/node_modules/@babel/types/lib/comments/addComments.js +0 -1
- package/node_modules/@babel/types/lib/comments/inheritInnerComments.js +0 -1
- package/node_modules/@babel/types/lib/comments/inheritLeadingComments.js +0 -1
- package/node_modules/@babel/types/lib/comments/inheritTrailingComments.js +0 -1
- package/node_modules/@babel/types/lib/comments/inheritsComments.js +0 -1
- package/node_modules/@babel/types/lib/comments/removeComments.js +0 -1
- package/node_modules/@babel/types/lib/constants/generated/index.js +0 -1
- package/node_modules/@babel/types/lib/constants/index.js +0 -1
- package/node_modules/@babel/types/lib/converters/ensureBlock.js +0 -1
- package/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js +0 -1
- package/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js +0 -1
- package/node_modules/@babel/types/lib/converters/toBlock.js +0 -1
- package/node_modules/@babel/types/lib/converters/toComputedKey.js +0 -1
- package/node_modules/@babel/types/lib/converters/toExpression.js +0 -1
- package/node_modules/@babel/types/lib/converters/toIdentifier.js +0 -1
- package/node_modules/@babel/types/lib/converters/toKeyAlias.js +0 -1
- package/node_modules/@babel/types/lib/converters/toSequenceExpression.js +0 -1
- package/node_modules/@babel/types/lib/converters/toStatement.js +0 -1
- package/node_modules/@babel/types/lib/converters/valueToNode.js +0 -1
- package/node_modules/@babel/types/lib/definitions/core.js +0 -1
- package/node_modules/@babel/types/lib/definitions/deprecated-aliases.js +0 -1
- package/node_modules/@babel/types/lib/definitions/experimental.js +0 -1
- package/node_modules/@babel/types/lib/definitions/flow.js +0 -1
- package/node_modules/@babel/types/lib/definitions/index.js +0 -1
- package/node_modules/@babel/types/lib/definitions/jsx.js +0 -1
- package/node_modules/@babel/types/lib/definitions/misc.js +0 -1
- package/node_modules/@babel/types/lib/definitions/placeholders.js +0 -1
- package/node_modules/@babel/types/lib/definitions/typescript.js +0 -1
- package/node_modules/@babel/types/lib/definitions/utils.js +0 -1
- package/node_modules/@babel/types/lib/index.js +0 -1
- package/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js +0 -1
- package/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js +0 -1
- package/node_modules/@babel/types/lib/modifications/inherits.js +0 -1
- package/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js +0 -1
- package/node_modules/@babel/types/lib/modifications/removeProperties.js +0 -1
- package/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js +0 -1
- package/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js +0 -1
- package/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js +0 -1
- package/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js +0 -1
- package/node_modules/@babel/types/lib/retrievers/getFunctionName.js +0 -1
- package/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js +0 -1
- package/node_modules/@babel/types/lib/traverse/traverse.js +0 -1
- package/node_modules/@babel/types/lib/traverse/traverseFast.js +0 -1
- package/node_modules/@babel/types/lib/utils/deprecationWarning.js +0 -1
- package/node_modules/@babel/types/lib/utils/inherit.js +0 -1
- package/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js +0 -1
- package/node_modules/@babel/types/lib/utils/shallowEqual.js +0 -1
- package/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js +0 -1
- package/node_modules/@babel/types/lib/validators/generated/index.js +0 -1
- package/node_modules/@babel/types/lib/validators/is.js +0 -1
- package/node_modules/@babel/types/lib/validators/isBinding.js +0 -1
- package/node_modules/@babel/types/lib/validators/isBlockScoped.js +0 -1
- package/node_modules/@babel/types/lib/validators/isImmutable.js +0 -1
- package/node_modules/@babel/types/lib/validators/isLet.js +0 -1
- package/node_modules/@babel/types/lib/validators/isNode.js +0 -1
- package/node_modules/@babel/types/lib/validators/isNodesEquivalent.js +0 -1
- package/node_modules/@babel/types/lib/validators/isPlaceholderType.js +0 -1
- package/node_modules/@babel/types/lib/validators/isReferenced.js +0 -1
- package/node_modules/@babel/types/lib/validators/isScope.js +0 -1
- package/node_modules/@babel/types/lib/validators/isSpecifierDefault.js +0 -1
- package/node_modules/@babel/types/lib/validators/isType.js +0 -1
- package/node_modules/@babel/types/lib/validators/isValidES3Identifier.js +0 -1
- package/node_modules/@babel/types/lib/validators/isValidIdentifier.js +0 -1
- package/node_modules/@babel/types/lib/validators/isVar.js +0 -1
- package/node_modules/@babel/types/lib/validators/matchesPattern.js +0 -1
- package/node_modules/@babel/types/lib/validators/react/isCompatTag.js +0 -1
- package/node_modules/@babel/types/lib/validators/react/isReactComponent.js +0 -1
- package/node_modules/@babel/types/lib/validators/validate.js +0 -1
- package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.d.ts +69 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.js +132 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.metadata.d.ts +8 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhFileLoader.metadata.js +7 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhLoader.d.ts +14 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhLoader.js +328 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhLoadingOptions.d.ts +9 -0
- package/node_modules/@babylonjs/loaders/BVH/bvhLoadingOptions.js +1 -0
- package/node_modules/@babylonjs/loaders/BVH/index.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/BVH/index.js +3 -0
- package/node_modules/@babylonjs/loaders/OBJ/index.d.ts +4 -0
- package/node_modules/@babylonjs/loaders/OBJ/index.js +4 -0
- package/node_modules/@babylonjs/loaders/OBJ/mtlFileLoader.d.ts +41 -0
- package/node_modules/@babylonjs/loaders/OBJ/mtlFileLoader.js +230 -0
- package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.d.ts +136 -0
- package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.js +317 -0
- package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.metadata.d.ts +4 -0
- package/node_modules/@babylonjs/loaders/OBJ/objFileLoader.metadata.js +4 -0
- package/node_modules/@babylonjs/loaders/OBJ/objLoadingOptions.d.ts +47 -0
- package/node_modules/@babylonjs/loaders/OBJ/objLoadingOptions.js +1 -0
- package/node_modules/@babylonjs/loaders/OBJ/solidParser.d.ts +175 -0
- package/node_modules/@babylonjs/loaders/OBJ/solidParser.js +903 -0
- package/node_modules/@babylonjs/loaders/SPLAT/index.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/SPLAT/index.js +3 -0
- package/node_modules/@babylonjs/loaders/SPLAT/sog.d.ts +84 -0
- package/node_modules/@babylonjs/loaders/SPLAT/sog.js +294 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatDefs.d.ts +26 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatDefs.js +10 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.d.ts +100 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.js +536 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.metadata.d.ts +20 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatFileLoader.metadata.js +15 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatLoadingOptions.d.ts +33 -0
- package/node_modules/@babylonjs/loaders/SPLAT/splatLoadingOptions.js +1 -0
- package/node_modules/@babylonjs/loaders/SPLAT/spz.d.ts +11 -0
- package/node_modules/@babylonjs/loaders/SPLAT/spz.js +168 -0
- package/node_modules/@babylonjs/loaders/STL/index.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/STL/index.js +1 -0
- package/node_modules/@babylonjs/loaders/STL/stlFileLoader.d.ts +78 -0
- package/node_modules/@babylonjs/loaders/STL/stlFileLoader.js +238 -0
- package/node_modules/@babylonjs/loaders/STL/stlFileLoader.metadata.d.ts +8 -0
- package/node_modules/@babylonjs/loaders/STL/stlFileLoader.metadata.js +7 -0
- package/node_modules/@babylonjs/loaders/bvh/license.md +21 -0
- package/node_modules/@babylonjs/loaders/dynamic.d.ts +5 -0
- package/node_modules/@babylonjs/loaders/dynamic.js +56 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFBinaryExtension.d.ts +16 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFBinaryExtension.js +64 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoader.d.ts +144 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoader.js +1841 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderInterfaces.d.ts +412 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderInterfaces.js +95 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderUtils.d.ts +71 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFLoaderUtils.js +254 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFMaterialsCommonExtension.d.ts +13 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/glTFMaterialsCommonExtension.js +130 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/index.d.ts +5 -0
- package/node_modules/@babylonjs/loaders/glTF/1.0/index.js +5 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_area.d.ts +41 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_area.js +93 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_ies.d.ts +41 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_ies.js +83 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_image_based.d.ts +48 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_lights_image_based.js +115 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.d.ts +39 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js +94 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_meshopt_compression.d.ts +39 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_meshopt_compression.js +50 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_avif.d.ts +34 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_avif.js +38 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_webp.d.ts +33 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/EXT_texture_webp.js +37 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/ExtrasAsMetadata.d.ts +53 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/ExtrasAsMetadata.js +73 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.d.ts +47 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.data.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.data.js +251 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_animation_pointer.js +77 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.d.ts +47 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression.js +92 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.d.ts +355 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/declarationMapper.js +1678 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.d.ts +33 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/flowGraphGLTFDataProvider.js +19 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/index.d.ts +3 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/index.js +3 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.d.ts +70 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity/interactivityGraphParser.js +438 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity.d.ts +38 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_interactivity.js +150 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_lights_punctual.d.ts +41 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_lights_punctual.js +91 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_anisotropy.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_anisotropy.js +65 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat.js +79 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_coat.d.ts +49 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_coat.js +119 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_roughness.js +58 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_diffuse_transmission.js +69 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_dispersion.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_dispersion.js +56 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_emissive_strength.js +47 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_fuzz.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_fuzz.js +77 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior.d.ts +46 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior.js +54 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_iridescence.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_iridescence.js +68 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness.js +80 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen.js +73 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular.js +76 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission.js +303 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit.js +66 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants.d.ts +112 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants.js +262 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume.js +82 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume_scatter.d.ts +45 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_volume_scatter.js +109 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_mesh_quantization.d.ts +29 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_mesh_quantization.js +22 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_hoverability.d.ts +31 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_hoverability.js +189 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_selectability.d.ts +30 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_selectability.js +123 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_visibility.d.ts +30 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_node_visibility.js +66 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu.d.ts +33 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu.js +37 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform.d.ts +37 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform.js +58 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_xmp_json_ld.d.ts +39 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/KHR_xmp_json_ld.js +47 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_audio_emitter.d.ts +56 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_audio_emitter.js +228 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_lod.d.ts +104 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_lod.js +337 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_minecraftMesh.d.ts +27 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_minecraftMesh.js +39 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_sRGBFactors.d.ts +27 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/MSFT_sRGBFactors.js +38 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/dynamic.d.ts +4 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/dynamic.js +212 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/gltfPathToObjectConverter.d.ts +45 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/gltfPathToObjectConverter.js +100 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/index.d.ts +43 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/index.js +44 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/objectModelMapping.d.ts +306 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/Extensions/objectModelMapping.js +884 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoader.d.ts +450 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoader.js +2485 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderAnimation.d.ts +42 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderAnimation.js +79 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtension.d.ts +165 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtension.js +1 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtensionRegistry.d.ts +25 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderExtensionRegistry.js +32 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderInterfaces.d.ts +262 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/glTFLoaderInterfaces.js +1 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/index.d.ts +8 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/index.js +9 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/materialLoadingAdapter.d.ts +364 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/materialLoadingAdapter.js +1 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/openpbrMaterialLoadingAdapter.d.ts +674 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/openpbrMaterialLoadingAdapter.js +1034 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/pbrMaterialLoadingAdapter.d.ts +705 -0
- package/node_modules/@babylonjs/loaders/glTF/2.0/pbrMaterialLoadingAdapter.js +1126 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.d.ts +553 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.js +998 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.metadata.d.ts +15 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFFileLoader.metadata.js +17 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFValidation.d.ts +35 -0
- package/node_modules/@babylonjs/loaders/glTF/glTFValidation.js +131 -0
- package/node_modules/@babylonjs/loaders/glTF/index.d.ts +5 -0
- package/node_modules/@babylonjs/loaders/glTF/index.js +6 -0
- package/node_modules/@babylonjs/loaders/index.d.ts +6 -0
- package/node_modules/@babylonjs/loaders/index.js +7 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-bvhFileLoader.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-bvhFileLoader.js +15 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-dynamic.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-dynamic.js +13 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF.js +18 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1.js +15 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1FileLoader.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF1FileLoader.js +3 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2.js +34 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2FileLoader.d.ts +2 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTF2FileLoader.js +3 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTFFileLoader.d.ts +3 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-glTFFileLoader.js +4 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-objFileLoader.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-objFileLoader.js +15 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-stlFileLoader.d.ts +1 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy-stlFileLoader.js +15 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy.d.ts +8 -0
- package/node_modules/@babylonjs/loaders/legacy/legacy.js +10 -0
- package/node_modules/@babylonjs/loaders/license.md +71 -0
- package/node_modules/@babylonjs/loaders/package.json +49 -0
- package/node_modules/@babylonjs/loaders/readme.md +23 -0
- package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts +22 -0
- package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js +187 -0
- package/node_modules/@fps-games/babylon-renderer/dist/game-world-plugin-lifecycle.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts +3 -0
- package/node_modules/@fps-games/babylon-renderer/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/index.js +3 -0
- package/node_modules/@fps-games/babylon-renderer/dist/index.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.d.ts +19 -0
- package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.js +212 -0
- package/node_modules/@fps-games/babylon-renderer/dist/material-owner-candidates.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts +17 -2
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/plugin.js +192 -17
- 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.d.ts +2 -0
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js +139 -3
- 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/types.d.ts +4 -0
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/types.d.ts.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/shadows/dynamic-shadow-system.d.ts +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/dynamic-shadow-system.js +1 -0
- 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/shadow-generator-shaders.d.ts +14 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.js +14 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-generator-shaders.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.d.ts +59 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.js +725 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-depth-backend.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.d.ts +136 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.d.ts.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.js +2735 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/shadow-map-experiment-system.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/package.json +7 -7
- package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/camera-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.d.ts +2 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.js +2 -1
- package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.d.ts +2 -0
- package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/main-camera-preview.js +59 -6
- 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 +24 -0
- package/node_modules/@fps-games/editor-babylon/dist/marker-overlay.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js +81 -11
- package/node_modules/@fps-games/editor-babylon/dist/material-slot-source-resolver.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection-asset-container-importer.js +2 -8
- 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.d.ts +26 -5
- package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.js +396 -363
- package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts +4 -0
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js +76 -10
- 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-spatial-overlay-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-spatial-overlay-controller.js +85 -22
- 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-identity-pass.d.ts +46 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.js +304 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-identity-pass.js.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts +87 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js +1746 -0
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts +11 -3
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js +105 -15
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js +249 -15
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/types.d.ts +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/types.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.d.ts +25 -0
- package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.js +44 -0
- package/node_modules/@fps-games/editor-babylon/dist/viewport-ground-projection.js.map +1 -0
- package/node_modules/@fps-games/editor-babylon/package.json +6 -5
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts +13 -11
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/index.js +9 -9
- package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.d.ts +35 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.js +136 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-browser-continuity.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.d.ts +46 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.js +283 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-asset-filesystem.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.d.ts +2 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.js +36 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-clipboard.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.d.ts +2 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-inspector-groups.js +17 -0
- 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-preview-cleanup-registry.d.ts +12 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.js +67 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-preview-cleanup-registry.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.d.ts +6 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.js +9 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-open.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.d.ts +7 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.js +20 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-file-preview.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.d.ts +9 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.js +219 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-project-media-thumbnail-cache.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.d.ts +14 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.js +42 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-tool-presentation.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.d.ts +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-asset-kind.js +8 -0
- 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-console.d.ts +27 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.js +288 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-console.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js +157 -77
- 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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-dock-panel.js +27 -21
- 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-formal-surface-visibility.d.ts +19 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js +44 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +36 -6
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +829 -866
- 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.d.ts +8 -7
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-drag-policy.js +1 -7
- 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-view-adapter.d.ts +7 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.js +20 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view-adapter.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts +6 -7
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js +266 -114
- 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.d.ts +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-icons.js +34 -0
- 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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js +3 -17
- 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.d.ts +14 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-modal-dialog.js +44 -62
- 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-panels.d.ts +30 -8
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +911 -698
- 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-prefab-stage.d.ts +10 -37
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js +29 -105
- 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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js +29 -110
- 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.d.ts +1 -3
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js +6 -90
- 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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js +9 -54
- 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-status-diagnostics.d.ts +16 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js +44 -39
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-diagnostics.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.d.ts +4 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.js +44 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-status-format.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-structured-drag-policy.js +35 -44
- 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-theme.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-theme.js +40 -24
- 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.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-tooltip.js +2 -20
- 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.d.ts +114 -343
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.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.d.ts +13 -14
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js +120 -134
- 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.d.ts +6 -10
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +2019 -861
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.d.ts +13 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.js +15 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-viewport-orientation.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.d.ts +2 -3
- package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js +0 -180
- package/node_modules/@fps-games/editor-browser/dist/plugin-contributions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug.d.ts +5 -0
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug.js +5 -0
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/package.json +15 -4
- package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.d.ts +22 -0
- package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.js +226 -0
- package/node_modules/@fps-games/editor-core/dist/editor-diagnostic-store.js.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts +6 -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 +94 -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 +24 -2
- 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 +70 -10
- package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts +113 -0
- package/node_modules/@fps-games/editor-core/dist/editor-tools.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-tools.js +615 -0
- package/node_modules/@fps-games/editor-core/dist/editor-tools.js.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/inspector.d.ts +46 -0
- package/node_modules/@fps-games/editor-core/dist/inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/inspector.js +62 -0
- package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts +1 -0
- package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts.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/viewport-tools.d.ts +11 -2
- package/node_modules/@fps-games/editor-core/dist/viewport-tools.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/viewport-tools.js +12 -1
- package/node_modules/@fps-games/editor-core/dist/viewport-tools.js.map +1 -1
- package/node_modules/@fps-games/editor-core/package.json +14 -6
- package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js +14 -3
- 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.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js +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 +14 -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 +49 -1
- 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-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 +63 -2
- 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.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-library/document.js +48 -6
- 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 +1 -1
- 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 +1 -1
- 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/authoring-server/handler.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/handler.js +15 -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/routes.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/routes.js +3 -0
- 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.d.ts +6 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/authoring-server/types.d.ts.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/document/helpers.d.ts +28 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js +314 -6
- 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.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/index.js +2 -0
- 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/prefab-instance-identity.d.ts +11 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.js +27 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-instance-identity.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.d.ts +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.js +285 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/prefab-marker.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts +7 -3
- 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/index.d.ts +4 -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 +7 -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/document-sections.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js +23 -81
- 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/local-harness/editor-entry-manifest.d.ts +41 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.js +93 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-manifest.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.d.ts +29 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.js +77 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-module.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.d.ts +51 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.js +105 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry-performance.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.d.ts +60 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.js +287 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/editor-entry.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts +6 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts.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 +1 -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 +53 -17
- 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.d.ts +16 -8
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js +10 -6
- 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 +5 -3
- 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 +2 -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 +134 -66
- 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/project-asset-commands.d.ts +11 -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 +21 -14
- 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/types.d.ts +17 -9
- 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/mutation/field-patch.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js +20 -0
- 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/reducer.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js +49 -10
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/package-resolution/aliases.d.ts +2 -2
- 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 -0
- 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/prefab-stage/action-patches.d.ts +7 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/action-patches.js +130 -20
- 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.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/assets.js +12 -3
- 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/derived-markers.d.ts +11 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.js +136 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/derived-markers.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/index.js +1 -0
- 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/projection.d.ts +36 -51
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/projection.js +40 -65
- 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/stage-inspector.d.ts +5 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.js +207 -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/product/index.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.js +3 -0
- 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 +18 -7
- 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 +110 -18
- 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-source.d.ts +9 -0
- 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 +16 -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-scene-assembly.d.ts +5 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-scene-assembly.js +22 -2
- 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/project-files/index.d.ts +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.js +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/index.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.d.ts +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.js +86 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/protocol.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.d.ts +9 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.js +76 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/support.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.d.ts +34 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.js +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/project-files/types.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js +144 -0
- 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/types.d.ts +16 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/types.d.ts.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/nodes.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js +1 -0
- 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.d.ts +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/types.d.ts.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 +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +241 -13
- 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.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js +1 -0
- 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/shadow-map-experiment-migration.d.ts +31 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.js +170 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/shadow-map-experiment-migration.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts +153 -13
- 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 +17 -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 +1295 -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/client.d.ts +4 -0
- 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 +54 -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/driver.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/driver.js +57 -34
- 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/protocol.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/protocol.js +4 -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 +4 -0
- 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/serialized-property/inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js +20 -198
- 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/session/hierarchy-facade.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/hierarchy-facade.js +5 -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/patches.d.ts +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/patches.js +144 -8
- 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/reducer-core.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/reducer-core.js +30 -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/types.d.ts +6 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/session/types.d.ts.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/upgrade-doctor/inspectors.js +31 -3
- 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/vite/editor-scene-workflow.d.ts +5 -2
- 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 +40 -4
- 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.d.ts +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js +1 -0
- 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/plugin.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +116 -3
- 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 +2 -1
- 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 +1 -0
- 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 +17 -1
- 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 +50 -2
- 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 +1 -0
- 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 +101 -5
- 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-scene-authoring.d.ts +5 -6
- 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 +31 -17
- 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/project-file-handle.d.ts +14 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.js +101 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-file-handle.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.d.ts +23 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.js +180 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-files.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +6 -0
- 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 +6 -6
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts +417 -2
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js +692 -2
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts +23 -3
- package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.d.ts +55 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.js +2 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-diagnostics.js.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +3 -18
- package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/index.js +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/package.json +2 -2
- package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js +5 -0
- package/node_modules/@fps-games/editor-tooling/dist/package-metadata-node.js.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/vite.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-tooling/dist/vite.js +151 -5
- 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/editor-ui/dist/editor-ui-controls.d.ts +107 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.js +770 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-controls.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.d.ts +21 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.js +172 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-layer-host.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.d.ts +14 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.js +32 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-shell.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.d.ts +3 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js +746 -0
- package/node_modules/@fps-games/editor-ui/dist/editor-ui-theme.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/gallery.d.ts +3 -0
- package/node_modules/@fps-games/editor-ui/dist/gallery.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/gallery.js +3 -0
- package/node_modules/@fps-games/editor-ui/dist/gallery.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/index.d.ts +5 -0
- package/node_modules/@fps-games/editor-ui/dist/index.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/index.js +5 -0
- package/node_modules/@fps-games/editor-ui/dist/index.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.d.ts +7 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.js +29 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-model.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.d.ts +2 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.js +95 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery-styles.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.d.ts +28 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.js +387 -0
- package/node_modules/@fps-games/editor-ui/dist/inspector-property-gallery.js.map +1 -0
- package/node_modules/@fps-games/editor-ui/package.json +23 -0
- package/node_modules/@fps-games/playable-assets/package.json +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/index.d.ts +1 -0
- package/node_modules/@fps-games/playable-contracts/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/index.js +1 -0
- package/node_modules/@fps-games/playable-contracts/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-contracts/dist/material-owner.d.ts +116 -0
- package/node_modules/@fps-games/playable-contracts/dist/material-owner.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-contracts/dist/material-owner.js +403 -0
- package/node_modules/@fps-games/playable-contracts/dist/material-owner.js.map +1 -0
- package/node_modules/@fps-games/playable-contracts/package.json +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/index.d.ts +3 -0
- package/node_modules/@fps-games/playable-rendering/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/index.js +3 -0
- package/node_modules/@fps-games/playable-rendering/dist/index.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js +5 -25
- package/node_modules/@fps-games/playable-rendering/dist/rendering-profile-validation.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/runtime.d.ts +3 -0
- package/node_modules/@fps-games/playable-rendering/dist/runtime.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/runtime.js +3 -0
- package/node_modules/@fps-games/playable-rendering/dist/runtime.js.map +1 -1
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.d.ts +61 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.js +176 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-depth.js.map +1 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.d.ts +84 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.js +362 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment-lifecycle.js.map +1 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.d.ts +167 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.d.ts.map +1 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.js +484 -0
- package/node_modules/@fps-games/playable-rendering/dist/shadow-map-experiment.js.map +1 -0
- package/node_modules/@fps-games/playable-rendering/package.json +2 -2
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.d.ts +5 -0
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.d.ts.map +1 -1
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js +1 -0
- package/node_modules/@fps-games/playable-runtime/dist/compiled-scene-data.js.map +1 -1
- package/node_modules/@fps-games/playable-runtime/package.json +12 -12
- package/node_modules/@fps-games/playable-runtime-data/package.json +4 -4
- package/node_modules/@fps-games/playable-scene/package.json +2 -2
- package/node_modules/@fps-games/plugin-api/package.json +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-hierarchy/dist/editor.d.ts +6 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/editor.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/editor.js +16 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/editor.js.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/integration.d.ts +7 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/integration.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/integration.js +47 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/integration.js.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts +306 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js +1237 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/reference.d.ts +8 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/reference.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/reference.js +32 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/reference.js.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts +2 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.js +2 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.js.map +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/package.json +57 -0
- package/node_modules/@fps-games/plugin-host/package.json +2 -2
- 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/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/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/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-shadow-map-experiment/dist/reference.d.ts +8 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.js +35 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/reference.js.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.d.ts +11 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.js +14 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/runtime.js.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts +2 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.d.ts.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js +2 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js.map +1 -0
- package/node_modules/@fps-games/plugin-shadow-map-experiment/package.json +53 -0
- 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/node_modules/@playcanvas/observer/LICENSE +19 -0
- package/node_modules/@playcanvas/observer/README.md +72 -0
- package/node_modules/@playcanvas/observer/dist/index.cjs +2033 -0
- package/node_modules/@playcanvas/observer/dist/index.js +2039 -0
- package/node_modules/@playcanvas/observer/dist/index.mjs +2026 -0
- package/node_modules/@playcanvas/observer/package.json +78 -0
- package/node_modules/@playcanvas/observer/types/event-handle.d.ts +41 -0
- package/node_modules/@playcanvas/observer/types/events.d.ts +162 -0
- package/node_modules/@playcanvas/observer/types/history.d.ts +123 -0
- package/node_modules/@playcanvas/observer/types/index.d.ts +15 -0
- package/node_modules/@playcanvas/observer/types/observer-history.d.ts +32 -0
- package/node_modules/@playcanvas/observer/types/observer-list.d.ts +39 -0
- package/node_modules/@playcanvas/observer/types/observer.d.ts +157 -0
- package/node_modules/@playcanvas/observer/types/utils.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/LICENSE +19 -0
- package/node_modules/@playcanvas/pcui/README.md +164 -0
- package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/constants.mjs +6 -0
- package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-evaluator.mjs +119 -0
- package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-set.mjs +82 -0
- package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve.mjs +92 -0
- package/node_modules/@playcanvas/pcui/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/math.mjs +105 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/Math/color-value.mjs +77 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingBase/index.mjs +215 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingElementToObservers/index.mjs +297 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingObserversToElement/index.mjs +110 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/binding/BindingTwoWay/index.mjs +113 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/class.mjs +19 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/ArrayInput/index.mjs +498 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/BooleanInput/index.mjs +122 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Button/index.mjs +119 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Canvas/index.mjs +104 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Code/index.mjs +43 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/ColorPicker/index.mjs +619 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Container/index.mjs +642 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Divider/index.mjs +20 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Element/index.mjs +829 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/GradientPicker/index.mjs +1136 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/GridView/index.mjs +448 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/GridViewItem/index.mjs +152 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/InfoBox/index.mjs +90 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/InputElement/index.mjs +186 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Label/index.mjs +124 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/LabelGroup/index.mjs +74 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Menu/index.mjs +174 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/MenuItem/index.mjs +223 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/NumericInput/index.mjs +400 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Overlay/index.mjs +108 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Panel/index.mjs +400 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Progress/index.mjs +45 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/RadioButton/index.mjs +113 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/SelectInput/index.mjs +1085 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/SliderInput/index.mjs +333 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/Spinner/index.mjs +34 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/TextAreaInput/index.mjs +50 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/TextInput/index.mjs +98 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/TreeView/index.mjs +1131 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/TreeViewItem/index.mjs +500 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/components/VectorInput/index.mjs +366 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/helpers/search.mjs +194 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/helpers/utils.mjs +43 -0
- package/node_modules/@playcanvas/pcui/dist/module/src/index.mjs +56 -0
- package/node_modules/@playcanvas/pcui/dist/pcui-theme-green.scss +2798 -0
- package/node_modules/@playcanvas/pcui/dist/pcui-theme-grey.scss +2798 -0
- package/node_modules/@playcanvas/pcui/package.json +150 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/constants.mjs +6 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-evaluator.mjs +119 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve-set.mjs +82 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/curve.mjs +92 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/node_modules/playcanvas/build/playcanvas/src/core/math/math.mjs +105 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/Math/color-value.mjs +77 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingBase/index.mjs +215 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingElementToObservers/index.mjs +297 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingObserversToElement/index.mjs +110 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/binding/BindingTwoWay/index.mjs +113 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/class.mjs +19 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ArrayInput/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ArrayInput/index.mjs +498 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/BooleanInput/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/BooleanInput/index.mjs +122 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Button/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Button/index.mjs +119 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Canvas/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Canvas/index.mjs +104 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Code/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Code/index.mjs +43 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ColorPicker/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/ColorPicker/index.mjs +619 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Container/component.mjs +36 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Container/index.mjs +642 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Divider/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Divider/index.mjs +20 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Element/component.mjs +107 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Element/index.mjs +829 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GradientPicker/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GradientPicker/index.mjs +1136 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridView/component.mjs +38 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridView/index.mjs +448 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridViewItem/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/GridViewItem/index.mjs +152 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InfoBox/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InfoBox/index.mjs +90 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/InputElement/index.mjs +186 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Label/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Label/index.mjs +124 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/LabelGroup/component.mjs +42 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/LabelGroup/index.mjs +74 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Menu/component.mjs +23 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Menu/index.mjs +174 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/MenuItem/index.mjs +223 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/NumericInput/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/NumericInput/index.mjs +400 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Overlay/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Overlay/index.mjs +108 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Panel/component.mjs +32 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Panel/index.mjs +400 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Progress/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Progress/index.mjs +45 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/RadioButton/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/RadioButton/index.mjs +113 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SelectInput/component.mjs +21 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SelectInput/index.mjs +1085 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SliderInput/component.mjs +12 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/SliderInput/index.mjs +333 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Spinner/component.mjs +16 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/Spinner/index.mjs +34 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextAreaInput/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextAreaInput/index.mjs +50 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextInput/component.mjs +23 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TextInput/index.mjs +98 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeView/component.mjs +52 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeView/index.mjs +1131 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeViewItem/component.mjs +33 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/TreeViewItem/index.mjs +500 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/VectorInput/component.mjs +11 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/components/VectorInput/index.mjs +366 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/helpers/search.mjs +194 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/helpers/utils.mjs +43 -0
- package/node_modules/@playcanvas/pcui/react/dist/module/src/index.mjs +39 -0
- package/node_modules/@playcanvas/pcui/react/package.json +18 -0
- package/node_modules/@playcanvas/pcui/react/types/Math/color-value.d.ts +3 -0
- package/node_modules/@playcanvas/pcui/react/types/binding/BindingBase/index.d.ts +178 -0
- package/node_modules/@playcanvas/pcui/react/types/binding/BindingElementToObservers/index.d.ts +24 -0
- package/node_modules/@playcanvas/pcui/react/types/binding/BindingObserversToElement/index.d.ts +40 -0
- package/node_modules/@playcanvas/pcui/react/types/binding/BindingTwoWay/index.d.ts +54 -0
- package/node_modules/@playcanvas/pcui/react/types/binding/index.d.ts +5 -0
- package/node_modules/@playcanvas/pcui/react/types/class.d.ts +17 -0
- package/node_modules/@playcanvas/pcui/react/types/components/ArrayInput/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/ArrayInput/index.d.ts +140 -0
- package/node_modules/@playcanvas/pcui/react/types/components/BooleanInput/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/BooleanInput/index.d.ts +41 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Button/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Button/index.d.ts +75 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Canvas/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Canvas/index.d.ts +61 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Code/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Code/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/react/types/components/ColorPicker/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/ColorPicker/index.d.ts +99 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Container/component.d.ts +15 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Container/index.d.ts +292 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Divider/component.d.ts +10 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Divider/index.d.ts +13 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Element/component.d.ts +23 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Element/index.d.ts +671 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GradientPicker/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GradientPicker/index.d.ts +152 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GridView/component.d.ts +14 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GridView/index.d.ts +103 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GridViewItem/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/GridViewItem/index.d.ts +82 -0
- package/node_modules/@playcanvas/pcui/react/types/components/InfoBox/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/InfoBox/index.d.ts +71 -0
- package/node_modules/@playcanvas/pcui/react/types/components/InputElement/index.d.ts +84 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Label/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Label/index.d.ts +85 -0
- package/node_modules/@playcanvas/pcui/react/types/components/LabelGroup/component.d.ts +10 -0
- package/node_modules/@playcanvas/pcui/react/types/components/LabelGroup/index.d.ts +62 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Menu/component.d.ts +14 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Menu/index.d.ts +70 -0
- package/node_modules/@playcanvas/pcui/react/types/components/MenuItem/index.d.ts +139 -0
- package/node_modules/@playcanvas/pcui/react/types/components/NumericInput/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/NumericInput/index.d.ts +173 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Overlay/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Overlay/index.d.ts +53 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Panel/component.d.ts +16 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Panel/index.d.ts +178 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Progress/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Progress/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/react/types/components/RadioButton/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/RadioButton/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/react/types/components/SelectInput/component.d.ts +12 -0
- package/node_modules/@playcanvas/pcui/react/types/components/SelectInput/index.d.ts +278 -0
- package/node_modules/@playcanvas/pcui/react/types/components/SliderInput/component.d.ts +10 -0
- package/node_modules/@playcanvas/pcui/react/types/components/SliderInput/index.d.ts +133 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Spinner/component.d.ts +11 -0
- package/node_modules/@playcanvas/pcui/react/types/components/Spinner/index.d.ts +27 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TextAreaInput/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TextAreaInput/index.d.ts +24 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TextInput/component.d.ts +12 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TextInput/index.d.ts +40 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TreeView/component.d.ts +17 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TreeView/index.d.ts +359 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TreeViewItem/component.d.ts +13 -0
- package/node_modules/@playcanvas/pcui/react/types/components/TreeViewItem/index.d.ts +224 -0
- package/node_modules/@playcanvas/pcui/react/types/components/VectorInput/component.d.ts +9 -0
- package/node_modules/@playcanvas/pcui/react/types/components/VectorInput/index.d.ts +176 -0
- package/node_modules/@playcanvas/pcui/react/types/components/components.d.ts +30 -0
- package/node_modules/@playcanvas/pcui/react/types/components/index.d.ts +32 -0
- package/node_modules/@playcanvas/pcui/react/types/helpers/search.d.ts +31 -0
- package/node_modules/@playcanvas/pcui/react/types/helpers/utils.d.ts +2 -0
- package/node_modules/@playcanvas/pcui/react/types/index.d.ts +4 -0
- package/node_modules/@playcanvas/pcui/styles/dist/index.mjs +11 -0
- package/node_modules/@playcanvas/pcui/styles/package.json +17 -0
- package/node_modules/@playcanvas/pcui/types/Math/color-value.d.ts +3 -0
- package/node_modules/@playcanvas/pcui/types/binding/BindingBase/index.d.ts +178 -0
- package/node_modules/@playcanvas/pcui/types/binding/BindingElementToObservers/index.d.ts +24 -0
- package/node_modules/@playcanvas/pcui/types/binding/BindingObserversToElement/index.d.ts +40 -0
- package/node_modules/@playcanvas/pcui/types/binding/BindingTwoWay/index.d.ts +54 -0
- package/node_modules/@playcanvas/pcui/types/binding/index.d.ts +5 -0
- package/node_modules/@playcanvas/pcui/types/class.d.ts +17 -0
- package/node_modules/@playcanvas/pcui/types/components/ArrayInput/index.d.ts +140 -0
- package/node_modules/@playcanvas/pcui/types/components/BooleanInput/index.d.ts +41 -0
- package/node_modules/@playcanvas/pcui/types/components/Button/index.d.ts +75 -0
- package/node_modules/@playcanvas/pcui/types/components/Canvas/index.d.ts +61 -0
- package/node_modules/@playcanvas/pcui/types/components/Code/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/types/components/ColorPicker/index.d.ts +99 -0
- package/node_modules/@playcanvas/pcui/types/components/Container/index.d.ts +292 -0
- package/node_modules/@playcanvas/pcui/types/components/Divider/index.d.ts +13 -0
- package/node_modules/@playcanvas/pcui/types/components/Element/index.d.ts +671 -0
- package/node_modules/@playcanvas/pcui/types/components/GradientPicker/index.d.ts +152 -0
- package/node_modules/@playcanvas/pcui/types/components/GridView/index.d.ts +103 -0
- package/node_modules/@playcanvas/pcui/types/components/GridViewItem/index.d.ts +82 -0
- package/node_modules/@playcanvas/pcui/types/components/InfoBox/index.d.ts +71 -0
- package/node_modules/@playcanvas/pcui/types/components/InputElement/index.d.ts +84 -0
- package/node_modules/@playcanvas/pcui/types/components/Label/index.d.ts +85 -0
- package/node_modules/@playcanvas/pcui/types/components/LabelGroup/index.d.ts +62 -0
- package/node_modules/@playcanvas/pcui/types/components/Menu/index.d.ts +70 -0
- package/node_modules/@playcanvas/pcui/types/components/MenuItem/index.d.ts +139 -0
- package/node_modules/@playcanvas/pcui/types/components/NumericInput/index.d.ts +173 -0
- package/node_modules/@playcanvas/pcui/types/components/Overlay/index.d.ts +53 -0
- package/node_modules/@playcanvas/pcui/types/components/Panel/index.d.ts +178 -0
- package/node_modules/@playcanvas/pcui/types/components/Progress/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/types/components/RadioButton/index.d.ts +33 -0
- package/node_modules/@playcanvas/pcui/types/components/SelectInput/index.d.ts +278 -0
- package/node_modules/@playcanvas/pcui/types/components/SliderInput/index.d.ts +133 -0
- package/node_modules/@playcanvas/pcui/types/components/Spinner/index.d.ts +27 -0
- package/node_modules/@playcanvas/pcui/types/components/TextAreaInput/index.d.ts +24 -0
- package/node_modules/@playcanvas/pcui/types/components/TextInput/index.d.ts +40 -0
- package/node_modules/@playcanvas/pcui/types/components/TreeView/index.d.ts +359 -0
- package/node_modules/@playcanvas/pcui/types/components/TreeViewItem/index.d.ts +224 -0
- package/node_modules/@playcanvas/pcui/types/components/VectorInput/index.d.ts +176 -0
- package/node_modules/@playcanvas/pcui/types/components/index.d.ts +32 -0
- package/node_modules/@playcanvas/pcui/types/helpers/search.d.ts +31 -0
- package/node_modules/@playcanvas/pcui/types/helpers/utils.d.ts +2 -0
- package/node_modules/@playcanvas/pcui/types/index.d.ts +20 -0
- package/node_modules/babylonjs-gltf2interface/babylon.glTF2Interface.d.ts +1655 -0
- package/node_modules/babylonjs-gltf2interface/license.md +71 -0
- package/node_modules/babylonjs-gltf2interface/package.json +26 -0
- package/package.json +31 -19
- package/dist/editor-plugin-hierarchy-command.d.ts +0 -19
- package/dist/editor-plugin-hierarchy-command.d.ts.map +0 -1
- package/dist/editor-plugin-hierarchy-command.js +0 -119
- package/dist/editor-plugin-hierarchy-command.js.map +0 -1
- package/node_modules/@babel/helper-string-parser/lib/index.js.map +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/index.js.map +0 -1
- package/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map +0 -1
- package/node_modules/@babel/parser/lib/index.js.map +0 -1
- package/node_modules/@babel/types/lib/asserts/assertNode.js.map +0 -1
- package/node_modules/@babel/types/lib/asserts/generated/index.js.map +0 -1
- package/node_modules/@babel/types/lib/ast-types/generated/index.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/flow/createFlowUnionType.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/generated/index.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/generated/lowercase.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/generated/uppercase.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/productions.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/react/buildChildren.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/typescript/createTSUnionType.js.map +0 -1
- package/node_modules/@babel/types/lib/builders/validateNode.js.map +0 -1
- package/node_modules/@babel/types/lib/clone/clone.js.map +0 -1
- package/node_modules/@babel/types/lib/clone/cloneDeep.js.map +0 -1
- package/node_modules/@babel/types/lib/clone/cloneDeepWithoutLoc.js.map +0 -1
- package/node_modules/@babel/types/lib/clone/cloneNode.js.map +0 -1
- package/node_modules/@babel/types/lib/clone/cloneWithoutLoc.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/addComment.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/addComments.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/inheritInnerComments.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/inheritLeadingComments.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/inheritTrailingComments.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/inheritsComments.js.map +0 -1
- package/node_modules/@babel/types/lib/comments/removeComments.js.map +0 -1
- package/node_modules/@babel/types/lib/constants/generated/index.js.map +0 -1
- package/node_modules/@babel/types/lib/constants/index.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/ensureBlock.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toBindingIdentifierName.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toBlock.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toComputedKey.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toExpression.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toIdentifier.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toKeyAlias.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/toStatement.js.map +0 -1
- package/node_modules/@babel/types/lib/converters/valueToNode.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/core.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/deprecated-aliases.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/experimental.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/flow.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/index.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/jsx.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/misc.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/placeholders.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/typescript.js.map +0 -1
- package/node_modules/@babel/types/lib/definitions/utils.js.map +0 -1
- package/node_modules/@babel/types/lib/index.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/appendToMemberExpression.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/flow/removeTypeDuplicates.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/inherits.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/prependToMemberExpression.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/removeProperties.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/removePropertiesDeep.js.map +0 -1
- package/node_modules/@babel/types/lib/modifications/typescript/removeTypeDuplicates.js.map +0 -1
- package/node_modules/@babel/types/lib/retrievers/getAssignmentIdentifiers.js.map +0 -1
- package/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map +0 -1
- package/node_modules/@babel/types/lib/retrievers/getFunctionName.js.map +0 -1
- package/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js.map +0 -1
- package/node_modules/@babel/types/lib/traverse/traverse.js.map +0 -1
- package/node_modules/@babel/types/lib/traverse/traverseFast.js.map +0 -1
- package/node_modules/@babel/types/lib/utils/deprecationWarning.js.map +0 -1
- package/node_modules/@babel/types/lib/utils/inherit.js.map +0 -1
- package/node_modules/@babel/types/lib/utils/react/cleanJSXElementLiteralChild.js.map +0 -1
- package/node_modules/@babel/types/lib/utils/shallowEqual.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/buildMatchMemberExpression.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/generated/index.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/is.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isBinding.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isBlockScoped.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isImmutable.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isLet.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isNode.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isNodesEquivalent.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isPlaceholderType.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isReferenced.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isScope.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isSpecifierDefault.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isType.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isValidES3Identifier.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isValidIdentifier.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/isVar.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/matchesPattern.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/react/isCompatTag.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/react/isReactComponent.js.map +0 -1
- package/node_modules/@babel/types/lib/validators/validate.js.map +0 -1
- package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.d.ts +0 -37
- package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js +0 -451
- package/node_modules/@fps-games/editor-babylon/dist/prefab-comparison-preview-controller.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts +0 -49
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js +0 -627
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.d.ts +0 -52
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js +0 -450
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.d.ts +0 -21
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js +0 -75
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts +0 -7
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js +0 -186
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-projection.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts +0 -5
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js +0 -98
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts +0 -63
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js +0 -301
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shadows.js","sourceRoot":"","sources":["../../../src/agent-bridge/capabilities/shadows.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n collectEditorShadowReceiverCandidates,\n detectEditorSceneDirectionalLightOrientationDrift,\n findEditorSceneTransform,\n normalizeEditorSceneLightDirectionVector,\n resolveEditorSceneGameObjectShadowSettings,\n resolveEditorShadowPlan,\n type EditorShadowResolvePlanInput,\n type EditorSceneDocument,\n type EditorSceneGameObject,\n} from '@fps-games/editor-playable-sdk';\nimport {\n assertEditorShadowSettingsContract,\n mergeEditorShadowSettings,\n readEditorShadowSettings,\n resolveEditorShadowParams,\n type EditorShadowDiagnostic,\n type EditorShadowReceiverCandidate,\n type EditorShadowResolvedPlan,\n type EditorShadowSettings,\n} from '@fps-games/playable-rendering';\nimport {\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID,\n type EditorAgentBridgeBounds,\n type EditorAgentBridgeDiagnostic,\n type EditorAgentBridgeJsonObject,\n type EditorAgentBridgeShadowPolicyGetInput,\n type EditorAgentBridgeShadowPolicyGetOutput,\n type EditorAgentBridgeShadowPolicySetInput,\n type EditorAgentBridgeShadowPolicySetOutput,\n type EditorAgentBridgeShadowDebugContextClearOutput,\n type EditorAgentBridgeShadowDebugContextEnterInput,\n type EditorAgentBridgeShadowDebugContextEnterOutput,\n type EditorAgentBridgeShadowDebugInspectOutput,\n type EditorAgentBridgeShadowDebugOverlayClearOutput,\n type EditorAgentBridgeShadowDebugOverlaySetInput,\n type EditorAgentBridgeShadowDebugOverlaySetOutput,\n type EditorAgentBridgeShadowDebugVisibilityMeasureInput,\n type EditorAgentBridgeShadowDebugVisibilityMeasureOutput,\n type EditorAgentBridgeShadowRuntimeEvidence,\n type EditorAgentBridgeShadowReceiverCandidate,\n type EditorAgentBridgeShadowDebugTargetSummary,\n type EditorAgentBridgeShadowFootprintSummary,\n type EditorAgentBridgeShadowLightSummary,\n type EditorAgentBridgeShadowReceiversListInput,\n type EditorAgentBridgeShadowReceiversListOutput,\n type EditorAgentBridgeShadowResolvedPlan,\n type EditorAgentBridgeShadowResolvePreviewInput,\n type EditorAgentBridgeShadowResolvePreviewOutput,\n type EditorAgentBridgeShadowSettings,\n type EditorAgentBridgeShadowStaticBakeInput,\n type EditorAgentBridgeShadowStaticBakeOutput,\n type EditorAgentBridgeShadowStaticInvalidateInput,\n type EditorAgentBridgeShadowStaticInvalidateOutput,\n type EditorAgentBridgeShadowTarget,\n type EditorAgentBridgeVec3,\n} from '@fps-games/editor-protocol';\nimport {\n createLocalEditorAgentBridgeFailure,\n editorTransformSnapshotToAgentTransform,\n} from '../diagnostics.js';\nimport type { LocalEditorAgentBridgeShadowSource } from '../source-types.js';\nimport {\n getAgentBridgeSafeSceneSelection,\n isAgentBridgeSafeSceneObjectId,\n normalizeAgentBridgeIdList,\n normalizeAgentBridgeString,\n type LocalEditorAgentBridgeCapabilitySourceOperations,\n type LocalEditorAgentBridgeHarnessState,\n type LocalEditorAgentBridgePrefabStageDetails,\n type LocalEditorAgentBridgeShadowPreviewDebugInfo,\n type LocalEditorAgentBridgeShadowDebugOverlayItem,\n} from '../shared.js';\nimport type { LocalEditorHarnessOptions } from '../../local-editor-harness.js';\n\nconst PREFAB_STAGE_ITEM_PREFIX = 'prefab-node:';\nconst SHADOW_POLICY_FIELDS = [\n 'shadow.cast',\n 'shadow.receive',\n 'shadow.mode',\n 'shadow.quality',\n 'shadow.light.mode',\n 'shadow.light.lightId',\n 'shadow.params.opacity',\n 'shadow.params.softness',\n 'shadow.params.bias',\n 'shadow.params.normalBias',\n 'shadow.params.maxDistance',\n 'shadow.params.resolution',\n 'shadow.params.cascadeCount',\n 'shadow.params.bakeSamples',\n 'shadow.params.blurKernel',\n] as const;\n\ntype ShadowPolicyFieldPath = typeof SHADOW_POLICY_FIELDS[number];\n\ninterface PrefabShadowNode {\n id: string;\n label: string;\n kind: string;\n parentId: string | null;\n defaults?: Record<string, unknown>;\n primitive?: Record<string, unknown>;\n light?: Record<string, unknown>;\n}\n\ntype ResolvedShadowTarget<TDocument> =\n | {\n kind: 'scene';\n target: EditorAgentBridgeShadowTarget;\n document: EditorSceneDocument;\n rawDocument: TDocument;\n objectId: string;\n gameObject: EditorSceneGameObject;\n }\n | {\n kind: 'prefab-stage';\n target: EditorAgentBridgeShadowTarget;\n details: LocalEditorAgentBridgePrefabStageDetails<TDocument>;\n nodeId: string;\n node: PrefabShadowNode;\n document: EditorSceneDocument;\n };\n\ntype StrictEditorShadowResolvePlanInput = EditorShadowResolvePlanInput & {\n strictExplicitReceivers?: boolean;\n};\n\ntype AgentBridgeResolvedBounds = Required<Pick<EditorAgentBridgeBounds, 'min' | 'max' | 'size' | 'center'>>;\n\ninterface ShadowProjectionContext {\n resolveProjectionId(targetId: string): string;\n}\n\nexport function createLocalEditorAgentBridgeShadowSource<TDocument, TPatch, TAsset>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): LocalEditorAgentBridgeShadowSource {\n return {\n getPolicy(input) {\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_GET,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n return createShadowPolicyGetOutput(resolved.target);\n },\n setPolicy(input) {\n const policy = normalizeShadowPolicy(input.policy);\n if (!policy.ok) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_SET,\n policy.message,\n { code: 'shadow.invalidInput', details: { hasPolicy: input.policy != null } },\n );\n }\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_SET,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n if (resolved.target.kind === 'scene') {\n return setSceneShadowPolicy(state, options, renderUi, operations, resolved.target, policy.settings);\n }\n return setPrefabStageShadowPolicy(renderUi, operations, resolved.target, policy.settings);\n },\n listReceivers(input) {\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_RECEIVERS_LIST,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n const casterId = getResolvedTargetCasterId(resolved.target);\n const projectionContext = createShadowProjectionContext(resolved.target, operations);\n return {\n receivers: mapShadowReceivers(\n collectEditorShadowReceiverCandidates({\n document: resolved.target.document,\n casterId,\n }),\n state,\n { casterId, projectionContext },\n ).filter(receiver => input.includeAuto === true || receiver.source !== 'auto'),\n diagnostics: createShadowTargetDiagnostics(resolved.target),\n } satisfies EditorAgentBridgeShadowReceiversListOutput;\n },\n resolvePreview(input) {\n const policy = input.policy === undefined ? { ok: true as const, settings: undefined } : normalizeShadowPolicy(input.policy);\n if (!policy.ok) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_RESOLVE_PREVIEW,\n policy.message,\n { code: 'shadow.invalidInput', details: { hasPolicy: input.policy != null } },\n );\n }\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_RESOLVE_PREVIEW,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n const receiverIds = normalizeAgentBridgeIdList(input.receiverIds ?? []);\n const casterId = getResolvedTargetCasterId(resolved.target);\n const planInput: StrictEditorShadowResolvePlanInput = {\n document: resolved.target.document,\n casterId,\n explicitReceiverIds: receiverIds.length > 0 ? receiverIds : undefined,\n strictExplicitReceivers: receiverIds.length > 0,\n ...(policy.settings !== undefined ? { settings: { instance: policy.settings } } : {}),\n };\n const plan = mapShadowPlan(resolveEditorShadowPlan(planInput));\n const allReceivers = mapShadowReceivers(\n collectEditorShadowReceiverCandidates({\n document: resolved.target.document,\n casterId,\n explicitReceiverIds: receiverIds.length > 0 ? receiverIds : undefined,\n }),\n state,\n {\n casterId,\n lightId: plan.lightId,\n projectionContext: createShadowProjectionContext(resolved.target, operations),\n },\n );\n const receiverIdSet = new Set(plan.receiverIds);\n const receivers = receiverIds.length > 0\n ? allReceivers.filter(receiver => receiverIdSet.has(receiver.receiverId))\n : allReceivers;\n const light = createShadowLightSummary(resolved.target.document, plan.lightId);\n return {\n target: resolved.target.target,\n plan,\n caster: createShadowDebugTargetSummary(resolved.target, state, createShadowProjectionContext(resolved.target, operations)),\n ...(light ? { light } : {}),\n footprint: createShadowFootprintSummary(\n plan,\n receivers,\n state,\n createShadowProjectionContext(resolved.target, operations),\n light,\n ),\n receivers,\n diagnostics: createShadowTargetDiagnostics(resolved.target),\n } satisfies EditorAgentBridgeShadowResolvePreviewOutput;\n },\n inspectDebug(input) {\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_INSPECT,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n return createShadowDebugInspectOutput(resolved.target, state, {\n projectionContext: createShadowProjectionContext(resolved.target, operations),\n }, {\n shadowPreviewDebugInfo: operations.getShadowPreviewDebugInfo?.() ?? null,\n });\n },\n enterDebugContext(input) {\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_CONTEXT_ENTER,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n return enterShadowDebugContext(state, renderUi, operations, resolved.target, input);\n },\n clearDebugContext() {\n return clearShadowDebugContext(state, renderUi, operations);\n },\n setDebugOverlay(input) {\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_OVERLAY_SET,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n const inspect = createShadowDebugInspectOutput(resolved.target, state, {\n receiverIds: input.receiverIds ?? [],\n projectionContext: createShadowProjectionContext(resolved.target, operations),\n });\n const overlayItems = createShadowDebugOverlayItems(inspect, input);\n const overlayIds = operations.setShadowDebugOverlay?.(overlayItems)\n ?? state.projection?.setShadowDebugOverlay?.(overlayItems)\n ?? overlayItems.map(item => item.id);\n operations.requestSceneFrame('agent-shadow-debug-overlay-set');\n renderUi();\n const diagnostics = [\n ...(inspect.diagnostics ?? []),\n ...(!overlayItems.length ? [{\n severity: 'warning' as const,\n source: 'editor' as const,\n code: 'shadow.debugOverlayEmpty',\n message: 'No shadow debug overlay items could be created for the resolved target.',\n }] : []),\n ];\n return {\n enabled: overlayItems.length > 0,\n target: inspect.target,\n overlayIds,\n ...(diagnostics.length ? { diagnostics } : {}),\n } satisfies EditorAgentBridgeShadowDebugOverlaySetOutput;\n },\n clearDebugOverlay() {\n const cleared = operations.clearShadowDebugOverlay?.()\n ?? state.projection?.clearShadowDebugOverlay?.()\n ?? false;\n operations.requestSceneFrame('agent-shadow-debug-overlay-clear');\n renderUi();\n return {\n cleared,\n } satisfies EditorAgentBridgeShadowDebugOverlayClearOutput;\n },\n measureVisibility(input) {\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_VISIBILITY_MEASURE,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n const inspect = createShadowDebugInspectOutput(resolved.target, state, {\n receiverIds: input.receiverIds ?? [],\n projectionContext: createShadowProjectionContext(resolved.target, operations),\n });\n return createShadowDebugVisibilityMeasureOutput(inspect, input);\n },\n async bakeStatic(input) {\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_STATIC_BAKE,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n const receiverIds = normalizeAgentBridgeIdList(input.receiverIds ?? []);\n const casterId = getResolvedTargetCasterId(resolved.target);\n const quality = input.quality && input.quality !== 'inherit' ? input.quality : undefined;\n const effectivePolicy = getResolvedTargetShadowPolicy(resolved.target);\n const bakePolicy = mergeEditorShadowSettings(\n effectivePolicy,\n {\n mode: 'static',\n ...(quality ? { quality } : {}),\n },\n );\n const planInput: StrictEditorShadowResolvePlanInput = {\n document: resolved.target.document,\n casterId,\n explicitReceiverIds: receiverIds.length > 0 ? receiverIds : undefined,\n strictExplicitReceivers: receiverIds.length > 0,\n settings: { instance: bakePolicy },\n };\n const plan = mapShadowPlan(resolveEditorShadowPlan(planInput));\n const targetDiagnostics = createShadowTargetDiagnostics(resolved.target);\n if (resolved.target.kind !== 'scene') {\n return {\n target: resolved.target.target,\n baked: false,\n plan,\n stale: true,\n diagnostics: [\n ...targetDiagnostics,\n {\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticBakeSceneOnly',\n message: 'Static shadow baking runs against the main scene. Prefab stage policies are baked after prefab instances are placed in a scene.',\n },\n ],\n } satisfies EditorAgentBridgeShadowStaticBakeOutput;\n }\n if (!operations.runRenderingAction) {\n return {\n target: resolved.target.target,\n baked: false,\n plan,\n stale: true,\n diagnostics: [\n ...targetDiagnostics,\n {\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticBakeUnavailable',\n message: 'Static shadow bake is unavailable because this editor session does not expose the rendering action pipeline.',\n },\n ],\n } satisfies EditorAgentBridgeShadowStaticBakeOutput;\n }\n const actionResult = await operations.runRenderingAction('bake-static-shadows');\n const bakedSourceNodeIds = readRenderingActionStaticBakeSourceNodeIds(actionResult);\n const targetConfirmed = bakedSourceNodeIds?.includes(casterId) === true;\n const baked = actionResult.ok === true && actionResult.changed === true && targetConfirmed;\n const bakeDiagnostic = createStaticBakeDiagnostic(actionResult, targetConfirmed, bakedSourceNodeIds);\n return {\n target: resolved.target.target,\n baked,\n plan,\n stale: !baked,\n diagnostics: [\n ...targetDiagnostics,\n bakeDiagnostic,\n ],\n } satisfies EditorAgentBridgeShadowStaticBakeOutput;\n },\n invalidateStatic(input) {\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_STATIC_INVALIDATE,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n const targetDiagnostics = createShadowTargetDiagnostics(resolved.target);\n if (resolved.target.kind !== 'scene') {\n return {\n target: resolved.target.target,\n invalidated: false,\n stale: true,\n diagnostics: [\n ...targetDiagnostics,\n {\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticInvalidateSceneOnly',\n message: 'Static shadow invalidation runs against scene instances. Prefab stage policies are invalidated after placement in a scene.',\n },\n ],\n } satisfies EditorAgentBridgeShadowStaticInvalidateOutput;\n }\n const plan = mapShadowPlan(resolveEditorShadowPlan({\n document: resolved.target.document,\n casterId: resolved.target.objectId,\n }));\n if (plan.backend !== 'static-baked') {\n return {\n target: resolved.target.target,\n invalidated: false,\n stale: false,\n diagnostics: [\n ...targetDiagnostics,\n {\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticInvalidateNonStaticTarget',\n message: 'Static shadow invalidation only applies to targets resolved to the static-baked backend.',\n details: { backend: plan.backend, mode: plan.mode },\n },\n ],\n } satisfies EditorAgentBridgeShadowStaticInvalidateOutput;\n }\n if (!operations.invalidateStaticShadowArtifact) {\n return {\n target: resolved.target.target,\n invalidated: false,\n stale: true,\n diagnostics: [\n ...targetDiagnostics,\n {\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticInvalidateUnavailable',\n message: 'Static shadow invalidation is unavailable because this editor session does not expose the shadow preview artifact lifecycle.',\n },\n ],\n } satisfies EditorAgentBridgeShadowStaticInvalidateOutput;\n }\n const invalidated = operations.invalidateStaticShadowArtifact();\n return {\n target: resolved.target.target,\n invalidated,\n stale: true,\n diagnostics: [\n ...targetDiagnostics,\n {\n severity: invalidated ? 'info' : 'warning',\n source: 'editor',\n code: invalidated ? 'shadow.staticInvalidated' : 'shadow.staticInvalidateNoArtifact',\n message: invalidated\n ? 'Static shadow preview artifact was invalidated; run shadow.static.bake to refresh scene artifacts.'\n : 'Static shadow target is static, but no active preview artifact was available to invalidate.',\n details: { backend: plan.backend, mode: plan.mode },\n },\n ],\n } satisfies EditorAgentBridgeShadowStaticInvalidateOutput;\n },\n };\n}\n\nfunction createShadowPolicyGetOutput<TDocument>(\n resolved: ResolvedShadowTarget<TDocument>,\n): EditorAgentBridgeShadowPolicyGetOutput {\n if (resolved.kind === 'scene') {\n const effective = resolveEditorSceneGameObjectShadowSettings(resolved.document, resolved.gameObject);\n return {\n target: resolved.target,\n ...(resolved.gameObject.shadow ? { policy: structuredClone(resolved.gameObject.shadow) as EditorAgentBridgeShadowSettings } : {}),\n effectivePolicy: (effective.settings ? structuredClone(effective.settings) : {}) as EditorAgentBridgeShadowSettings,\n plan: mapShadowPlan(resolveEditorShadowPlan({\n document: resolved.document,\n casterId: resolved.objectId,\n })),\n diagnostics: [\n ...mapShadowDiagnostics(effective.diagnostics),\n ...createShadowTargetDiagnostics(resolved),\n ],\n };\n }\n const policy = readPrefabNodeShadowPolicy(resolved.node);\n return {\n target: resolved.target,\n ...(policy ? { policy: structuredClone(policy) as EditorAgentBridgeShadowSettings } : {}),\n effectivePolicy: (policy ? structuredClone(policy) : {}) as EditorAgentBridgeShadowSettings,\n plan: mapShadowPlan(resolveEditorShadowPlan({\n document: resolved.document,\n casterId: resolved.nodeId,\n })),\n diagnostics: createShadowTargetDiagnostics(resolved),\n };\n}\n\nfunction createShadowDebugInspectOutput<TDocument, TPatch>(\n resolved: ResolvedShadowTarget<TDocument>,\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: { receiverIds?: readonly unknown[]; projectionContext?: ShadowProjectionContext } = {},\n extraOptions?: { shadowPreviewDebugInfo?: LocalEditorAgentBridgeShadowPreviewDebugInfo | null },\n): EditorAgentBridgeShadowDebugInspectOutput {\n const casterId = getResolvedTargetCasterId(resolved);\n const projectionContext = options.projectionContext ?? createIdentityShadowProjectionContext();\n const effectivePolicy = getResolvedTargetShadowPolicy(resolved);\n const receiverIds = normalizeAgentBridgeIdList(options.receiverIds ?? []);\n const planInput: StrictEditorShadowResolvePlanInput = {\n document: resolved.document,\n casterId,\n explicitReceiverIds: receiverIds.length > 0 ? receiverIds : undefined,\n strictExplicitReceivers: receiverIds.length > 0,\n };\n const plan = mapShadowPlan(resolveEditorShadowPlan(planInput));\n const allReceivers = mapShadowReceivers(\n collectEditorShadowReceiverCandidates({\n document: resolved.document,\n casterId,\n explicitReceiverIds: receiverIds.length > 0 ? receiverIds : undefined,\n }),\n state,\n { casterId, lightId: plan.lightId, projectionContext },\n );\n const resolvedReceiverIds = new Set(plan.receiverIds);\n const receivers = receiverIds.length > 0\n ? allReceivers.filter(receiver => resolvedReceiverIds.has(receiver.receiverId))\n : allReceivers;\n const authoredPolicy = getResolvedTargetAuthoredPolicy(resolved);\n const light = createShadowLightSummary(resolved.document, plan.lightId);\n const runtimeEvidence = createShadowDebugRuntimeEvidence(\n plan,\n receivers,\n extraOptions?.shadowPreviewDebugInfo,\n createShadowRuntimeEvidenceCasterIds(resolved, casterId, projectionContext),\n );\n const diagnostics = [\n ...createShadowTargetDiagnostics(resolved),\n ...plan.diagnostics,\n ...(runtimeEvidence.diagnostics ?? []),\n ];\n return {\n target: resolved.target,\n caster: createShadowDebugTargetSummary(resolved, state, projectionContext),\n ...(authoredPolicy ? { policy: structuredClone(authoredPolicy) as EditorAgentBridgeShadowSettings } : {}),\n effectivePolicy: (effectivePolicy ? structuredClone(effectivePolicy) : {}) as EditorAgentBridgeShadowSettings,\n plan,\n ...(light ? { light } : {}),\n receivers,\n footprint: createShadowFootprintSummary(plan, receivers, state, projectionContext, light),\n runtimeEvidence,\n ...(diagnostics.length ? { diagnostics } : {}),\n };\n}\n\nfunction enterShadowDebugContext<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n resolved: ResolvedShadowTarget<TDocument>,\n input: EditorAgentBridgeShadowDebugContextEnterInput,\n): EditorAgentBridgeShadowDebugContextEnterOutput | ReturnType<typeof createLocalEditorAgentBridgeFailure> {\n const projectionContext = createShadowProjectionContext(resolved, operations);\n const receiverIds = normalizeAgentBridgeIdList(input.receiverIds ?? []);\n const initialInspect = createShadowDebugInspectOutput(resolved, state, {\n receiverIds,\n projectionContext,\n }, {\n shadowPreviewDebugInfo: operations.getShadowPreviewDebugInfo?.() ?? null,\n });\n const targetId = getResolvedTargetCasterId(resolved);\n const logicalKeepIds = new Set<string>([targetId]);\n const protectedReceiverIds = initialInspect.plan.receiverIds.length > 0\n ? initialInspect.plan.receiverIds\n : initialInspect.receivers.map(receiver => receiver.receiverId);\n for (const receiverId of protectedReceiverIds) logicalKeepIds.add(receiverId);\n if (initialInspect.light?.lightId) logicalKeepIds.add(initialInspect.light.lightId);\n const ambientLightIds = input.includeAmbientLights === false\n ? []\n : collectShadowDebugAmbientLightIds(resolved.document, initialInspect.light?.lightId);\n for (const ambientId of ambientLightIds) logicalKeepIds.add(ambientId);\n\n const projectionKeepIds = new Set<string>();\n for (const id of logicalKeepIds) {\n const projectionId = projectionContext.resolveProjectionId(id);\n projectionKeepIds.add(projectionId);\n for (const parentId of state.projection?.getProjectionParentIds?.(projectionId) ?? []) {\n projectionKeepIds.add(parentId);\n }\n }\n const objectIds = state.projection?.getProjectedNodeIds?.() ?? [...projectionKeepIds];\n if (objectIds.length === 0) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_CONTEXT_ENTER,\n 'Viewport projection is unavailable or has no projected objects for Shadow Debug Context.',\n { code: 'viewport.projectionUnavailable' },\n );\n }\n const nextOverrides: Record<string, boolean> = {};\n for (const objectId of objectIds) nextOverrides[objectId] = projectionKeepIds.has(objectId);\n const previous = JSON.stringify(state.previewVisibility);\n state.previewVisibility.overrides = nextOverrides;\n state.previewVisibility.isolatedObjectIds = [...projectionKeepIds];\n state.previewVisibility.protectedReceiverIds = [...new Set(protectedReceiverIds.flatMap(id => [\n id,\n projectionContext.resolveProjectionId(id),\n ]))];\n state.previewVisibility.protectedObjectIds = [...new Set([...state.previewVisibility.protectedReceiverIds, ...ambientLightIds.flatMap(id => [\n id,\n projectionContext.resolveProjectionId(id),\n ])])];\n state.previewVisibility.reason = normalizeAgentBridgeString(input.reason)\n || `Shadow Debug Context for ${targetId}`;\n state.projection?.clearPreviewVisibilityOverrides?.();\n const entries = state.projection?.setPreviewVisibilityOverrides?.(nextOverrides) ?? [];\n const inspect = createShadowDebugInspectOutput(resolved, state, {\n receiverIds,\n projectionContext,\n }, {\n shadowPreviewDebugInfo: operations.getShadowPreviewDebugInfo?.() ?? null,\n });\n const overlayItems = input.showOverlay === false\n ? []\n : createShadowDebugOverlayItems(inspect, {\n ...input,\n showCasterBounds: true,\n showReceiverBounds: true,\n showLightDirection: true,\n showFootprint: true,\n showArtifactBounds: true,\n });\n const overlayIds = overlayItems.length > 0\n ? operations.setShadowDebugOverlay?.(overlayItems)\n ?? state.projection?.setShadowDebugOverlay?.(overlayItems)\n ?? overlayItems.map(item => item.id)\n : [];\n const visibilityMeasure = createShadowDebugVisibilityMeasureOutput(inspect, input);\n const hiddenObjectIds = objectIds.filter(objectId => !projectionKeepIds.has(objectId));\n const diagnostics: EditorAgentBridgeDiagnostic[] = [\n ...(inspect.diagnostics ?? []),\n ...(!protectedReceiverIds.length ? [{\n severity: 'warning' as const,\n source: 'editor' as const,\n code: 'shadow.debugContextNoReceiver',\n message: 'Shadow Debug Context could not resolve a receiver to protect; screenshots may still be ambiguous.',\n details: { targetId },\n }] : []),\n ...(!initialInspect.light?.lightId && initialInspect.plan.backend !== 'none' ? [{\n severity: 'warning' as const,\n source: 'editor' as const,\n code: 'shadow.debugContextNoLight',\n message: 'Shadow Debug Context could not resolve a shadow light to preserve.',\n details: { backend: initialInspect.plan.backend, targetId },\n }] : []),\n ...(!ambientLightIds.length && input.includeAmbientLights !== false ? [{\n severity: 'info' as const,\n source: 'editor' as const,\n code: 'shadow.debugContextNoAmbientLight',\n message: 'No ambient/environment light was found to preserve for visual debugging.',\n }] : []),\n ];\n operations.requestSceneFrame('agent-shadow-debug-context-enter');\n renderUi();\n return {\n entered: previous !== JSON.stringify(state.previewVisibility) || overlayIds.length > 0,\n target: inspect.target,\n keptObjectIds: [...logicalKeepIds],\n hiddenObjectIds,\n protectedReceiverIds,\n lightIds: initialInspect.light?.lightId ? [initialInspect.light.lightId] : [],\n ambientLightIds,\n overlayIds,\n snapshot: createShadowDebugContextVisibilitySnapshot(state, entries, diagnostics),\n inspect,\n visibilityMeasure,\n ...(diagnostics.length ? { diagnostics } : {}),\n };\n}\n\nfunction clearShadowDebugContext<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): EditorAgentBridgeShadowDebugContextClearOutput {\n const previousCount = Object.keys(state.previewVisibility.overrides).length;\n const hadIsolation = state.previewVisibility.isolatedObjectIds.length > 0;\n const hadProtection = (state.previewVisibility.protectedObjectIds?.length ?? 0) > 0\n || (state.previewVisibility.protectedReceiverIds?.length ?? 0) > 0;\n state.previewVisibility.overrides = {};\n state.previewVisibility.isolatedObjectIds = [];\n delete state.previewVisibility.protectedObjectIds;\n delete state.previewVisibility.protectedReceiverIds;\n delete state.previewVisibility.reason;\n state.projection?.clearPreviewVisibilityOverrides?.();\n const overlayCleared = operations.clearShadowDebugOverlay?.()\n ?? state.projection?.clearShadowDebugOverlay?.()\n ?? false;\n const visibilityCleared = previousCount > 0 || hadIsolation || hadProtection;\n operations.requestSceneFrame('agent-shadow-debug-context-clear');\n renderUi();\n return {\n cleared: visibilityCleared || overlayCleared,\n overlayCleared,\n visibilityCleared,\n };\n}\n\nfunction createShadowDebugContextVisibilitySnapshot<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n entries: readonly { nodeId: string; authoredActive: boolean; effectiveVisible: boolean }[],\n diagnostics: readonly EditorAgentBridgeDiagnostic[],\n): EditorAgentBridgeShadowDebugContextEnterOutput['snapshot'] {\n const entryById = new Map(entries.map(entry => [entry.nodeId, entry]));\n const objectIds = new Set<string>([\n ...Object.keys(state.previewVisibility.overrides),\n ...entries.map(entry => entry.nodeId),\n ...state.previewVisibility.isolatedObjectIds,\n ]);\n const isolatedIds = new Set(state.previewVisibility.isolatedObjectIds);\n return {\n isolated: isolatedIds.size > 0,\n isolatedObjectIds: [...isolatedIds],\n entries: [...objectIds].sort().map((objectId) => {\n const entry = entryById.get(objectId);\n const overrideVisible = state.previewVisibility.overrides[objectId];\n const authoredVisible = entry?.authoredActive ?? true;\n return {\n objectId,\n authoredVisible,\n previewVisible: entry?.effectiveVisible ?? (authoredVisible && overrideVisible !== false),\n ...(typeof overrideVisible === 'boolean' ? { overrideVisible } : {}),\n isolated: isolatedIds.has(objectId),\n ...(state.previewVisibility.protectedReceiverIds?.includes(objectId) ? {\n diagnostics: [{\n severity: 'info' as const,\n source: 'editor' as const,\n code: 'shadow.receiverProtectedInDebugContext',\n message: 'This receiver is protected by the active Shadow Debug Context and should remain visible for screenshot validation.',\n details: { objectId },\n }],\n } : {}),\n };\n }),\n ...(state.previewVisibility.reason ? { reason: state.previewVisibility.reason } : {}),\n ...(diagnostics.length ? { diagnostics: [...diagnostics] } : {}),\n };\n}\n\nfunction collectShadowDebugAmbientLightIds(document: EditorSceneDocument, shadowLightId?: string): string[] {\n const ids: string[] = [];\n const seen = new Set<string>();\n const gameObjects = Array.isArray(document.scene?.gameObjects) ? document.scene.gameObjects : [];\n for (const gameObject of gameObjects) {\n if (!isRecord(gameObject)) continue;\n const id = typeof gameObject.id === 'string' ? gameObject.id : '';\n if (!id || id === shadowLightId || seen.has(id)) continue;\n const name = typeof gameObject.name === 'string' ? gameObject.name : '';\n const light = isRecord(gameObject.light) ? gameObject.light : null;\n const lightType = typeof light?.type === 'string' ? light.type.toLowerCase() : '';\n const haystack = `${id} ${name}`.toLowerCase();\n const isAmbient = lightType === 'hemispheric'\n || lightType === 'ambient'\n || lightType === 'environment'\n || haystack.includes('environment_light')\n || haystack.includes('environment light')\n || haystack.includes('ambient');\n if (!isAmbient) continue;\n seen.add(id);\n ids.push(id);\n }\n return ids;\n}\n\nfunction createShadowDebugOverlayItems(\n inspect: EditorAgentBridgeShadowDebugInspectOutput,\n input: EditorAgentBridgeShadowDebugOverlaySetInput,\n): LocalEditorAgentBridgeShadowDebugOverlayItem[] {\n const items: LocalEditorAgentBridgeShadowDebugOverlayItem[] = [];\n const flags = readShadowDebugOverlayFlags(input);\n const receiverIds = new Set(normalizeAgentBridgeIdList(input.receiverIds ?? []));\n const targetId = inspect.caster?.objectId ?? inspect.caster?.nodeId ?? 'target';\n const casterBounds = createOverlayBounds(inspect.caster?.bounds);\n if (flags.showCasterBounds && casterBounds) {\n items.push({\n id: `shadow-debug:caster:${targetId}`,\n kind: 'caster-bounds',\n bounds: casterBounds,\n });\n }\n const receivers = receiverIds.size\n ? inspect.receivers.filter(receiver => receiverIds.has(receiver.receiverId))\n : inspect.receivers;\n if (flags.showReceiverBounds) {\n for (const receiver of receivers) {\n const bounds = createOverlayBounds(receiver.bounds);\n if (!bounds) continue;\n items.push({\n id: `shadow-debug:receiver:${receiver.receiverId}`,\n kind: 'receiver-bounds',\n bounds,\n });\n items.push({\n id: `shadow-debug:receiver-surface:${receiver.receiverId}`,\n kind: 'receiver-surface',\n bounds,\n });\n }\n }\n if (flags.showFootprint && inspect.footprint.center && inspect.footprint.size) {\n items.push({\n id: `shadow-debug:footprint:${inspect.footprint.receiverId ?? targetId}`,\n kind: 'footprint',\n center: { ...inspect.footprint.center },\n size: {\n x: Math.max(inspect.footprint.size.x, 0.01),\n y: Math.max(inspect.footprint.size.y, 0.015),\n z: Math.max(inspect.footprint.size.z, 0.01),\n },\n });\n }\n if (flags.showLightDirection) {\n const lightDirection = inspect.light?.direction ?? inspect.footprint.normal;\n const center = inspect.footprint.center ?? casterBounds?.center;\n const size = inspect.footprint.size ?? casterBounds?.size ?? { x: 2, y: 2, z: 2 };\n if (center && lightDirection) {\n items.push({\n id: `shadow-debug:light:${inspect.light?.lightId ?? targetId}`,\n kind: 'light-direction',\n center: { ...center },\n size: { ...size },\n direction: { ...lightDirection },\n });\n }\n }\n if (flags.showArtifactBounds && inspect.footprint.kind === 'artifact') {\n const artifactBounds = inspect.footprint.center && inspect.footprint.size\n ? createOverlayBoundsFromCenterSize(inspect.footprint.center, inspect.footprint.size)\n : undefined;\n if (artifactBounds) {\n items.push({\n id: `shadow-debug:artifact:${targetId}`,\n kind: 'artifact-bounds',\n bounds: artifactBounds,\n });\n }\n }\n return items;\n}\n\nfunction createShadowDebugVisibilityMeasureOutput(\n inspect: EditorAgentBridgeShadowDebugInspectOutput,\n input: EditorAgentBridgeShadowDebugVisibilityMeasureInput,\n): EditorAgentBridgeShadowDebugVisibilityMeasureOutput {\n const diagnostics: EditorAgentBridgeDiagnostic[] = [\n ...(inspect.diagnostics ?? []),\n {\n severity: 'info',\n source: 'editor',\n code: 'shadow.pixelReadbackUnavailable',\n message: 'Pixel readback is not available in this editor bridge session, so shadow visibility is measured structurally from policy, receivers, footprint, and runtime evidence.',\n },\n ];\n const requestedReceiverIds = normalizeAgentBridgeIdList(input.receiverIds ?? []);\n const renderableCount = inspect.runtimeEvidence.renderableShadowPrimitiveCount ?? 0;\n let visibleScore = 0;\n let coverage = 0;\n const opacity = clamp01(readNumber(inspect.plan.params.opacity, 0.42));\n const casterInactive = inspect.caster?.active === false || inspect.caster?.visible === false;\n const lightRequired = inspect.plan.backend === 'dynamic-map' || inspect.plan.backend === 'static-baked' || inspect.plan.backend === 'projected';\n const lightMissing = lightRequired && !inspect.light?.lightId;\n const missingCasterBounds = !inspect.caster?.bounds;\n const plannedReceivers = inspect.receivers.filter(receiver => inspect.plan.receiverIds.includes(receiver.receiverId));\n const visiblePlannedReceivers = plannedReceivers.filter(receiver => isShadowReceiverUsableForVisibility(receiver));\n const selectedReceiver = selectShadowFootprintReceiver(inspect.plan, plannedReceivers);\n const missingReceiverBounds = inspect.plan.receiverIds.length > 0\n && inspect.plan.receiverIds.some(receiverId => !plannedReceivers.some(receiver => receiver.receiverId === receiverId && !!receiver.bounds));\n const hiddenReceiverIds = plannedReceivers\n .filter(receiver => receiver.active === false || receiver.visible === false)\n .map(receiver => receiver.receiverId);\n const ignoredHiddenReceiverIds = hiddenReceiverIds.filter(receiverId => receiverId !== selectedReceiver?.receiverId);\n if (inspect.plan.backend === 'none' || inspect.plan.mode === 'none') {\n diagnostics.push({\n severity: 'info',\n source: 'editor',\n code: 'shadow.visibilityPolicyNone',\n message: 'Resolved Shadow V2 policy is none, so no visible shadow is expected.',\n details: { backend: inspect.plan.backend, mode: inspect.plan.mode },\n });\n } else if (opacity <= 0.001) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityOpacityZero',\n message: 'Resolved Shadow V2 opacity is zero, so no visible shadow is expected.',\n details: { opacity },\n });\n } else if (casterInactive) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityCasterInactive',\n message: 'The resolved caster is inactive or hidden, so no visible shadow is expected.',\n details: { active: inspect.caster?.active, visible: inspect.caster?.visible },\n });\n } else if (lightMissing) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityLightMissing',\n message: 'The resolved shadow backend requires a light, but no usable shadow light was resolved.',\n details: { backend: inspect.plan.backend, lightId: inspect.plan.lightId },\n });\n } else if (missingCasterBounds || missingReceiverBounds) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityBoundsUnavailable',\n message: 'Caster or receiver projection bounds are unavailable, so structural visibility cannot confirm a visible shadow.',\n details: { missingCasterBounds, missingReceiverBounds, receiverIds: inspect.plan.receiverIds },\n });\n } else if (visiblePlannedReceivers.length === 0 && hiddenReceiverIds.length > 0) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityReceiverInactive',\n message: 'One or more resolved receivers are inactive or hidden in the current preview, so structural visibility cannot confirm a visible shadow.',\n details: { receiverIds: hiddenReceiverIds },\n });\n } else if (inspect.receivers.length === 0 || inspect.plan.receiverIds.length === 0) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityNoReceiver',\n message: 'Resolved Shadow V2 plan has no receiver, so a visible shadow is unlikely.',\n details: { receiverIds: inspect.plan.receiverIds, requestedReceiverIds },\n });\n } else if (renderableCount <= 0) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityNoRuntimePrimitive',\n message: 'Resolved Shadow V2 plan has receivers but no renderable shadow primitive evidence.',\n details: { backend: inspect.plan.backend, renderableShadowPrimitiveCount: renderableCount },\n });\n } else {\n if (ignoredHiddenReceiverIds.length > 0) {\n diagnostics.push({\n severity: 'info',\n source: 'editor',\n code: 'shadow.visibilityIgnoredHiddenReceiver',\n message: 'Some resolved receivers are hidden in the current preview; structural visibility used the best visible receiver instead.',\n details: {\n receiverIds: ignoredHiddenReceiverIds,\n selectedReceiverId: selectedReceiver?.receiverId,\n },\n });\n }\n const footprintConfidence = clamp01(readNumber(inspect.footprint.confidence, 0.5));\n const receiverCoverage = clamp01((visiblePlannedReceivers.length > 0 ? visiblePlannedReceivers : plannedReceivers).reduce((max, receiver) => {\n const overlap = receiver.suitability?.overlap;\n return Math.max(max, typeof overlap === 'number' ? overlap : 0);\n }, 0));\n if (receiverCoverage <= 0.01) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityReceiverCoverageTooLow',\n message: 'Resolved receivers have no meaningful X/Z overlap with the caster, so structural visibility cannot confirm a visible shadow.',\n details: { coverage: receiverCoverage, receiverIds: inspect.plan.receiverIds },\n });\n } else {\n const backendFactor = inspect.plan.backend === 'dynamic-map'\n ? 0.9\n : inspect.plan.backend === 'static-baked'\n ? inspect.plan.stale === true ? 0.35 : 0.85\n : inspect.plan.backend === 'blob' || inspect.plan.backend === 'projected'\n ? 0.75\n : 0.5;\n coverage = clamp01(Math.max(receiverCoverage, footprintConfidence * 0.65));\n visibleScore = clamp01((0.2 + opacity * 0.35 + coverage * 0.3 + backendFactor * 0.15) * (renderableCount > 0 ? 1 : 0));\n if (inspect.plan.stale === true || inspect.runtimeEvidence.artifactStale === true) {\n visibleScore = Math.min(visibleScore, 0.35);\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityStaticStale',\n message: 'Static shadow evidence is stale; treat visibility as low confidence until rebaked.',\n });\n }\n }\n }\n return {\n target: inspect.target,\n visible: visibleScore >= 0.45,\n visibleScore,\n coverage,\n renderableShadowPrimitiveCount: renderableCount,\n measurementKind: 'structural',\n diagnostics,\n };\n}\n\nfunction isShadowReceiverUsableForVisibility(receiver: EditorAgentBridgeShadowReceiverCandidate): boolean {\n return receiver.active !== false && receiver.visible !== false && !!receiver.bounds;\n}\n\nfunction readNumber(value: unknown, fallback: number): number {\n return typeof value === 'number' && Number.isFinite(value) ? value : fallback;\n}\n\nfunction clamp01(value: number): number {\n return Math.max(0, Math.min(1, value));\n}\n\nfunction readShadowDebugOverlayFlags(input: EditorAgentBridgeShadowDebugOverlaySetInput): {\n showCasterBounds: boolean;\n showReceiverBounds: boolean;\n showLightDirection: boolean;\n showFootprint: boolean;\n showArtifactBounds: boolean;\n} {\n const explicit = input.showCasterBounds !== undefined\n || input.showReceiverBounds !== undefined\n || input.showLightDirection !== undefined\n || input.showFootprint !== undefined\n || input.showArtifactBounds !== undefined;\n return {\n showCasterBounds: explicit ? input.showCasterBounds === true : true,\n showReceiverBounds: explicit ? input.showReceiverBounds === true : true,\n showLightDirection: explicit ? input.showLightDirection === true : true,\n showFootprint: explicit ? input.showFootprint === true : true,\n showArtifactBounds: explicit ? input.showArtifactBounds === true : true,\n };\n}\n\nfunction createOverlayBounds(bounds: EditorAgentBridgeBounds | undefined): LocalEditorAgentBridgeShadowDebugOverlayItem['bounds'] | undefined {\n if (!bounds?.center || !bounds.size) return undefined;\n const min = bounds.min ?? {\n x: bounds.center.x - bounds.size.x / 2,\n y: bounds.center.y - bounds.size.y / 2,\n z: bounds.center.z - bounds.size.z / 2,\n };\n const max = bounds.max ?? {\n x: bounds.center.x + bounds.size.x / 2,\n y: bounds.center.y + bounds.size.y / 2,\n z: bounds.center.z + bounds.size.z / 2,\n };\n return {\n min: { ...min },\n max: { ...max },\n size: { ...bounds.size },\n center: { ...bounds.center },\n };\n}\n\nfunction createOverlayBoundsFromCenterSize(\n center: { x: number; y: number; z: number },\n size: { x: number; y: number; z: number },\n): LocalEditorAgentBridgeShadowDebugOverlayItem['bounds'] {\n return {\n center: { ...center },\n size: { ...size },\n min: {\n x: center.x - size.x / 2,\n y: center.y - size.y / 2,\n z: center.z - size.z / 2,\n },\n max: {\n x: center.x + size.x / 2,\n y: center.y + size.y / 2,\n z: center.z + size.z / 2,\n },\n };\n}\n\nfunction setSceneShadowPolicy<TDocument, TPatch, TAsset>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n resolved: Extract<ResolvedShadowTarget<TDocument>, { kind: 'scene' }>,\n policy: EditorShadowSettings | undefined,\n): EditorAgentBridgeShadowPolicySetOutput | ReturnType<typeof createLocalEditorAgentBridgeFailure> {\n if (!state.session) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_SET,\n 'Editor is not in edit mode.',\n { code: 'editor.notReady', objectId: resolved.objectId },\n );\n }\n let changed = false;\n let workingDocument = resolved.rawDocument;\n for (const { path, value } of createShadowPolicyFieldPatches(policy)) {\n const patch = options.documentAdapter.createSerializedPropertyPatch({\n document: workingDocument,\n targetId: resolved.objectId,\n path,\n value,\n commitMode: 'change',\n persistence: 'document',\n source: 'custom',\n });\n if (!patch) continue;\n const result = state.session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Agent set shadow ${path}`,\n patch: patch.patch,\n targetId: resolved.objectId,\n ...operations.withProjectionImpact(operations.resolveProjectionImpact(\n patch,\n operations.createReprojectProjectionImpact(patch.reprojectIds ?? [patch.changedId ?? resolved.objectId]),\n )),\n });\n workingDocument = result.workingDocument;\n if (result.documentChanged) changed = true;\n }\n if (!changed) {\n const output = createShadowPolicyGetOutput(resolved);\n return {\n target: output.target,\n changed: false,\n ...(output.policy ? { policy: output.policy } : {}),\n effectivePolicy: output.effectivePolicy,\n plan: output.plan,\n diagnostics: output.diagnostics,\n };\n }\n operations.reprojectProjectionForChangedIds(workingDocument, [resolved.objectId]);\n state.summary = operations.summarizeDocument(workingDocument, state.session.getSource());\n state.status = `Agent set shadow policy ${resolved.objectId}`;\n renderUi();\n const nextDocument = asEditorSceneDocument(workingDocument);\n const nextObject = nextDocument ? findShadowGameObject(nextDocument, resolved.objectId) : null;\n if (!nextDocument || !nextObject) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_SET,\n `Shadow target disappeared after patch: ${resolved.objectId}`,\n { code: 'shadow.targetMissing', objectId: resolved.objectId },\n );\n }\n const output = createShadowPolicyGetOutput({\n kind: 'scene',\n target: resolved.target,\n document: nextDocument,\n rawDocument: workingDocument,\n objectId: resolved.objectId,\n gameObject: nextObject,\n });\n return {\n target: output.target,\n changed: true,\n ...(output.policy ? { policy: output.policy } : {}),\n effectivePolicy: output.effectivePolicy,\n plan: output.plan,\n diagnostics: output.diagnostics,\n };\n}\n\nfunction setPrefabStageShadowPolicy<TDocument>(\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n resolved: Extract<ResolvedShadowTarget<TDocument>, { kind: 'prefab-stage' }>,\n policy: EditorShadowSettings | undefined,\n): EditorAgentBridgeShadowPolicySetOutput | ReturnType<typeof createLocalEditorAgentBridgeFailure> {\n const rootNodeId = findPrefabRootNodeId(resolved.details);\n const changed = resolved.nodeId === rootNodeId\n ? setPrefabRootShadowPolicy(operations, resolved.details, policy)\n : operations.runPrefabStageAssetAction({\n actionId: 'prefab.node.setShadow',\n targetPrefabAssetId: resolved.details.stage.assetId,\n nodeId: resolved.nodeId,\n value: policy ?? null,\n });\n if (!changed) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_SET,\n `Shadow policy action did not change prefab node: ${resolved.nodeId}`,\n { code: 'shadow.policyUnchanged', details: { assetId: resolved.details.stage.assetId, nodeId: resolved.nodeId } },\n );\n }\n renderUi();\n const nextDetails = operations.getPrefabStageDetails() ?? resolved.details;\n const nextResolved = resolvePrefabShadowTargetFromDetails(nextDetails, {\n nodeId: resolved.nodeId,\n assetId: resolved.details.stage.assetId,\n });\n const output = createShadowPolicyGetOutput(nextResolved ?? resolved);\n return {\n target: output.target,\n changed: true,\n ...(output.policy ? { policy: output.policy } : {}),\n effectivePolicy: output.effectivePolicy,\n plan: output.plan,\n diagnostics: output.diagnostics,\n };\n}\n\nfunction setPrefabRootShadowPolicy<TDocument>(\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n details: LocalEditorAgentBridgePrefabStageDetails<TDocument>,\n policy: EditorShadowSettings | undefined,\n): boolean {\n let changed = false;\n for (const { path, value } of createShadowPolicyFieldPatches(policy)) {\n const patched = operations.runPrefabStageAssetAction({\n actionId: 'asset.edit-prefab-field',\n assetId: details.stage.assetId,\n browserAssetId: details.stage.browserAssetId,\n assetKind: 'prefab',\n targetPrefabAssetId: details.stage.assetId,\n fieldPath: `prefab.defaults.${path}`,\n value,\n });\n if (patched) changed = true;\n }\n return changed;\n}\n\nfunction createShadowProjectionContext<TDocument>(\n resolved: ResolvedShadowTarget<TDocument>,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): ShadowProjectionContext {\n if (resolved.kind !== 'prefab-stage') return createIdentityShadowProjectionContext();\n return {\n resolveProjectionId: targetId => operations.resolvePrefabStageProjectionNodeId?.(targetId) ?? targetId,\n };\n}\n\nfunction createIdentityShadowProjectionContext(): ShadowProjectionContext {\n return {\n resolveProjectionId: targetId => targetId,\n };\n}\n\nfunction resolveShadowTarget<TDocument, TPatch>(\n capabilityId: string,\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n input: EditorAgentBridgeShadowTarget | EditorAgentBridgeShadowReceiversListInput,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): { ok: true; target: ResolvedShadowTarget<TDocument> } | { ok: false; result: ReturnType<typeof createLocalEditorAgentBridgeFailure> } {\n if (state.mode !== 'editor' || !state.session) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, 'Editor is not in edit mode.', { code: 'editor.notReady' }),\n };\n }\n const sessionState = state.session.getState({ cloneDocuments: false });\n const document = asEditorSceneDocument(sessionState.workingDocument);\n const objectId = normalizeAgentBridgeString(input.objectId);\n if (objectId) {\n if (!document) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, 'Shadow capabilities require an editor scene document.', {\n code: 'shadow.unsupportedDocument',\n details: { objectId },\n }),\n };\n }\n if (!isAgentBridgeSafeSceneObjectId(operations, objectId)) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, `Shadow target object is unavailable in the safe Scene Hierarchy projection: ${objectId}`, {\n code: 'shadow.targetNotFound',\n objectId,\n }),\n };\n }\n const gameObject = findShadowGameObject(document, objectId);\n if (!gameObject) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, `Shadow target object not found: ${objectId}`, {\n code: 'shadow.targetNotFound',\n objectId,\n }),\n };\n }\n return {\n ok: true,\n target: {\n kind: 'scene',\n target: { objectId },\n document,\n rawDocument: sessionState.workingDocument,\n objectId,\n gameObject,\n },\n };\n }\n const details = operations.getPrefabStageDetails();\n if (details) {\n const prefabTarget = resolvePrefabShadowTargetFromDetails(details, input);\n if (prefabTarget) return { ok: true, target: prefabTarget };\n }\n const activeId = normalizeAgentBridgeString(getAgentBridgeSafeSceneSelection(operations).activeId);\n if (activeId && document) {\n const gameObject = findShadowGameObject(document, activeId);\n if (gameObject) {\n return {\n ok: true,\n target: {\n kind: 'scene',\n target: { objectId: activeId },\n document,\n rawDocument: sessionState.workingDocument,\n objectId: activeId,\n gameObject,\n },\n };\n }\n }\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, 'Shadow target is required. Provide objectId, or open a Prefab stage and provide nodeId/assetId.', {\n code: 'shadow.targetRequired',\n details: { objectId: input.objectId, nodeId: input.nodeId, assetId: 'assetId' in input ? input.assetId : undefined },\n }),\n };\n}\n\nfunction resolvePrefabShadowTargetFromDetails<TDocument>(\n details: LocalEditorAgentBridgePrefabStageDetails<TDocument>,\n input: EditorAgentBridgeShadowTarget | EditorAgentBridgeShadowReceiversListInput,\n): Extract<ResolvedShadowTarget<TDocument>, { kind: 'prefab-stage' }> | null {\n const requestedAssetId = 'assetId' in input ? normalizeAgentBridgeString(input.assetId) : '';\n if (requestedAssetId && requestedAssetId !== details.stage.assetId && requestedAssetId !== details.stage.browserAssetId) return null;\n const nodes = listPrefabShadowNodes(details);\n const nodeId = normalizePrefabNodeId(input.nodeId)\n || getSelectedPrefabNodeId(details.stage.selectedItemId)\n || findPrefabRootNodeId(details);\n const node = nodes.find(candidate => candidate.id === nodeId) ?? null;\n if (!node) return null;\n const document = createPrefabStageShadowDocument(details, nodes);\n return {\n kind: 'prefab-stage',\n target: { assetId: details.stage.assetId, nodeId: node.id },\n details,\n nodeId: node.id,\n node,\n document,\n };\n}\n\nfunction createPrefabStageShadowDocument<TDocument>(\n details: LocalEditorAgentBridgePrefabStageDetails<TDocument>,\n nodes: readonly PrefabShadowNode[],\n): EditorSceneDocument {\n return {\n version: 1,\n schemaVersion: 1,\n assets: [],\n scene: {\n gameObjects: nodes.map((node) => ({\n id: node.id,\n name: node.label,\n parentId: node.parentId ?? undefined,\n active: readBoolean(node.defaults?.active, true),\n kind: node.kind === 'primitive' ? 'primitive' : 'transform',\n ...(node.defaults?.shadow ? { shadow: structuredClone(node.defaults.shadow) as EditorShadowSettings } : {}),\n ...(node.primitive ? { primitive: structuredClone(node.primitive) as any } : {}),\n ...(node.light ? { light: structuredClone(node.light) as any } : {}),\n components: [],\n })),\n },\n metadata: {\n prefabStageAssetId: details.stage.assetId,\n },\n } as unknown as EditorSceneDocument;\n}\n\nfunction listPrefabShadowNodes<TDocument>(\n details: LocalEditorAgentBridgePrefabStageDetails<TDocument>,\n): PrefabShadowNode[] {\n const nodes: PrefabShadowNode[] = [];\n const visit = (item: any, parentId: string | null) => {\n const nodeId = normalizePrefabNodeId(item?.nodeId ?? item?.id);\n const isNode = item?.itemType === 'prefab-node' || !!item?.nodeId || String(item?.id ?? '').startsWith(PREFAB_STAGE_ITEM_PREFIX);\n const currentParent = isNode && nodeId ? nodeId : parentId;\n if (isNode && nodeId) {\n nodes.push({\n id: nodeId,\n label: typeof item.label === 'string' ? item.label : nodeId,\n kind: typeof item.kind === 'string' ? item.kind : 'group',\n parentId,\n ...(isRecord(item.defaults) ? { defaults: structuredClone(item.defaults) } : {}),\n ...(isRecord(item.primitive) ? { primitive: structuredClone(item.primitive) } : {}),\n ...(isRecord(item.light) ? { light: structuredClone(item.light) } : {}),\n });\n }\n for (const child of Array.isArray(item?.children) ? item.children : []) visit(child, currentParent);\n };\n for (const item of details.structureItems) visit(item, null);\n return nodes;\n}\n\nfunction createShadowPolicyFieldPatches(policy: EditorShadowSettings | undefined): Array<{ path: ShadowPolicyFieldPath; value: unknown }> {\n const record = (policy ?? {}) as Record<string, any>;\n return SHADOW_POLICY_FIELDS.map(path => ({\n path,\n value: readShadowPolicyFieldValue(record, path) ?? null,\n }));\n}\n\nfunction readShadowPolicyFieldValue(policy: Record<string, any>, path: ShadowPolicyFieldPath): unknown {\n if (path === 'shadow.cast') return policy.cast;\n if (path === 'shadow.receive') return policy.receive;\n if (path === 'shadow.mode') return policy.mode;\n if (path === 'shadow.quality') return policy.quality;\n if (path === 'shadow.light.mode') return policy.light?.mode;\n if (path === 'shadow.light.lightId') return policy.light?.lightId;\n const param = path.slice('shadow.params.'.length) as keyof NonNullable<EditorShadowSettings['params']>;\n return policy.params?.[param];\n}\n\nfunction normalizeShadowPolicy(value: unknown): { ok: true; settings?: EditorShadowSettings } | { ok: false; message: string } {\n if (!isRecord(value)) return { ok: false, message: 'shadow policy must be an object.' };\n if (Object.keys(value).length === 0) return { ok: true, settings: undefined };\n try {\n assertEditorShadowSettingsContract(value, '$.policy');\n } catch (error) {\n return { ok: false, message: error instanceof Error ? error.message : String(error) };\n }\n const settings = readEditorShadowSettings(value);\n if (!settings) return { ok: false, message: 'shadow policy did not contain any valid Shadow V2 fields.' };\n return { ok: true, settings };\n}\n\nfunction readPrefabNodeShadowPolicy(node: PrefabShadowNode): EditorShadowSettings | undefined {\n return readEditorShadowSettings(node.defaults?.shadow);\n}\n\nfunction createRenderingActionDiagnosticDetails(\n result: {\n ok: boolean;\n changed: boolean;\n rendered: boolean;\n status?: string;\n statusTone?: string;\n statusDetails?: string;\n details?: Record<string, unknown>;\n error?: string;\n },\n): EditorAgentBridgeJsonObject {\n return {\n ok: result.ok,\n changed: result.changed,\n rendered: result.rendered,\n ...(result.status ? { status: result.status } : {}),\n ...(result.statusTone ? { statusTone: result.statusTone } : {}),\n ...(result.statusDetails ? { statusDetails: result.statusDetails } : {}),\n ...(isRecord(result.details) ? { actionDetails: result.details as EditorAgentBridgeJsonObject } : {}),\n ...(result.error ? { error: result.error } : {}),\n };\n}\n\nfunction createStaticBakeDiagnostic(\n result: {\n ok: boolean;\n changed: boolean;\n rendered: boolean;\n status?: string;\n statusTone?: string;\n statusDetails?: string;\n details?: Record<string, unknown>;\n error?: string;\n },\n targetConfirmed: boolean,\n sourceNodeIds: readonly string[] | null,\n): EditorAgentBridgeDiagnostic {\n if (result.ok === true && result.changed === true && targetConfirmed) {\n return {\n severity: 'info',\n source: 'editor',\n code: 'shadow.staticBakeCompleted',\n message: 'Static shadow bake rendering action completed and included the requested caster.',\n details: createRenderingActionDiagnosticDetails(result),\n };\n }\n if (result.ok === true && result.changed === true && sourceNodeIds !== null) {\n return {\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticBakeTargetNotFound',\n message: 'Static shadow bake produced an artifact, but the requested caster was not included in the baked source nodes.',\n details: createRenderingActionDiagnosticDetails(result),\n };\n }\n if (result.ok === true && result.changed === true) {\n return {\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticBakeTargetUnknown',\n message: 'Static shadow bake produced an artifact, but the rendering action did not report target source nodes.',\n details: createRenderingActionDiagnosticDetails(result),\n };\n }\n return {\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticBakeNoChange',\n message: result.ok === false\n ? 'Static shadow bake rendering action did not complete successfully.'\n : 'Static shadow bake rendering action completed without producing a changed artifact.',\n details: createRenderingActionDiagnosticDetails(result),\n };\n}\n\nfunction readRenderingActionStaticBakeSourceNodeIds(result: { details?: Record<string, unknown> }): string[] | null {\n if (!isRecord(result.details)) return null;\n const details = result.details;\n if (!Object.prototype.hasOwnProperty.call(details, 'sourceNodeIds')) return null;\n return normalizeAgentBridgeIdList(readRenderingActionStringList(details.sourceNodeIds));\n}\n\nfunction readRenderingActionStringList(value: unknown): string[] {\n return Array.isArray(value) ? value.filter((item): item is string => typeof item === 'string') : [];\n}\n\nfunction getResolvedTargetShadowPolicy<TDocument>(target: ResolvedShadowTarget<TDocument>): EditorShadowSettings | undefined {\n if (target.kind === 'scene') {\n return resolveEditorSceneGameObjectShadowSettings(target.document, target.gameObject).settings;\n }\n return readPrefabNodeShadowPolicy(target.node);\n}\n\nfunction getResolvedTargetAuthoredPolicy<TDocument>(target: ResolvedShadowTarget<TDocument>): EditorShadowSettings | undefined {\n return target.kind === 'scene'\n ? readEditorShadowSettings(target.gameObject.shadow)\n : readPrefabNodeShadowPolicy(target.node);\n}\n\nfunction createShadowDebugRuntimeEvidence(\n plan: EditorAgentBridgeShadowResolvedPlan,\n receivers: readonly EditorAgentBridgeShadowReceiverCandidate[],\n shadowPreviewDebugInfo: LocalEditorAgentBridgeShadowPreviewDebugInfo | null | undefined,\n casterIds: ReadonlySet<string>,\n): EditorAgentBridgeShadowRuntimeEvidence {\n const diagnostics: EditorAgentBridgeDiagnostic[] = [];\n if (plan.backend === 'none') {\n diagnostics.push({\n severity: 'info',\n source: 'editor',\n code: 'shadow.runtimeBackendNone',\n message: 'Resolved backend is none, so no runtime shadow primitive is expected.',\n });\n }\n if (plan.backend !== 'none' && receivers.length === 0) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.runtimeNoReceivers',\n message: 'Resolved shadow backend requires receivers, but no receiver candidates are available.',\n });\n }\n if (plan.backend === 'static-baked') {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticArtifactEvidenceUnavailable',\n message: 'Static-baked shadow visibility requires a baked artifact; this editor bridge session does not expose artifact presence evidence to shadow.debug.visibilityMeasure.',\n });\n }\n return {\n backend: plan.backend,\n renderableShadowPrimitiveCount: plan.backend === 'none' || plan.backend === 'static-baked'\n ? 0\n : receivers.filter(receiver => receiver.active !== false && receiver.visible !== false).length,\n casterRuntimeObjectCount: plan.backend === 'none' ? 0 : 1,\n receiverRuntimeObjectCount: receivers.length,\n ...createPlanarShadowRuntimeEvidence(shadowPreviewDebugInfo, casterIds),\n ...(plan.stale === true ? { artifactStale: true } : {}),\n ...(diagnostics.length ? { diagnostics } : {}),\n };\n}\n\nfunction createPlanarShadowRuntimeEvidence(\n shadowPreviewDebugInfo: LocalEditorAgentBridgeShadowPreviewDebugInfo | null | undefined,\n casterIds: ReadonlySet<string>,\n): { planar?: EditorAgentBridgeShadowRuntimeEvidence['planar'] } {\n const planar = shadowPreviewDebugInfo?.planar;\n if (!planar) return {};\n const matchingCasters = planar.casters.filter(caster => isPlanarShadowCasterEvidenceForTarget(\n collectPlanarShadowCasterSourceNodeIds(caster),\n casterIds,\n ));\n const casters = matchingCasters;\n if (casters.length === 0) return {};\n const fallbackReasons = uniqueStrings(casters.flatMap(caster => caster.fallbackReasons ?? []));\n const alphaCutoutChannels = uniqueStrings(casters.flatMap(caster => caster.alphaCutoutChannels ?? []))\n .filter((channel): channel is 'alpha' | 'luminance' | 'red' => channel === 'alpha' || channel === 'luminance' || channel === 'red');\n const alphaCutoutUvSets = uniqueNumbers(casters.flatMap(caster => caster.alphaCutoutUvSets ?? []));\n const alphaCutoutLevels = uniqueNumbers(casters.flatMap(caster => caster.alphaCutoutLevels ?? []));\n const instancedBatchIds = uniqueStrings(casters.flatMap(caster => caster.instancedBatchIds ?? []));\n const instancedBatchNames = uniqueStrings(casters.flatMap(caster => caster.instancedBatchNames ?? []));\n const batchMeshCount = instancedBatchIds.length > 0 ? instancedBatchIds.length : instancedBatchNames.length;\n const instancingFallbackReasons = uniqueStrings(casters.flatMap(caster => caster.instancingFallbackReasons ?? []));\n const independentProjectedMeshCount = casters.reduce(\n (sum, caster) => sum + (caster.independentProjectedMeshCount ?? caster.projectedMeshCount),\n 0,\n );\n const strategy = summarizePlanarShadowDebugStrategy(casters);\n return {\n planar: {\n ...(strategy ? { strategy } : {}),\n sourceMeshCount: casters.length,\n projectedMeshCount: independentProjectedMeshCount + batchMeshCount,\n convexHullMeshCount: casters.reduce((sum, caster) => sum + caster.convexHullMeshCount, 0),\n alphaCutoutMeshCount: casters.reduce((sum, caster) => sum + caster.alphaCutoutMeshCount, 0),\n instancedCasterCount: casters.reduce((sum, caster) => sum + (caster.instancedCasterCount ?? 0), 0),\n batchMeshCount,\n independentProjectedMeshCount,\n visibleInstanceCount: casters.reduce((sum, caster) => sum + (caster.visibleInstanceCount ?? 0), 0),\n ...(instancedBatchIds.length ? { instancedBatchIds } : {}),\n ...(instancedBatchNames.length ? { instancedBatchNames } : {}),\n ...(alphaCutoutChannels.length ? { alphaCutoutChannels } : {}),\n ...(alphaCutoutUvSets.length ? { alphaCutoutUvSets } : {}),\n ...(alphaCutoutLevels.length ? { alphaCutoutLevels } : {}),\n ...(fallbackReasons.length ? { fallbackReasons } : {}),\n ...(instancingFallbackReasons.length ? { instancingFallbackReasons } : {}),\n casters: casters.map(caster => ({\n sourceName: caster.sourceName,\n ...(caster.sourceNodeId ? { sourceNodeId: caster.sourceNodeId } : {}),\n ...(caster.sourceNodeIds?.length ? { sourceNodeIds: [...caster.sourceNodeIds] } : {}),\n ...(caster.sourceMeshNames?.length ? { sourceMeshNames: [...caster.sourceMeshNames] } : {}),\n shadowName: caster.shadowName,\n strategy: caster.strategy,\n hasSkeleton: caster.hasSkeleton,\n projectedMeshCount: caster.projectedMeshCount,\n convexHullMeshCount: caster.convexHullMeshCount,\n alphaCutoutMeshCount: caster.alphaCutoutMeshCount,\n ...(typeof caster.instancedCasterCount === 'number' ? { instancedCasterCount: caster.instancedCasterCount } : {}),\n ...(typeof caster.batchMeshCount === 'number' ? { batchMeshCount: caster.batchMeshCount } : {}),\n ...(caster.instancedBatchIds?.length ? { instancedBatchIds: [...caster.instancedBatchIds] } : {}),\n ...(caster.instancedBatchNames?.length ? { instancedBatchNames: [...caster.instancedBatchNames] } : {}),\n ...(typeof caster.independentProjectedMeshCount === 'number' ? { independentProjectedMeshCount: caster.independentProjectedMeshCount } : {}),\n ...(typeof caster.visibleInstanceCount === 'number' ? { visibleInstanceCount: caster.visibleInstanceCount } : {}),\n ...(caster.alphaCutoutChannels?.length ? { alphaCutoutChannels: [...caster.alphaCutoutChannels] } : {}),\n ...(caster.fallbackReasons?.length ? { fallbackReasons: [...caster.fallbackReasons] } : {}),\n ...(caster.instancingFallbackReasons?.length ? { instancingFallbackReasons: [...caster.instancingFallbackReasons] } : {}),\n })),\n },\n };\n}\n\nfunction createShadowRuntimeEvidenceCasterIds<TDocument>(\n resolved: ResolvedShadowTarget<TDocument>,\n casterId: string,\n projectionContext: ShadowProjectionContext,\n): Set<string> {\n const authoringIds = new Set<string>([casterId]);\n addShadowRuntimeEvidenceSceneDescendants(authoringIds, resolved.document, casterId);\n const ids = new Set<string>();\n for (const id of authoringIds) {\n ids.add(id);\n ids.add(projectionContext.resolveProjectionId(id));\n }\n return ids;\n}\n\nfunction addShadowRuntimeEvidenceSceneDescendants(\n ids: Set<string>,\n document: EditorSceneDocument,\n parentId: string,\n): void {\n for (const gameObject of document.scene.gameObjects) {\n const candidateParentId = readShadowSceneGameObjectParentId(gameObject);\n if (candidateParentId !== parentId || ids.has(gameObject.id)) continue;\n ids.add(gameObject.id);\n addShadowRuntimeEvidenceSceneDescendants(ids, document, gameObject.id);\n }\n}\n\nfunction readShadowSceneGameObjectParentId(gameObject: EditorSceneGameObject): string | null {\n const parentId = (gameObject as { parentId?: unknown }).parentId;\n return typeof parentId === 'string' && parentId.length > 0 ? parentId : null;\n}\n\nfunction collectPlanarShadowCasterSourceNodeIds(\n caster: NonNullable<LocalEditorAgentBridgeShadowPreviewDebugInfo['planar']>['casters'][number],\n): string[] {\n return uniqueStrings([\n ...(caster.sourceNodeId ? [caster.sourceNodeId] : []),\n ...(caster.sourceNodeIds ?? []),\n ]);\n}\n\nfunction isPlanarShadowCasterEvidenceForTarget(\n sourceNodeIds: readonly string[],\n casterIds: ReadonlySet<string>,\n): boolean {\n for (const sourceNodeId of sourceNodeIds) {\n if (casterIds.has(sourceNodeId)) return true;\n for (const casterId of casterIds) {\n if (sourceNodeId.startsWith(`${casterId}::`)) return true;\n }\n }\n return false;\n}\n\nfunction summarizePlanarShadowDebugStrategy(\n casters: readonly NonNullable<LocalEditorAgentBridgeShadowPreviewDebugInfo['planar']>['casters'][number][],\n): 'auto' | 'projected-mesh' | 'convex-hull' | undefined {\n if (casters.length === 0) return undefined;\n const hasProjected = casters.some(caster => caster.projectedMeshCount > 0);\n const hasHull = casters.some(caster => caster.convexHullMeshCount > 0);\n if (hasProjected && hasHull) return 'auto';\n if (hasProjected) return 'projected-mesh';\n if (hasHull) return 'convex-hull';\n return undefined;\n}\n\nfunction uniqueStrings(values: readonly string[]): string[] {\n return [...new Set(values.filter(value => value.length > 0))];\n}\n\nfunction uniqueNumbers(values: readonly number[]): number[] {\n return [...new Set(values.filter(value => Number.isFinite(value)))];\n}\n\nfunction mapShadowPlan(plan: EditorShadowResolvedPlan): EditorAgentBridgeShadowResolvedPlan {\n return {\n casterId: plan.casterId,\n receiverIds: [...plan.receiverIds],\n ...(plan.lightId ? { lightId: plan.lightId } : {}),\n backend: plan.backend,\n mode: plan.mode,\n quality: plan.quality,\n params: { ...plan.params },\n ...(plan.stale === true ? { stale: true } : {}),\n diagnostics: mapShadowDiagnostics(plan.diagnostics),\n };\n}\n\nfunction mapShadowReceivers<TDocument, TPatch>(\n receivers: readonly EditorShadowReceiverCandidate[],\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n context: { casterId?: string; lightId?: string; projectionContext?: ShadowProjectionContext } = {},\n): EditorAgentBridgeShadowReceiverCandidate[] {\n const projectionContext = context.projectionContext ?? createIdentityShadowProjectionContext();\n const casterBounds = context.casterId\n ? readShadowProjectionBounds(state, context.casterId, projectionContext)\n : undefined;\n return receivers.map((receiver) => {\n const bounds = readShadowProjectionBounds(state, receiver.receiverId, projectionContext);\n const diagnostics = mapShadowDiagnostics(receiver.diagnostics ?? []);\n if (!bounds) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.receiverBoundsUnavailable',\n message: `Projection bounds are unavailable for receiver \"${receiver.receiverId}\".`,\n details: { receiverId: receiver.receiverId },\n });\n }\n const authoredActive = receiver.active !== false;\n const authoredVisible = authoredActive && receiver.visible !== false;\n const effectiveVisible = readShadowPreviewEffectiveVisible(state, receiver.receiverId, projectionContext, authoredVisible);\n const suitability = createShadowReceiverSuitability(receiver, casterBounds, bounds, context.lightId);\n return {\n receiverId: receiver.receiverId,\n source: receiver.source,\n score: receiver.score,\n ...(bounds ? { bounds, boundsCenter: bounds.center } : {}),\n active: authoredActive,\n visible: effectiveVisible,\n ...(receiver.receive ? { receive: receiver.receive as EditorAgentBridgeShadowReceiverCandidate['receive'] } : {}),\n ...(suitability ? { suitability } : {}),\n ...(diagnostics.length ? { diagnostics } : {}),\n };\n });\n}\n\nfunction createShadowReceiverSuitability(\n receiver: EditorShadowReceiverCandidate,\n casterBounds: AgentBridgeResolvedBounds | undefined,\n receiverBounds: AgentBridgeResolvedBounds | undefined,\n lightId: string | undefined,\n): NonNullable<EditorAgentBridgeShadowReceiverCandidate['suitability']> | undefined {\n const reasons = [...(receiver.suitability?.reasons ?? [])];\n if (receiverBounds) reasons.push('receiver bounds available');\n else reasons.push('receiver bounds unavailable');\n if (casterBounds) reasons.push('caster bounds available');\n if (lightId) reasons.push(`light ${lightId}`);\n const distance = casterBounds && receiverBounds ? distance3(casterBounds.center, receiverBounds.center) : undefined;\n const overlap = casterBounds && receiverBounds ? overlapRatioXZ(casterBounds, receiverBounds) : undefined;\n return {\n score: receiver.suitability?.score ?? receiver.score,\n ...(overlap !== undefined ? { overlap } : {}),\n ...(distance !== undefined ? { distance } : {}),\n ...(receiver.suitability?.material ? { material: receiver.suitability.material } : {}),\n ...(lightId ? { light: lightId } : receiver.suitability?.light ? { light: receiver.suitability.light } : {}),\n reasons,\n };\n}\n\nfunction createShadowDebugTargetSummary<TDocument, TPatch>(\n target: ResolvedShadowTarget<TDocument>,\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n projectionContext: ShadowProjectionContext = createIdentityShadowProjectionContext(),\n): EditorAgentBridgeShadowDebugTargetSummary {\n const id = getResolvedTargetCasterId(target);\n const projectionId = projectionContext.resolveProjectionId(id);\n const bounds = readShadowProjectionBounds(state, id, projectionContext);\n const transform = editorTransformSnapshotToAgentTransform(state.projection?.readNodeTransform(projectionId));\n if (target.kind === 'scene') {\n const active = target.gameObject.active !== false;\n return {\n objectId: target.objectId,\n label: target.gameObject.name ?? target.objectId,\n kind: target.gameObject.kind ?? 'transform',\n active,\n visible: readShadowPreviewEffectiveVisible(state, id, projectionContext, active),\n ...(bounds ? { bounds } : {}),\n ...(transform ? { transform } : {}),\n ...(!bounds ? {\n diagnostics: [{\n severity: 'warning',\n source: 'editor',\n code: 'shadow.casterBoundsUnavailable',\n message: `Projection bounds are unavailable for caster \"${target.objectId}\".`,\n }],\n } : {}),\n };\n }\n return {\n nodeId: target.nodeId,\n label: target.node.label,\n kind: target.node.kind,\n active: readBoolean(target.node.defaults?.active, true),\n visible: readShadowPreviewEffectiveVisible(\n state,\n id,\n projectionContext,\n readBoolean(target.node.defaults?.active, true),\n ),\n ...(bounds ? { bounds } : {}),\n ...(transform ? { transform } : {}),\n ...(!bounds ? {\n diagnostics: [{\n severity: 'warning',\n source: 'editor',\n code: 'shadow.casterBoundsUnavailable',\n message: `Projection bounds are unavailable for prefab node \"${target.nodeId}\".`,\n }],\n } : {}),\n };\n}\n\nfunction createShadowLightSummary(\n document: EditorSceneDocument,\n lightId: string | undefined,\n): EditorAgentBridgeShadowLightSummary | undefined {\n if (!lightId) return undefined;\n const light = findShadowGameObject(document, lightId);\n if (!light?.light) {\n return {\n lightId,\n diagnostics: [{\n severity: 'warning',\n source: 'editor',\n code: 'shadow.lightNotFound',\n message: `Resolved shadow light \"${lightId}\" was not found in the preview document.`,\n }],\n };\n }\n const diagnostics: EditorAgentBridgeDiagnostic[] = [];\n let direction: EditorAgentBridgeVec3 | undefined;\n let directionSource: EditorAgentBridgeShadowLightSummary['directionSource'] | undefined;\n const orientationDiagnostics: EditorAgentBridgeDiagnostic[] = [];\n if (light.light.type === 'directional') {\n direction = normalizeEditorSceneLightDirectionVector(light.light.direction) as EditorAgentBridgeVec3;\n directionSource = 'light.direction';\n const transform = findEditorSceneTransform(light);\n const rotation = transform && 'rotation' in transform ? transform.rotation : undefined;\n const drift = detectEditorSceneDirectionalLightOrientationDrift({\n direction: light.light.direction,\n rotation,\n });\n if (drift.hasDrift) {\n orientationDiagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.lightOrientationDrift',\n message: 'Directional Light transform.rotation and light.direction are out of sync. Runtime shadows use light.direction until the light orientation is edited again.',\n details: {\n expectedDirectionFromTransform: cloneShadowVec3Json(drift.expectedDirection),\n actualDirection: cloneShadowVec3Json(drift.actualDirection),\n delta: drift.delta,\n tolerance: drift.tolerance,\n },\n });\n diagnostics.push(...orientationDiagnostics);\n }\n }\n return {\n lightId,\n label: light.name ?? light.id,\n type: light.light.type,\n ...(light.shadow?.light?.mode ? { mode: light.shadow.light.mode } : {}),\n ...(direction ? { direction } : {}),\n ...(directionSource ? { directionSource } : {}),\n ...(orientationDiagnostics.length ? { orientationDiagnostics } : {}),\n ...(typeof light.light.intensity === 'number' ? { intensity: light.light.intensity } : {}),\n ...(diagnostics.length ? { diagnostics } : {}),\n };\n}\n\nfunction cloneShadowVec3(value: EditorAgentBridgeVec3): EditorAgentBridgeVec3 {\n return { x: value.x, y: value.y, z: value.z };\n}\n\nfunction cloneShadowVec3Json(value: EditorAgentBridgeVec3): EditorAgentBridgeJsonObject {\n return { x: value.x, y: value.y, z: value.z };\n}\n\nfunction createShadowFootprintSummary<TDocument, TPatch>(\n plan: EditorAgentBridgeShadowResolvedPlan,\n receivers: readonly EditorAgentBridgeShadowReceiverCandidate[],\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n projectionContext: ShadowProjectionContext = createIdentityShadowProjectionContext(),\n light?: EditorAgentBridgeShadowLightSummary,\n): EditorAgentBridgeShadowFootprintSummary {\n if (plan.backend === 'none' || plan.receiverIds.length === 0) {\n return {\n kind: 'none',\n confidence: plan.backend === 'none' ? 1 : 0,\n diagnostics: plan.backend === 'none'\n ? [{\n severity: 'info',\n source: 'editor',\n code: 'shadow.footprintNone',\n message: 'Shadow backend is none, so no footprint is expected.',\n }]\n : [{\n severity: 'warning',\n source: 'editor',\n code: 'shadow.receiverNotFound',\n message: 'No receiver is available for an estimated shadow footprint.',\n }],\n };\n }\n const receiver = selectShadowFootprintReceiver(plan, receivers);\n if (!receiver) {\n return {\n kind: 'unknown',\n receiverId: plan.receiverIds[0],\n confidence: 0.1,\n diagnostics: [{\n severity: 'warning',\n source: 'editor',\n code: 'shadow.footprintReceiverUnavailable',\n message: 'Resolved shadow plan has receiver ids, but no receiver summaries are available for footprint selection.',\n details: { receiverIds: plan.receiverIds },\n }],\n };\n }\n const receiverBounds = receiver?.bounds as AgentBridgeResolvedBounds | undefined;\n const casterBounds = readShadowProjectionBounds(state, plan.casterId, projectionContext);\n if (!receiverBounds || !casterBounds) {\n return {\n kind: 'unknown',\n receiverId: receiver?.receiverId ?? plan.receiverIds[0],\n confidence: 0.25,\n diagnostics: [{\n severity: 'warning',\n source: 'editor',\n code: 'shadow.footprintBoundsUnavailable',\n message: 'Caster or receiver bounds are unavailable, so the footprint can only be reported structurally.',\n }],\n };\n }\n const footprintHeight = 0.02;\n const direction = normalizeShadowDirection(light?.direction);\n const projectedBounds = direction\n ? projectCasterBoundsToReceiver(casterBounds, receiverBounds, direction)\n : null;\n const size = projectedBounds\n ? {\n x: Math.min(receiverBounds.size.x, Math.max(projectedBounds.size.x, 0.01)),\n y: footprintHeight,\n z: Math.min(receiverBounds.size.z, Math.max(projectedBounds.size.z, 0.01)),\n }\n : {\n x: Math.min(receiverBounds.size.x, Math.max(casterBounds.size.x, 0.01)),\n y: footprintHeight,\n z: Math.min(receiverBounds.size.z, Math.max(casterBounds.size.z, 0.01)),\n };\n const center = projectedBounds?.center ?? casterBounds.center;\n const contactTolerance = Math.max(0.025, casterBounds.size.y * 0.04);\n const contactsReceiver = Math.abs(casterBounds.min.y - receiverBounds.max.y) <= contactTolerance\n || casterBounds.min.y < receiverBounds.max.y;\n const diagnostics: EditorAgentBridgeDiagnostic[] = [\n ...(!direction && light?.type === 'directional' ? [{\n severity: 'warning' as const,\n source: 'editor' as const,\n code: 'shadow.footprintDirectionUnavailable',\n message: 'Directional shadow light is missing a direction, so the footprint falls back to caster bounds.',\n details: { lightId: light.lightId },\n }] : []),\n ...(contactsReceiver ? [{\n severity: 'info' as const,\n source: 'editor' as const,\n code: 'shadow.casterContactsReceiver',\n message: 'Caster bounds touch or intersect the receiver plane. A real screenshot may show only the outside portions of the shadow because the caster itself occludes the contact footprint.',\n details: {\n casterMinY: casterBounds.min.y,\n receiverMaxY: receiverBounds.max.y,\n contactTolerance,\n },\n }] : []),\n ];\n return {\n kind: plan.backend === 'static-baked' ? 'artifact' : 'estimated',\n receiverId: receiver.receiverId,\n center: {\n x: center.x,\n y: receiverBounds.max.y + footprintHeight / 2 + 0.002,\n z: center.z,\n },\n size,\n normal: { x: 0, y: 1, z: 0 },\n ...(direction ? { direction } : {}),\n area: Math.max(0, size.x) * Math.max(0, size.z),\n confidence: receiver.suitability?.overlap !== undefined ? Math.min(1, Math.max(0.35, receiver.suitability.overlap)) : 0.6,\n ...(diagnostics.length ? { diagnostics } : {}),\n };\n}\n\nfunction selectShadowFootprintReceiver(\n plan: EditorAgentBridgeShadowResolvedPlan,\n receivers: readonly EditorAgentBridgeShadowReceiverCandidate[],\n): EditorAgentBridgeShadowReceiverCandidate | undefined {\n const planOrder = new Map(plan.receiverIds.map((receiverId, index) => [receiverId, index]));\n const candidates = receivers.filter(receiver => planOrder.has(receiver.receiverId));\n const ranked = candidates.length > 0 ? candidates : receivers;\n return [...ranked].sort((left, right) => compareShadowReceiverForFootprint(left, right, planOrder))[0];\n}\n\nfunction compareShadowReceiverForFootprint(\n left: EditorAgentBridgeShadowReceiverCandidate,\n right: EditorAgentBridgeShadowReceiverCandidate,\n planOrder: ReadonlyMap<string, number>,\n): number {\n const leftVisible = left.active !== false && left.visible !== false ? 1 : 0;\n const rightVisible = right.active !== false && right.visible !== false ? 1 : 0;\n if (leftVisible !== rightVisible) return rightVisible - leftVisible;\n\n const leftHasBounds = left.bounds ? 1 : 0;\n const rightHasBounds = right.bounds ? 1 : 0;\n if (leftHasBounds !== rightHasBounds) return rightHasBounds - leftHasBounds;\n\n const leftOverlap = typeof left.suitability?.overlap === 'number' ? left.suitability.overlap : -1;\n const rightOverlap = typeof right.suitability?.overlap === 'number' ? right.suitability.overlap : -1;\n if (leftOverlap !== rightOverlap) return rightOverlap - leftOverlap;\n\n const leftDistance = typeof left.suitability?.distance === 'number' ? left.suitability.distance : Number.POSITIVE_INFINITY;\n const rightDistance = typeof right.suitability?.distance === 'number' ? right.suitability.distance : Number.POSITIVE_INFINITY;\n if (leftDistance !== rightDistance) return leftDistance - rightDistance;\n\n const leftScore = typeof left.suitability?.score === 'number' ? left.suitability.score : left.score ?? 0;\n const rightScore = typeof right.suitability?.score === 'number' ? right.suitability.score : right.score ?? 0;\n if (leftScore !== rightScore) return rightScore - leftScore;\n\n const leftOrder = planOrder.get(left.receiverId) ?? Number.MAX_SAFE_INTEGER;\n const rightOrder = planOrder.get(right.receiverId) ?? Number.MAX_SAFE_INTEGER;\n return leftOrder - rightOrder;\n}\n\nfunction normalizeShadowDirection(direction: EditorAgentBridgeVec3 | undefined): EditorAgentBridgeVec3 | null {\n if (!direction) return null;\n const length = Math.hypot(direction.x, direction.y, direction.z);\n if (!Number.isFinite(length) || length <= 1e-6) return null;\n return {\n x: direction.x / length,\n y: direction.y / length,\n z: direction.z / length,\n };\n}\n\nfunction projectCasterBoundsToReceiver(\n casterBounds: AgentBridgeResolvedBounds,\n receiverBounds: AgentBridgeResolvedBounds,\n direction: EditorAgentBridgeVec3,\n): { center: EditorAgentBridgeVec3; size: EditorAgentBridgeVec3 } | null {\n if (Math.abs(direction.y) <= 1e-5) return null;\n const receiverY = receiverBounds.max.y;\n const points: EditorAgentBridgeVec3[] = [];\n for (const x of [casterBounds.min.x, casterBounds.max.x]) {\n for (const y of [casterBounds.min.y, casterBounds.max.y]) {\n for (const z of [casterBounds.min.z, casterBounds.max.z]) {\n const t = (receiverY - y) / direction.y;\n if (!Number.isFinite(t)) continue;\n if (t < 0) {\n points.push({ x, y: receiverY, z });\n continue;\n }\n points.push({\n x: x + direction.x * t,\n y: receiverY,\n z: z + direction.z * t,\n });\n }\n }\n }\n if (points.length === 0) return null;\n const min = {\n x: Math.min(...points.map(point => point.x)),\n y: receiverY,\n z: Math.min(...points.map(point => point.z)),\n };\n const max = {\n x: Math.max(...points.map(point => point.x)),\n y: receiverY,\n z: Math.max(...points.map(point => point.z)),\n };\n return {\n center: {\n x: (min.x + max.x) / 2,\n y: receiverY,\n z: (min.z + max.z) / 2,\n },\n size: {\n x: Math.max(0, max.x - min.x),\n y: 0,\n z: Math.max(0, max.z - min.z),\n },\n };\n}\n\nfunction readShadowProjectionBounds<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n targetId: string,\n projectionContext: ShadowProjectionContext,\n): AgentBridgeResolvedBounds | undefined {\n const projectionId = projectionContext.resolveProjectionId(targetId);\n return createAgentBridgeBounds(state.projection?.getSelectionBounds([projectionId]) ?? null);\n}\n\nfunction readShadowPreviewEffectiveVisible<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n targetId: string,\n projectionContext: ShadowProjectionContext,\n authoredVisible: boolean,\n): boolean {\n const projectionId = projectionContext.resolveProjectionId(targetId);\n const projectionEntry = state.projection?.getPreviewVisibilityOverrides?.()\n ?.find(entry => entry.nodeId === projectionId || entry.nodeId === targetId);\n if (projectionEntry) return projectionEntry.effectiveVisible;\n const overrides = state.previewVisibility?.overrides ?? {};\n const override = overrides[projectionId] ?? overrides[targetId];\n return authoredVisible && override !== false;\n}\n\nfunction createAgentBridgeBounds(\n bounds: { center: { x: number; y: number; z: number }; size: { x: number; y: number; z: number } } | null,\n): AgentBridgeResolvedBounds | undefined {\n if (!bounds) return undefined;\n const half = {\n x: bounds.size.x / 2,\n y: bounds.size.y / 2,\n z: bounds.size.z / 2,\n };\n return {\n center: { ...bounds.center },\n size: { ...bounds.size },\n min: {\n x: bounds.center.x - half.x,\n y: bounds.center.y - half.y,\n z: bounds.center.z - half.z,\n },\n max: {\n x: bounds.center.x + half.x,\n y: bounds.center.y + half.y,\n z: bounds.center.z + half.z,\n },\n };\n}\n\nfunction distance3(a: { x: number; y: number; z: number }, b: { x: number; y: number; z: number }): number {\n return Math.hypot(a.x - b.x, a.y - b.y, a.z - b.z);\n}\n\nfunction overlapRatioXZ(\n a: AgentBridgeResolvedBounds,\n b: AgentBridgeResolvedBounds,\n): number {\n const overlapX = Math.max(0, Math.min(a.max.x, b.max.x) - Math.max(a.min.x, b.min.x));\n const overlapZ = Math.max(0, Math.min(a.max.z, b.max.z) - Math.max(a.min.z, b.min.z));\n const intersection = overlapX * overlapZ;\n const casterArea = Math.max(0.0001, a.size.x * a.size.z);\n return Math.max(0, Math.min(1, intersection / casterArea));\n}\n\nfunction mapShadowDiagnostics(diagnostics: readonly EditorShadowDiagnostic[]): EditorAgentBridgeDiagnostic[] {\n return diagnostics.map(diagnostic => ({\n severity: diagnostic.severity,\n source: 'editor',\n code: diagnostic.code,\n message: diagnostic.message,\n ...(diagnostic.casterId ? { objectId: diagnostic.casterId } : {}),\n details: {\n ...(diagnostic.details ?? {}),\n ...(diagnostic.casterId ? { casterId: diagnostic.casterId } : {}),\n ...(diagnostic.receiverId ? { receiverId: diagnostic.receiverId } : {}),\n ...(diagnostic.lightId ? { lightId: diagnostic.lightId } : {}),\n },\n }));\n}\n\nfunction createShadowTargetDiagnostics<TDocument>(\n resolved: ResolvedShadowTarget<TDocument>,\n): EditorAgentBridgeDiagnostic[] {\n if (resolved.kind !== 'prefab-stage') return [];\n return [{\n severity: 'info',\n source: 'editor',\n code: 'shadow.prefabStagePreview',\n message: 'Prefab stage shadow resolution uses editable prefab nodes as a preview scene; runtime scene receiver/light binding is finalized by the scene compiler.',\n details: { assetId: resolved.details.stage.assetId, nodeId: resolved.nodeId },\n }];\n}\n\nfunction getResolvedTargetCasterId<TDocument>(target: ResolvedShadowTarget<TDocument>): string {\n return target.kind === 'scene' ? target.objectId : target.nodeId;\n}\n\nfunction asEditorSceneDocument(value: unknown): EditorSceneDocument | null {\n if (!isRecord(value)) return null;\n const scene = value.scene;\n if (!isRecord(scene) || !Array.isArray(scene.gameObjects)) return null;\n if (!Array.isArray(value.assets)) return null;\n return value as EditorSceneDocument;\n}\n\nfunction findShadowGameObject(document: EditorSceneDocument, objectId: string): EditorSceneGameObject | null {\n return document.scene.gameObjects.find(gameObject => gameObject.id === objectId) ?? null;\n}\n\nfunction findPrefabRootNodeId<TDocument>(details: LocalEditorAgentBridgePrefabStageDetails<TDocument>): string {\n const nodes = listPrefabShadowNodes(details);\n return nodes.find(node => node.kind === 'root')?.id\n ?? nodes.find(node => !node.parentId)?.id\n ?? 'prefab-root';\n}\n\nfunction normalizePrefabNodeId(value: unknown): string {\n const id = normalizeAgentBridgeString(value);\n return id.startsWith(PREFAB_STAGE_ITEM_PREFIX) ? id.slice(PREFAB_STAGE_ITEM_PREFIX.length) : id;\n}\n\nfunction getSelectedPrefabNodeId(itemId: string | null | undefined): string {\n return normalizePrefabNodeId(itemId);\n}\n\nfunction readBoolean(value: unknown, fallback: boolean): boolean {\n return typeof value === 'boolean' ? value : fallback;\n}\n\nfunction isRecord(value: unknown): value is Record<string, any> {\n return !!value && typeof value === 'object' && !Array.isArray(value);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"shadows.js","sourceRoot":"","sources":["../../../src/agent-bridge/capabilities/shadows.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n collectEditorShadowReceiverCandidates,\n detectEditorSceneDirectionalLightOrientationDrift,\n findEditorSceneModelRenderer,\n findEditorScenePrefabAsset,\n findEditorScenePrefabNode,\n findEditorSceneTransform,\n normalizeEditorSceneLightDirectionVector,\n readEditorScenePrefabNodes,\n readEditorScenePrefabRootNodeId,\n resolveEditorSceneGameObjectShadowSettings,\n resolveEditorSceneGameObjectRuntimeEntityIds,\n resolveEditorScenePrefabInstanceRelation,\n resolveEditorShadowPlan,\n type EditorShadowResolvePlanInput,\n type EditorSceneDocument,\n type EditorSceneGameObject,\n} from '@fps-games/editor-playable-sdk';\nimport {\n assertEditorShadowSettingsContract,\n assertShadowMapExperimentConfig,\n createShadowMapExperimentPlanSnapshot,\n createShadowMapExperimentPlanFingerprint,\n mergeEditorShadowSettings,\n readEditorShadowSettings,\n resolveEditorShadowParams,\n type EditorShadowDiagnostic,\n type EditorShadowReceiverCandidate,\n type EditorShadowResolvedPlan,\n type EditorShadowSettings,\n type ShadowMapExperimentConfig,\n type ShadowMapExperimentPlan,\n} from '@fps-games/playable-rendering';\nimport {\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID,\n type EditorAgentBridgeBounds,\n type EditorAgentBridgeDiagnostic,\n type EditorAgentBridgeJsonObject,\n type EditorAgentBridgeShadowPolicyGetInput,\n type EditorAgentBridgeShadowPolicyGetOutput,\n type EditorAgentBridgeShadowPolicySetInput,\n type EditorAgentBridgeShadowPolicySetOutput,\n type EditorAgentBridgeShadowMapExperimentConfigGetOutput,\n type EditorAgentBridgeShadowMapExperimentPolicyGetInput,\n type EditorAgentBridgeShadowMapExperimentPolicyOutput,\n type EditorAgentBridgeShadowMapExperimentPolicySetInput,\n type EditorAgentBridgeShadowMapExperimentPolicySetOutput,\n type EditorAgentBridgeShadowMapExperimentRuntimeSnapshotOutput,\n type EditorAgentBridgeShadowMapExperimentTarget,\n type EditorAgentBridgeShadowDebugContextClearOutput,\n type EditorAgentBridgeShadowDebugContextEnterInput,\n type EditorAgentBridgeShadowDebugContextEnterOutput,\n type EditorAgentBridgeShadowDebugInspectOutput,\n type EditorAgentBridgeShadowDebugOverlayClearOutput,\n type EditorAgentBridgeShadowDebugOverlaySetInput,\n type EditorAgentBridgeShadowDebugOverlaySetOutput,\n type EditorAgentBridgeShadowDebugVisibilityMeasureInput,\n type EditorAgentBridgeShadowDebugVisibilityMeasureOutput,\n type EditorAgentBridgeShadowRuntimeEvidence,\n type EditorAgentBridgeShadowReceiverCandidate,\n type EditorAgentBridgeShadowDebugTargetSummary,\n type EditorAgentBridgeShadowFootprintSummary,\n type EditorAgentBridgeShadowLightSummary,\n type EditorAgentBridgeShadowReceiversListInput,\n type EditorAgentBridgeShadowReceiversListOutput,\n type EditorAgentBridgeShadowResolvedPlan,\n type EditorAgentBridgeShadowResolvePreviewInput,\n type EditorAgentBridgeShadowResolvePreviewOutput,\n type EditorAgentBridgeShadowSettings,\n type EditorAgentBridgeShadowStaticBakeInput,\n type EditorAgentBridgeShadowStaticBakeOutput,\n type EditorAgentBridgeShadowStaticInvalidateInput,\n type EditorAgentBridgeShadowStaticInvalidateOutput,\n type EditorAgentBridgeShadowTarget,\n type EditorAgentBridgeVec3,\n} from '@fps-games/editor-protocol';\nimport {\n createLocalEditorAgentBridgeFailure,\n editorTransformSnapshotToAgentTransform,\n} from '../diagnostics.js';\nimport type { LocalEditorAgentBridgeShadowSource } from '../source-types.js';\nimport {\n createAgentBridgeSafePrefabReadModel,\n getAgentBridgeSafeSceneSelection,\n hasAgentBridgeSafeSceneScope,\n isAgentBridgeSafeSceneObjectId,\n normalizeAgentBridgeIdList,\n normalizeAgentBridgeString,\n type LocalEditorAgentBridgeCapabilitySourceOperations,\n type LocalEditorAgentBridgeHarnessState,\n type LocalEditorAgentBridgePrefabStageDetails,\n type LocalEditorAgentBridgeSafePrefabReadModel,\n type LocalEditorAgentBridgeShadowPreviewDebugInfo,\n type LocalEditorAgentBridgeShadowDebugOverlayItem,\n} from '../shared.js';\nimport type { LocalEditorHarnessOptions } from '../../local-editor-harness.js';\n\nconst SHADOW_POLICY_FIELDS = [\n 'shadow.cast',\n 'shadow.receive',\n 'shadow.mode',\n 'shadow.quality',\n 'shadow.light.mode',\n 'shadow.light.lightId',\n 'shadow.params.opacity',\n 'shadow.params.softness',\n 'shadow.params.bias',\n 'shadow.params.normalBias',\n 'shadow.params.maxDistance',\n 'shadow.params.resolution',\n 'shadow.params.cascadeCount',\n 'shadow.params.bakeSamples',\n 'shadow.params.blurKernel',\n] as const;\n\ntype ShadowPolicyFieldPath = typeof SHADOW_POLICY_FIELDS[number];\n\ninterface PrefabShadowNode {\n id: string;\n label: string;\n kind: string;\n parentId: string | null;\n defaults?: Record<string, unknown>;\n primitive?: Record<string, unknown>;\n light?: Record<string, unknown>;\n}\n\ntype ResolvedShadowTarget<TDocument> =\n | {\n kind: 'scene';\n target: EditorAgentBridgeShadowTarget;\n document: EditorSceneDocument;\n rawDocument: TDocument;\n objectId: string;\n gameObject: EditorSceneGameObject;\n }\n | {\n kind: 'prefab-stage';\n target: EditorAgentBridgeShadowTarget;\n details: LocalEditorAgentBridgePrefabStageDetails<TDocument>;\n nodeId: string;\n rootNodeId: string;\n node: PrefabShadowNode;\n document: EditorSceneDocument;\n };\n\ntype ResolvedShadowMapExperimentTarget<TDocument> =\n | {\n kind: 'scene';\n target: EditorAgentBridgeShadowMapExperimentTarget;\n document: EditorSceneDocument;\n rawDocument: TDocument;\n }\n | {\n kind: 'object';\n target: EditorAgentBridgeShadowMapExperimentTarget;\n document: EditorSceneDocument;\n rawDocument: TDocument;\n objectId: string;\n gameObject: EditorSceneGameObject;\n }\n | {\n kind: 'prefab-node';\n target: EditorAgentBridgeShadowMapExperimentTarget;\n document: EditorSceneDocument;\n rawDocument: TDocument;\n prefabAssetId: string;\n nodeId: string;\n rootNodeId: string;\n prefabAsset: NonNullable<ReturnType<typeof findEditorScenePrefabAsset>>;\n node: NonNullable<ReturnType<typeof findEditorScenePrefabNode>>;\n };\n\ntype StrictEditorShadowResolvePlanInput = EditorShadowResolvePlanInput & {\n strictExplicitReceivers?: boolean;\n};\n\ntype AgentBridgeResolvedBounds = Required<Pick<EditorAgentBridgeBounds, 'min' | 'max' | 'size' | 'center'>>;\n\ninterface ShadowProjectionContext {\n resolveProjectionId(targetId: string): string;\n}\n\nexport function createLocalEditorAgentBridgeShadowSource<TDocument, TPatch, TAsset>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): LocalEditorAgentBridgeShadowSource {\n return {\n getShadowMapExperimentConfig() {\n const config = readShadowMapExperimentConfig(\n options,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_MAP_EXPERIMENT_CONFIG_GET,\n );\n if (!config.ok) return config.result;\n return createShadowMapExperimentConfigOutput(config.config);\n },\n getShadowMapExperimentPolicy(input) {\n const config = readShadowMapExperimentConfig(\n options,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_MAP_EXPERIMENT_POLICY_GET,\n );\n if (!config.ok) return config.result;\n const resolved = resolveShadowMapExperimentTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_MAP_EXPERIMENT_POLICY_GET,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n return createShadowMapExperimentPolicyOutput(\n resolved.target,\n config.config,\n readShadowMapExperimentPlan(options, resolved.target.rawDocument),\n );\n },\n setShadowMapExperimentPolicy(input) {\n const config = readShadowMapExperimentConfig(\n options,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_MAP_EXPERIMENT_POLICY_SET,\n );\n if (!config.ok) return config.result;\n if (!config.config) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_MAP_EXPERIMENT_POLICY_SET,\n 'Shadow Map experiment config is not available.',\n { code: 'shadowMapExperiment.configMissing' },\n );\n }\n const validation = validateShadowMapExperimentPolicySetInput(input, config.config);\n if (!validation.ok) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_MAP_EXPERIMENT_POLICY_SET,\n validation.message,\n { code: 'shadowMapExperiment.invalidInput', details: { scope: input.scope } },\n );\n }\n const resolved = resolveShadowMapExperimentTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_MAP_EXPERIMENT_POLICY_SET,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n return setShadowMapExperimentPolicy(\n state,\n options,\n renderUi,\n operations,\n resolved.target,\n input,\n config.config,\n );\n },\n previewShadowMapExperimentPlan() {\n const rawDocument = state.session?.getState({ cloneDocuments: false }).workingDocument;\n if (state.mode !== 'editor' || !rawDocument) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_MAP_EXPERIMENT_PLAN_PREVIEW,\n 'Editor is not in edit mode.',\n { code: 'editor.notReady' },\n );\n }\n const plan = readShadowMapExperimentPlan(options, rawDocument);\n return { plan: plan ? structuredClone(plan) as unknown as Record<string, unknown> : null };\n },\n snapshotShadowMapExperimentRuntime() {\n const rawDocument = state.session?.getState({ cloneDocuments: false }).workingDocument;\n if (state.mode !== 'editor' || !rawDocument) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_MAP_EXPERIMENT_RUNTIME_SNAPSHOT,\n 'Editor is not in edit mode.',\n { code: 'editor.notReady' },\n );\n }\n const evidence = operations.getShadowPreviewDebugInfo?.()?.shadowMapExperiment ?? null;\n const sourcePlan = readShadowMapExperimentPlan(options, rawDocument);\n const plan = resolveEvidenceVerifiedShadowMapExperimentPlan(\n readShadowMapExperimentExecutionPlan(operations),\n sourcePlan,\n evidence,\n );\n if (!plan && !evidence) return { snapshot: null };\n return {\n snapshot: structuredClone({\n planSchemaVersion: plan?.schemaVersion ?? evidence?.runtime.planSchemaVersion ?? null,\n planRevision: plan?.revision ?? null,\n runtime: evidence?.runtime ?? null,\n activity: evidence?.activity ?? null,\n registry: evidence?.registry ?? null,\n depth: evidence?.depth ?? null,\n receiverMeshCount: evidence?.receiverMeshCount ?? 0,\n renderListCount: evidence?.renderListCount ?? 0,\n backend: evidence?.backend ?? null,\n diagnostics: evidence?.diagnostics ?? [],\n }) as unknown as EditorAgentBridgeShadowMapExperimentRuntimeSnapshotOutput['snapshot'],\n };\n },\n getPolicy(input) {\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_GET,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n return createShadowPolicyGetOutput(\n resolved.target,\n resolveCanonicalShadowMapExperimentPlan(options, resolved.target, operations),\n );\n },\n setPolicy(input) {\n const policy = normalizeShadowPolicy(input.policy);\n if (!policy.ok) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_SET,\n policy.message,\n { code: 'shadow.invalidInput', details: { hasPolicy: input.policy != null } },\n );\n }\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_SET,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n if (resolved.target.kind === 'scene') {\n return setSceneShadowPolicy(state, options, renderUi, operations, resolved.target, policy.settings);\n }\n return setPrefabStageShadowPolicy(renderUi, operations, resolved.target, policy.settings);\n },\n listReceivers(input) {\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_RECEIVERS_LIST,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n const casterId = getResolvedTargetCasterId(resolved.target);\n const projectionContext = createShadowProjectionContext(resolved.target, operations);\n const canonicalPlan = resolveCanonicalShadowMapExperimentPlan(options, resolved.target, operations);\n const receiverIds = canonicalPlan?.receiverIds ?? [];\n return {\n receivers: mapShadowReceivers(\n collectEditorShadowReceiverCandidates({\n document: resolved.target.document,\n casterId,\n ...(receiverIds.length > 0 ? { explicitReceiverIds: receiverIds } : {}),\n }),\n state,\n { casterId, projectionContext },\n ).filter(receiver => (\n canonicalPlan\n ? receiverIds.includes(receiver.receiverId)\n : input.includeAuto === true || receiver.source !== 'auto'\n )),\n diagnostics: createShadowTargetDiagnostics(resolved.target),\n } satisfies EditorAgentBridgeShadowReceiversListOutput;\n },\n resolvePreview(input) {\n const policy = input.policy === undefined ? { ok: true as const, settings: undefined } : normalizeShadowPolicy(input.policy);\n if (!policy.ok) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_RESOLVE_PREVIEW,\n policy.message,\n { code: 'shadow.invalidInput', details: { hasPolicy: input.policy != null } },\n );\n }\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_RESOLVE_PREVIEW,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n const receiverIds = normalizeAgentBridgeIdList(input.receiverIds ?? []);\n const casterId = getResolvedTargetCasterId(resolved.target);\n const planInput: StrictEditorShadowResolvePlanInput = {\n document: resolved.target.document,\n casterId,\n explicitReceiverIds: receiverIds.length > 0 ? receiverIds : undefined,\n strictExplicitReceivers: receiverIds.length > 0,\n ...(policy.settings !== undefined ? { settings: { instance: policy.settings } } : {}),\n };\n const shadowPreviewDebugInfo = operations.getShadowPreviewDebugInfo?.() ?? null;\n const runtimeReceiverMeshCount = shadowPreviewDebugInfo?.shadowMapExperiment?.receiverMeshCount ?? 0;\n const reconciledRuntimeReceiverMeshCount = receiverIds.length === 0 ? runtimeReceiverMeshCount : 0;\n const legacyPlan = mapShadowPlan(\n resolveEditorShadowPlan(planInput),\n reconciledRuntimeReceiverMeshCount,\n );\n const canonicalPlan = input.policy === undefined && receiverIds.length === 0\n ? resolveCanonicalShadowMapExperimentPlan(options, resolved.target, operations)\n : null;\n const plan = canonicalPlan ?? legacyPlan;\n const plannedReceiverIds = plan.receiverIds;\n const allReceivers = mapShadowReceivers(\n collectEditorShadowReceiverCandidates({\n document: resolved.target.document,\n casterId,\n explicitReceiverIds: receiverIds.length > 0\n ? receiverIds\n : plannedReceiverIds.length > 0\n ? plannedReceiverIds\n : undefined,\n }),\n state,\n {\n casterId,\n lightId: plan.lightId,\n projectionContext: createShadowProjectionContext(resolved.target, operations),\n },\n );\n const receiverIdSet = new Set(plannedReceiverIds);\n const receivers = receiverIds.length > 0 || canonicalPlan\n ? allReceivers.filter(receiver => receiverIdSet.has(receiver.receiverId))\n : allReceivers;\n const light = createShadowLightSummary(resolved.target.document, plan.lightId);\n return {\n target: resolved.target.target,\n plan,\n caster: createShadowDebugTargetSummary(resolved.target, state, createShadowProjectionContext(resolved.target, operations)),\n ...(light ? { light } : {}),\n footprint: createShadowFootprintSummary(\n plan,\n receivers,\n state,\n createShadowProjectionContext(resolved.target, operations),\n light,\n reconciledRuntimeReceiverMeshCount,\n ),\n receivers,\n diagnostics: createShadowTargetDiagnostics(resolved.target),\n } satisfies EditorAgentBridgeShadowResolvePreviewOutput;\n },\n inspectDebug(input) {\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_INSPECT,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n return createShadowDebugInspectOutput(resolved.target, state, {\n projectionContext: createShadowProjectionContext(resolved.target, operations),\n }, {\n shadowPreviewDebugInfo: operations.getShadowPreviewDebugInfo?.() ?? null,\n canonicalPlan: resolveCanonicalShadowMapExperimentPlan(options, resolved.target, operations),\n });\n },\n enterDebugContext(input) {\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_CONTEXT_ENTER,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n return enterShadowDebugContext(\n state,\n renderUi,\n operations,\n resolved.target,\n input,\n resolveCanonicalShadowMapExperimentPlan(options, resolved.target, operations),\n );\n },\n clearDebugContext() {\n return clearShadowDebugContext(state, renderUi, operations);\n },\n setDebugOverlay(input) {\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_OVERLAY_SET,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n const inspect = createShadowDebugInspectOutput(resolved.target, state, {\n receiverIds: input.receiverIds ?? [],\n projectionContext: createShadowProjectionContext(resolved.target, operations),\n }, {\n canonicalPlan: resolveCanonicalShadowMapExperimentPlan(options, resolved.target, operations),\n });\n const overlayItems = createShadowDebugOverlayItems(inspect, input);\n const overlayIds = operations.setShadowDebugOverlay?.(overlayItems)\n ?? state.projection?.setShadowDebugOverlay?.(overlayItems)\n ?? overlayItems.map(item => item.id);\n operations.requestSceneFrame('agent-shadow-debug-overlay-set');\n renderUi();\n const diagnostics = [\n ...(inspect.diagnostics ?? []),\n ...(!overlayItems.length ? [{\n severity: 'warning' as const,\n source: 'editor' as const,\n code: 'shadow.debugOverlayEmpty',\n message: 'No shadow debug overlay items could be created for the resolved target.',\n }] : []),\n ];\n return {\n enabled: overlayItems.length > 0,\n target: inspect.target,\n overlayIds,\n ...(diagnostics.length ? { diagnostics } : {}),\n } satisfies EditorAgentBridgeShadowDebugOverlaySetOutput;\n },\n clearDebugOverlay() {\n const cleared = operations.clearShadowDebugOverlay?.()\n ?? state.projection?.clearShadowDebugOverlay?.()\n ?? false;\n operations.requestSceneFrame('agent-shadow-debug-overlay-clear');\n renderUi();\n return {\n cleared,\n } satisfies EditorAgentBridgeShadowDebugOverlayClearOutput;\n },\n measureVisibility(input) {\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_VISIBILITY_MEASURE,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n const inspect = createShadowDebugInspectOutput(resolved.target, state, {\n receiverIds: input.receiverIds ?? [],\n projectionContext: createShadowProjectionContext(resolved.target, operations),\n }, {\n canonicalPlan: resolveCanonicalShadowMapExperimentPlan(options, resolved.target, operations),\n });\n return createShadowDebugVisibilityMeasureOutput(inspect, input);\n },\n async bakeStatic(input) {\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_STATIC_BAKE,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n const receiverIds = normalizeAgentBridgeIdList(input.receiverIds ?? []);\n const casterId = getResolvedTargetCasterId(resolved.target);\n const quality = input.quality && input.quality !== 'inherit' ? input.quality : undefined;\n const effectivePolicy = getResolvedTargetShadowPolicy(resolved.target);\n const bakePolicy = mergeEditorShadowSettings(\n effectivePolicy,\n {\n mode: 'static',\n ...(quality ? { quality } : {}),\n },\n );\n const planInput: StrictEditorShadowResolvePlanInput = {\n document: resolved.target.document,\n casterId,\n explicitReceiverIds: receiverIds.length > 0 ? receiverIds : undefined,\n strictExplicitReceivers: receiverIds.length > 0,\n settings: { instance: bakePolicy },\n };\n const plan = mapShadowPlan(resolveEditorShadowPlan(planInput));\n const targetDiagnostics = createShadowTargetDiagnostics(resolved.target);\n if (resolved.target.kind !== 'scene') {\n return {\n target: resolved.target.target,\n baked: false,\n plan,\n stale: true,\n diagnostics: [\n ...targetDiagnostics,\n {\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticBakeSceneOnly',\n message: 'Static shadow baking runs against the main scene. Prefab stage policies are baked after prefab instances are placed in a scene.',\n },\n ],\n } satisfies EditorAgentBridgeShadowStaticBakeOutput;\n }\n if (!operations.runRenderingAction) {\n return {\n target: resolved.target.target,\n baked: false,\n plan,\n stale: true,\n diagnostics: [\n ...targetDiagnostics,\n {\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticBakeUnavailable',\n message: 'Static shadow bake is unavailable because this editor session does not expose the rendering action pipeline.',\n },\n ],\n } satisfies EditorAgentBridgeShadowStaticBakeOutput;\n }\n const actionResult = await operations.runRenderingAction('bake-static-shadows');\n const bakedSourceNodeIds = readRenderingActionStaticBakeSourceNodeIds(actionResult);\n const targetConfirmed = bakedSourceNodeIds?.includes(casterId) === true;\n const baked = actionResult.ok === true && actionResult.changed === true && targetConfirmed;\n const bakeDiagnostic = createStaticBakeDiagnostic(actionResult, targetConfirmed, bakedSourceNodeIds);\n return {\n target: resolved.target.target,\n baked,\n plan,\n stale: !baked,\n diagnostics: [\n ...targetDiagnostics,\n bakeDiagnostic,\n ],\n } satisfies EditorAgentBridgeShadowStaticBakeOutput;\n },\n invalidateStatic(input) {\n const resolved = resolveShadowTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_STATIC_INVALIDATE,\n state,\n input,\n operations,\n );\n if (!resolved.ok) return resolved.result;\n const targetDiagnostics = createShadowTargetDiagnostics(resolved.target);\n if (resolved.target.kind !== 'scene') {\n return {\n target: resolved.target.target,\n invalidated: false,\n stale: true,\n diagnostics: [\n ...targetDiagnostics,\n {\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticInvalidateSceneOnly',\n message: 'Static shadow invalidation runs against scene instances. Prefab stage policies are invalidated after placement in a scene.',\n },\n ],\n } satisfies EditorAgentBridgeShadowStaticInvalidateOutput;\n }\n const plan = mapShadowPlan(resolveEditorShadowPlan({\n document: resolved.target.document,\n casterId: resolved.target.objectId,\n }));\n if (plan.backend !== 'static-baked') {\n return {\n target: resolved.target.target,\n invalidated: false,\n stale: false,\n diagnostics: [\n ...targetDiagnostics,\n {\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticInvalidateNonStaticTarget',\n message: 'Static shadow invalidation only applies to targets resolved to the static-baked backend.',\n details: { backend: plan.backend, mode: plan.mode },\n },\n ],\n } satisfies EditorAgentBridgeShadowStaticInvalidateOutput;\n }\n if (!operations.invalidateStaticShadowArtifact) {\n return {\n target: resolved.target.target,\n invalidated: false,\n stale: true,\n diagnostics: [\n ...targetDiagnostics,\n {\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticInvalidateUnavailable',\n message: 'Static shadow invalidation is unavailable because this editor session does not expose the shadow preview artifact lifecycle.',\n },\n ],\n } satisfies EditorAgentBridgeShadowStaticInvalidateOutput;\n }\n const invalidated = operations.invalidateStaticShadowArtifact();\n return {\n target: resolved.target.target,\n invalidated,\n stale: true,\n diagnostics: [\n ...targetDiagnostics,\n {\n severity: invalidated ? 'info' : 'warning',\n source: 'editor',\n code: invalidated ? 'shadow.staticInvalidated' : 'shadow.staticInvalidateNoArtifact',\n message: invalidated\n ? 'Static shadow preview artifact was invalidated; run shadow.static.bake to refresh scene artifacts.'\n : 'Static shadow target is static, but no active preview artifact was available to invalidate.',\n details: { backend: plan.backend, mode: plan.mode },\n },\n ],\n } satisfies EditorAgentBridgeShadowStaticInvalidateOutput;\n },\n };\n}\n\nfunction readShadowMapExperimentConfig<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n capabilityId: string,\n): { ok: true; config: ShadowMapExperimentConfig | null } | { ok: false; result: ReturnType<typeof createLocalEditorAgentBridgeFailure> } {\n const value = options.documentAdapter.getShadowMapExperimentConfig?.() ?? null;\n if (value === null) return { ok: true, config: null };\n try {\n assertShadowMapExperimentConfig(value);\n return { ok: true, config: structuredClone(value) };\n } catch (error) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(\n capabilityId,\n error instanceof Error ? error.message : String(error),\n { code: 'shadowMapExperiment.invalidConfig' },\n ),\n };\n }\n}\n\nfunction createShadowMapExperimentConfigOutput(\n config: ShadowMapExperimentConfig | null,\n): EditorAgentBridgeShadowMapExperimentConfigGetOutput {\n return {\n configured: config !== null,\n readonly: true,\n config: config ? structuredClone(config) as unknown as Record<string, unknown> : null,\n qualityProfileIds: config ? Object.keys(config.qualityProfiles).sort() : [],\n behaviorProfileIds: config ? Object.keys(config.behaviorProfiles).sort() : [],\n };\n}\n\nfunction readShadowMapExperimentPlan<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n document: TDocument,\n): ShadowMapExperimentPlan | null {\n try {\n const value = options.documentAdapter?.getShadowMapExperimentPlan?.(document) ?? null;\n if (value === null) return null;\n return createShadowMapExperimentPlanSnapshot(value);\n } catch {\n return null;\n }\n}\n\nfunction readShadowMapExperimentExecutionPlan<TDocument>(\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): ShadowMapExperimentPlan | null {\n if (operations.getShadowMapExperimentExecutionPlan) {\n try {\n const value = operations.getShadowMapExperimentExecutionPlan();\n if (value === null) return null;\n return createShadowMapExperimentPlanSnapshot(value);\n } catch {\n return null;\n }\n }\n return null;\n}\n\nfunction resolveCanonicalShadowMapExperimentPlan<TDocument, TPatch, TAsset>(\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n target: ResolvedShadowTarget<TDocument>,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): EditorAgentBridgeShadowResolvedPlan | null {\n if (target.kind !== 'scene') return null;\n const sourcePlan = readShadowMapExperimentPlan(options, target.rawDocument);\n const shadowMapExperimentEvidence = operations.getShadowPreviewDebugInfo?.()?.shadowMapExperiment ?? null;\n const directExecutionPlan = readShadowMapExperimentExecutionPlan(operations);\n const verifiedExecutionPlan = resolveEvidenceVerifiedShadowMapExperimentPlan(\n directExecutionPlan,\n sourcePlan,\n shadowMapExperimentEvidence,\n );\n const executionPlan = verifiedExecutionPlan;\n const projectionPlan = sourcePlan?.enabled === true && executionPlan?.enabled !== true\n ? sourcePlan\n : executionPlan ?? sourcePlan;\n if (!projectionPlan?.enabled) return null;\n const executionObjects = executionPlan?.enabled\n ? resolveShadowMapExperimentPlanObjectsForGameObject(executionPlan, target.document, target.objectId)\n : [];\n const sourceObjects = sourcePlan?.enabled\n ? resolveShadowMapExperimentPlanObjectsForGameObject(sourcePlan, target.document, target.objectId)\n : [];\n const objects = executionObjects.length > 0 ? executionObjects : sourceObjects;\n const object = objects[0];\n if (!object) return null;\n\n const cast = executionObjects.some(candidate => candidate.cast);\n const receiverIds = cast && executionPlan\n ? resolveShadowMapExperimentAuthoringReceiverIds(executionPlan, target.document, target.objectId)\n : [];\n const diagnostics: EditorAgentBridgeDiagnostic[] = [];\n if (executionObjects.length > 0 && executionPlan) {\n diagnostics.push({\n severity: 'info',\n source: 'editor',\n code: directExecutionPlan ? 'shadow.canonicalExecutionPlan' : 'shadow.canonicalExecutionEvidence',\n message: directExecutionPlan\n ? 'Editor shadow preview is resolved from the Renderer plan that is currently in effect.'\n : 'Editor shadow preview is resolved from the complete Renderer evidence plan that is currently in effect.',\n details: {\n planSchemaVersion: executionPlan.schemaVersion,\n planRevision: executionPlan.revision,\n qualityProfileId: executionPlan.qualityProfileId,\n behaviorProfileId: object.behaviorProfileId,\n updateClass: object.updateClass,\n },\n });\n } else {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.canonicalExecutionPending',\n message: 'The authored Shadow Map plan is not active in Renderer yet, so the target currently casts no preview shadow.',\n details: {\n sourcePlanRevision: sourcePlan?.revision ?? null,\n effectivePlanRevision: executionPlan?.revision ?? null,\n sourcePlanFingerprint: sourcePlan ? createShadowMapExperimentPlanFingerprint(sourcePlan) : null,\n effectivePlanFingerprint: shadowMapExperimentEvidence?.planFingerprint ?? null,\n },\n });\n }\n if (executionObjects.some(candidate => candidate.cast !== executionObjects[0]?.cast)) {\n diagnostics.push({\n severity: 'info',\n source: 'editor',\n code: 'shadow.canonicalTargetMixedExecution',\n message: 'The authored object contains multiple runtime entities with mixed caster state; object-level preview reports active when any entity casts.',\n details: {\n entityIds: executionObjects.map(candidate => candidate.entityId),\n },\n });\n }\n if (sourcePlan && executionPlan && sourcePlan.revision !== executionPlan.revision) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.canonicalExecutionRevisionMismatch',\n message: 'Renderer kept a previous Shadow Map plan after the authored plan changed.',\n details: {\n sourcePlanRevision: sourcePlan.revision,\n effectivePlanRevision: executionPlan.revision,\n },\n });\n }\n for (const diagnostic of projectionPlan.diagnostics) {\n if (diagnostic.entityId && !objects.some(candidate => candidate.entityId === diagnostic.entityId)) continue;\n diagnostics.push({\n severity: diagnostic.severity,\n source: 'runtime',\n code: diagnostic.code,\n message: diagnostic.message,\n ...(diagnostic.details ? { details: structuredClone(diagnostic.details) as EditorAgentBridgeJsonObject } : {}),\n });\n }\n const resolution = resolveShadowMapExperimentResolution(projectionPlan);\n return {\n casterId: target.objectId,\n receiverIds,\n ...(cast && executionPlan ? { lightId: executionPlan.light.entityId } : {}),\n backend: cast ? 'dynamic-map' : 'none',\n mode: cast ? 'dynamic' : 'none',\n quality: resolveShadowMapExperimentQuality(resolution),\n params: {\n opacity: projectionPlan.generator.darkness,\n softness: projectionPlan.generator.filter === 'hard' ? 0 : 0.5,\n bias: projectionPlan.generator.bias,\n normalBias: projectionPlan.generator.normalBias,\n maxDistance: projectionPlan.generator.bounds.far,\n resolution,\n cascadeCount: 1,\n bakeSamples: 1,\n blurKernel: 0,\n },\n diagnostics,\n };\n}\n\nfunction resolveEvidenceVerifiedShadowMapExperimentPlan(\n executionPlan: ShadowMapExperimentPlan | null,\n sourcePlan: ShadowMapExperimentPlan | null,\n evidence: LocalEditorAgentBridgeShadowPreviewDebugInfo['shadowMapExperiment'] | null | undefined,\n): ShadowMapExperimentPlan | null {\n if (executionPlan) return executionPlan;\n if (evidence?.effectivePlan) {\n try {\n const effectivePlan = createShadowMapExperimentPlanSnapshot(evidence.effectivePlan);\n if (\n evidence.planFingerprint\n && evidence.planFingerprint !== createShadowMapExperimentPlanFingerprint(effectivePlan)\n ) return null;\n return effectivePlan;\n } catch {\n return null;\n }\n }\n if (\n sourcePlan\n && evidence?.enabled === true\n && evidence.planFingerprint === createShadowMapExperimentPlanFingerprint(sourcePlan)\n ) {\n return sourcePlan;\n }\n return null;\n}\n\nfunction resolveShadowMapExperimentPlanObjectsForGameObject(\n plan: ShadowMapExperimentPlan,\n document: EditorSceneDocument,\n objectId: string,\n): ShadowMapExperimentPlan['objects'][number][] {\n const runtimeEntityIds = new Set(resolveEditorSceneGameObjectRuntimeEntityIds(document, objectId));\n runtimeEntityIds.add(objectId);\n return plan.objects.filter(candidate => runtimeEntityIds.has(candidate.entityId));\n}\n\nfunction resolveShadowMapExperimentAuthoringReceiverIds(\n plan: ShadowMapExperimentPlan,\n document: EditorSceneDocument,\n casterObjectId: string,\n): string[] {\n const receivingEntityIds = new Set(\n plan.objects.filter(candidate => candidate.receive).map(candidate => candidate.entityId),\n );\n return document.scene.gameObjects\n .filter(candidate => candidate.id !== casterObjectId)\n .filter(candidate => resolveEditorSceneGameObjectRuntimeEntityIds(document, candidate.id)\n .some(entityId => receivingEntityIds.has(entityId)))\n .map(candidate => candidate.id);\n}\n\nfunction resolveShadowMapExperimentQuality(\n resolution: EditorAgentBridgeShadowResolvedPlan['params']['resolution'],\n): EditorAgentBridgeShadowResolvedPlan['quality'] {\n if (resolution <= 512) return 'low';\n if (resolution <= 1024) return 'medium';\n if (resolution <= 2048) return 'high';\n return 'ultra';\n}\n\nfunction resolveShadowMapExperimentResolution(\n plan: ShadowMapExperimentPlan,\n): EditorAgentBridgeShadowResolvedPlan['params']['resolution'] {\n const resolution = Math.max(\n plan.generator.maps.staticResolution,\n plan.generator.maps.dynamicResolution,\n plan.generator.maps.compositeResolution,\n );\n if (resolution <= 512) return 512;\n if (resolution <= 1024) return 1024;\n if (resolution <= 2048) return 2048;\n return 4096;\n}\n\nfunction resolveShadowMapExperimentTarget<TDocument, TPatch>(\n capabilityId: string,\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n input: EditorAgentBridgeShadowMapExperimentPolicyGetInput,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): { ok: true; target: ResolvedShadowMapExperimentTarget<TDocument> } | { ok: false; result: ReturnType<typeof createLocalEditorAgentBridgeFailure> } {\n if (state.mode !== 'editor' || !state.session) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, 'Editor is not in edit mode.', { code: 'editor.notReady' }),\n };\n }\n const sessionState = state.session.getState({ cloneDocuments: false });\n const document = asEditorSceneDocument(sessionState.workingDocument);\n if (!document) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, 'Shadow Map profiles require an editor scene document.', {\n code: 'shadowMapExperiment.unsupportedDocument',\n }),\n };\n }\n if (input.scope === 'scene') {\n if (!hasAgentBridgeSafeSceneScope(operations)) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, 'Scene Shadow Map profiles require the active Scene Hierarchy scope.', {\n code: 'shadowMapExperiment.scopeMismatch',\n }),\n };\n }\n return {\n ok: true,\n target: {\n kind: 'scene',\n target: { scope: 'scene' },\n document,\n rawDocument: sessionState.workingDocument,\n },\n };\n }\n if (input.scope === 'object') {\n const objectId = normalizeAgentBridgeString(input.objectId);\n const gameObject = objectId && isAgentBridgeSafeSceneObjectId(operations, objectId)\n ? findShadowGameObject(document, objectId)\n : null;\n if (!gameObject) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, objectId\n ? `Shadow Map target object not found: ${objectId}`\n : 'objectId is required for object scope.', {\n code: objectId ? 'shadowMapExperiment.targetNotFound' : 'shadowMapExperiment.targetRequired',\n objectId: objectId || undefined,\n }),\n };\n }\n return {\n ok: true,\n target: {\n kind: 'object',\n target: { scope: 'object', objectId },\n document,\n rawDocument: sessionState.workingDocument,\n objectId,\n gameObject,\n },\n };\n }\n if (input.scope !== 'prefab-node') {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, `Unsupported Shadow Map target scope: ${String(input.scope)}`, {\n code: 'shadowMapExperiment.invalidScope',\n }),\n };\n }\n const details = operations.getPrefabStageDetails();\n if (!details) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, 'Open the target Prefab stage before editing a prefab-node profile.', {\n code: 'prefab.stageNotOpen',\n }),\n };\n }\n const requestedAssetId = normalizeAgentBridgeString(input.prefabAssetId);\n if (requestedAssetId && requestedAssetId !== details.stage.assetId && requestedAssetId !== details.stage.browserAssetId) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, `Open Prefab stage does not match ${requestedAssetId}.`, {\n code: 'prefab.stageAssetMismatch',\n details: { requestedAssetId, openAssetId: details.stage.assetId },\n }),\n };\n }\n if (!hasActivePrefabHierarchyScope(operations, details)) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, 'Open Prefab stage does not own the active Hierarchy authority.', {\n code: 'shadowMapExperiment.scopeMismatch',\n details: { prefabAssetId: details.stage.assetId },\n }),\n };\n }\n const prefabAsset = findEditorScenePrefabAsset(document, details.stage.assetId);\n const rootNodeId = readEditorScenePrefabRootNodeId(prefabAsset);\n const safeModel = createAgentBridgeSafePrefabReadModel(\n operations.getHierarchyReadModel(),\n details.nodeDetails,\n );\n const nodeId = resolveSafePrefabNodeAuthoredId(\n safeModel,\n normalizePrefabNodeId(input.nodeId),\n );\n const node = prefabAsset && nodeId ? findEditorScenePrefabNode(prefabAsset, nodeId) : null;\n if (!prefabAsset || !rootNodeId || !nodeId || !node) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, `Prefab node not found: ${nodeId ?? '(none)'}`, {\n code: 'prefab.nodeNotFound',\n details: { prefabAssetId: details.stage.assetId, nodeId },\n }),\n };\n }\n return {\n ok: true,\n target: {\n kind: 'prefab-node',\n target: { scope: 'prefab-node', prefabAssetId: details.stage.assetId, nodeId },\n document,\n rawDocument: sessionState.workingDocument,\n prefabAssetId: details.stage.assetId,\n nodeId,\n rootNodeId,\n prefabAsset,\n node,\n },\n };\n}\n\nfunction validateShadowMapExperimentPolicySetInput(\n input: EditorAgentBridgeShadowMapExperimentPolicySetInput,\n config: ShadowMapExperimentConfig | null,\n): { ok: true } | { ok: false; message: string } {\n const hasQualityProfile = Object.prototype.hasOwnProperty.call(input, 'qualityProfile');\n const hasBehaviorProfile = Object.prototype.hasOwnProperty.call(input, 'behaviorProfile');\n if (!hasQualityProfile && !hasBehaviorProfile) return { ok: false, message: 'At least one profile reference is required.' };\n if (input.scope !== 'scene' && hasQualityProfile) {\n return { ok: false, message: 'qualityProfile is only valid for scene scope.' };\n }\n if (input.qualityProfile !== undefined && input.qualityProfile !== null) {\n if (!config || !Object.prototype.hasOwnProperty.call(config.qualityProfiles, input.qualityProfile)) {\n return { ok: false, message: `Unknown quality profile: ${input.qualityProfile}` };\n }\n }\n if (input.behaviorProfile !== undefined && input.behaviorProfile !== null) {\n if (!config || !Object.prototype.hasOwnProperty.call(config.behaviorProfiles, input.behaviorProfile)) {\n return { ok: false, message: `Unknown behavior profile: ${input.behaviorProfile}` };\n }\n }\n return { ok: true };\n}\n\nfunction createShadowMapExperimentPolicyOutput<TDocument>(\n resolved: ResolvedShadowMapExperimentTarget<TDocument>,\n config: ShadowMapExperimentConfig | null,\n plan: ShadowMapExperimentPlan | null,\n): EditorAgentBridgeShadowMapExperimentPolicyOutput {\n const authored = readAuthoredShadowMapExperimentProfiles(resolved);\n const plannedBehavior = resolved.kind === 'object'\n ? summarizeShadowMapExperimentPlanObjectBehavior(\n plan,\n resolveEditorSceneGameObjectRuntimeEntityIds(resolved.document, resolved.objectId),\n )\n : null;\n const qualityProfileId = resolved.kind === 'object'\n ? plannedBehavior\n ? plan?.qualityProfileId ?? null\n : null\n : plan?.qualityProfileId\n ?? authored.qualityProfile\n ?? resolved.document.scene.shadowMapExperiment?.qualityProfile\n ?? config?.defaultQualityProfile\n ?? null;\n const behaviorProfileId = resolved.kind === 'object'\n ? plannedBehavior?.behaviorProfileId ?? null\n : resolveEffectiveShadowMapExperimentBehaviorProfile(resolved, config, plan);\n const behavior = behaviorProfileId ? config?.behaviorProfiles[behaviorProfileId] : undefined;\n return {\n target: resolved.target,\n authored,\n effective: {\n qualityProfileId,\n behaviorProfileId,\n cast: plannedBehavior ? plannedBehavior.cast : (behavior ? behavior.cast === 'enabled' : null),\n receive: plannedBehavior ? plannedBehavior.receive : (behavior ? behavior.receive === 'enabled' : null),\n updateClass: plannedBehavior\n ? plannedBehavior.updateClass\n : (behavior?.updateClass === 'auto' || !behavior ? null : behavior.updateClass),\n },\n qualityProfileIds: config ? Object.keys(config.qualityProfiles).sort() : [],\n behaviorProfileIds: config ? Object.keys(config.behaviorProfiles).sort() : [],\n };\n}\n\nfunction summarizeShadowMapExperimentPlanObjectBehavior(\n plan: ShadowMapExperimentPlan | null,\n runtimeEntityIds: readonly string[],\n): {\n behaviorProfileId: string | null;\n cast: boolean | null;\n receive: boolean | null;\n updateClass: ShadowMapExperimentPlan['objects'][number]['updateClass'] | null;\n} | null {\n const entityIds = new Set(runtimeEntityIds);\n const candidates = plan?.objects.filter(object => entityIds.has(object.entityId)) ?? [];\n const first = candidates[0];\n if (!first) return null;\n const homogeneous = candidates.every(candidate => (\n candidate.behaviorProfileId === first.behaviorProfileId\n && candidate.cast === first.cast\n && candidate.receive === first.receive\n && candidate.updateClass === first.updateClass\n ));\n if (!homogeneous) {\n return { behaviorProfileId: null, cast: null, receive: null, updateClass: null };\n }\n return {\n behaviorProfileId: first.behaviorProfileId,\n cast: first.cast,\n receive: first.receive,\n updateClass: first.updateClass,\n };\n}\n\nfunction readAuthoredShadowMapExperimentProfiles<TDocument>(\n resolved: ResolvedShadowMapExperimentTarget<TDocument>,\n): { qualityProfile: string | null; behaviorProfile: string | null } {\n if (resolved.kind === 'scene') {\n return {\n qualityProfile: resolved.document.scene.shadowMapExperiment?.qualityProfile ?? null,\n behaviorProfile: resolved.document.scene.shadowMapExperiment?.behaviorProfile ?? null,\n };\n }\n if (resolved.kind === 'object') {\n return { qualityProfile: null, behaviorProfile: resolved.gameObject.shadowMapExperiment?.behaviorProfile ?? null };\n }\n const behaviorProfile = resolved.node.defaults?.shadowMapExperiment?.behaviorProfile;\n return { qualityProfile: null, behaviorProfile: behaviorProfile ?? null };\n}\n\nfunction resolveEffectiveShadowMapExperimentBehaviorProfile<TDocument>(\n resolved: ResolvedShadowMapExperimentTarget<TDocument>,\n config: ShadowMapExperimentConfig | null,\n plan: ShadowMapExperimentPlan | null,\n): string | null {\n if (resolved.kind === 'scene') {\n return resolved.document.scene.shadowMapExperiment?.behaviorProfile ?? config?.defaultBehaviorProfile ?? null;\n }\n if (resolved.kind === 'object') {\n const relation = resolveEditorScenePrefabInstanceRelation(resolved.document, resolved.objectId);\n const modelRenderer = findEditorSceneModelRenderer(resolved.gameObject);\n const sourceAsset = relation.sourceAsset\n ?? (modelRenderer ? resolved.document.assets.find(asset => asset.id === modelRenderer.assetId) : undefined);\n return resolved.gameObject.shadowMapExperiment?.behaviorProfile\n ?? relation.definition?.prefab?.defaults?.shadowMapExperiment?.behaviorProfile\n ?? readAssetShadowMapExperimentBehaviorProfile(sourceAsset)\n ?? resolved.document.scene.shadowMapExperiment?.behaviorProfile\n ?? config?.defaultBehaviorProfile\n ?? null;\n }\n const sourceAsset = resolved.node.kind === 'model' && resolved.node.sourceAssetId\n ? resolved.document.assets.find(asset => asset.id === resolved.node.sourceAssetId)\n : undefined;\n let behaviorProfile = config?.defaultBehaviorProfile ?? null;\n behaviorProfile = resolved.document.scene.shadowMapExperiment?.behaviorProfile ?? behaviorProfile;\n behaviorProfile = readAssetShadowMapExperimentBehaviorProfile(sourceAsset) ?? behaviorProfile;\n behaviorProfile = resolved.prefabAsset.prefab?.defaults?.shadowMapExperiment?.behaviorProfile ?? behaviorProfile;\n const nodes = readEditorScenePrefabNodes(resolved.prefabAsset);\n const byId = new Map(nodes.map(node => [node.id, node]));\n const ancestry: typeof nodes = [];\n let current: (typeof nodes)[number] | undefined = resolved.node;\n while (current) {\n ancestry.unshift(current);\n current = current.parentId ? byId.get(current.parentId) : undefined;\n }\n for (const node of ancestry) {\n behaviorProfile = node.defaults?.shadowMapExperiment?.behaviorProfile ?? behaviorProfile;\n }\n return behaviorProfile;\n}\n\nfunction readAssetShadowMapExperimentBehaviorProfile(asset: unknown): string | null {\n if (!isRecord(asset) || !isRecord(asset.defaults) || !isRecord(asset.defaults.shadowMapExperiment)) return null;\n return normalizeAgentBridgeString(asset.defaults.shadowMapExperiment.behaviorProfile) || null;\n}\n\nfunction setShadowMapExperimentPolicy<TDocument, TPatch, TAsset>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n resolved: ResolvedShadowMapExperimentTarget<TDocument>,\n input: EditorAgentBridgeShadowMapExperimentPolicySetInput,\n config: ShadowMapExperimentConfig | null,\n): EditorAgentBridgeShadowMapExperimentPolicySetOutput | ReturnType<typeof createLocalEditorAgentBridgeFailure> {\n if (!state.session) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_MAP_EXPERIMENT_POLICY_SET,\n 'Editor is not in edit mode.',\n { code: 'editor.notReady' },\n );\n }\n const authored = readAuthoredShadowMapExperimentProfiles(resolved);\n const hasQualityProfile = Object.prototype.hasOwnProperty.call(input, 'qualityProfile');\n const hasBehaviorProfile = Object.prototype.hasOwnProperty.call(input, 'behaviorProfile');\n const qualityUnchanged = !hasQualityProfile || authored.qualityProfile === (input.qualityProfile ?? null);\n const behaviorUnchanged = !hasBehaviorProfile || authored.behaviorProfile === (input.behaviorProfile ?? null);\n if (qualityUnchanged && behaviorUnchanged) {\n return {\n changed: false,\n policy: createShadowMapExperimentPolicyOutput(\n resolved,\n config,\n readShadowMapExperimentPlan(options, resolved.rawDocument),\n ),\n };\n }\n let changed = false;\n if (resolved.kind === 'scene') {\n const patch = options.documentAdapter.createShadowMapExperimentProfilesPatch?.({\n document: resolved.rawDocument,\n ...(hasQualityProfile ? { qualityProfile: input.qualityProfile ?? null } : {}),\n ...(hasBehaviorProfile ? { behaviorProfile: input.behaviorProfile ?? null } : {}),\n });\n if (!patch) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_MAP_EXPERIMENT_POLICY_SET,\n 'The project rendering capability does not expose a scene Shadow Map profile patch.',\n { code: 'shadowMapExperiment.scenePatchUnavailable' },\n );\n }\n const result = state.session.dispatch({\n type: 'document.patch',\n label: patch.label ?? 'Agent set scene Shadow Map profiles',\n patch: patch.patch,\n targetId: patch.changedId,\n ...operations.withProjectionImpact(operations.resolveProjectionImpact(\n patch,\n operations.createReprojectProjectionImpact(patch.reprojectIds ?? []),\n )),\n });\n changed = result.documentChanged;\n } else if (resolved.kind === 'object') {\n const patch = options.documentAdapter.createSerializedPropertyPatch({\n document: resolved.rawDocument,\n targetId: resolved.objectId,\n path: 'shadowMapExperiment.behaviorProfile',\n value: input.behaviorProfile ?? null,\n commitMode: 'change',\n persistence: 'document',\n source: 'custom',\n });\n if (!patch) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_MAP_EXPERIMENT_POLICY_SET,\n `Unable to create Shadow Map profile patch for ${resolved.objectId}.`,\n { code: 'shadowMapExperiment.objectPatchUnavailable', objectId: resolved.objectId },\n );\n }\n const result = state.session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Agent set Shadow Map behavior profile ${resolved.objectId}`,\n patch: patch.patch,\n targetId: resolved.objectId,\n ...operations.withProjectionImpact(operations.resolveProjectionImpact(\n patch,\n operations.createReprojectProjectionImpact(patch.reprojectIds ?? [resolved.objectId]),\n )),\n });\n changed = result.documentChanged;\n } else {\n changed = operations.runPrefabStageAssetAction({\n actionId: 'prefab.node.setShadowMapExperiment',\n targetPrefabAssetId: resolved.prefabAssetId,\n nodeId: resolved.nodeId,\n value: input.behaviorProfile == null ? null : { behaviorProfile: input.behaviorProfile },\n });\n if (!changed) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_MAP_EXPERIMENT_POLICY_SET,\n `Shadow Map profile action did not change prefab node: ${resolved.nodeId}`,\n { code: 'shadowMapExperiment.prefabPatchUnavailable', details: { prefabAssetId: resolved.prefabAssetId, nodeId: resolved.nodeId } },\n );\n }\n }\n if (changed) {\n const nextDocument = state.session.getState({ cloneDocuments: false }).workingDocument;\n state.summary = operations.summarizeDocument(nextDocument, state.session.getSource());\n state.status = `Agent set Shadow Map profiles for ${resolved.target.scope}`;\n operations.refreshShadowPreview?.();\n renderUi();\n }\n const nextResolved = resolveShadowMapExperimentTarget(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_MAP_EXPERIMENT_POLICY_GET,\n state,\n resolved.target,\n operations,\n );\n if (!nextResolved.ok) return nextResolved.result;\n return {\n changed,\n policy: createShadowMapExperimentPolicyOutput(\n nextResolved.target,\n config,\n readShadowMapExperimentPlan(options, nextResolved.target.rawDocument),\n ),\n };\n}\n\nfunction createShadowPolicyGetOutput<TDocument>(\n resolved: ResolvedShadowTarget<TDocument>,\n canonicalPlan: EditorAgentBridgeShadowResolvedPlan | null = null,\n): EditorAgentBridgeShadowPolicyGetOutput {\n if (resolved.kind === 'scene') {\n const effective = resolveEditorSceneGameObjectShadowSettings(resolved.document, resolved.gameObject);\n return {\n target: resolved.target,\n ...(resolved.gameObject.shadow ? { policy: structuredClone(resolved.gameObject.shadow) as EditorAgentBridgeShadowSettings } : {}),\n effectivePolicy: (effective.settings ? structuredClone(effective.settings) : {}) as EditorAgentBridgeShadowSettings,\n plan: canonicalPlan ?? mapShadowPlan(resolveEditorShadowPlan({\n document: resolved.document,\n casterId: resolved.objectId,\n })),\n diagnostics: [\n ...mapShadowDiagnostics(effective.diagnostics),\n ...createShadowTargetDiagnostics(resolved),\n ],\n };\n }\n const policy = readPrefabNodeShadowPolicy(resolved.node);\n return {\n target: resolved.target,\n ...(policy ? { policy: structuredClone(policy) as EditorAgentBridgeShadowSettings } : {}),\n effectivePolicy: (policy ? structuredClone(policy) : {}) as EditorAgentBridgeShadowSettings,\n plan: mapShadowPlan(resolveEditorShadowPlan({\n document: resolved.document,\n casterId: resolved.nodeId,\n })),\n diagnostics: createShadowTargetDiagnostics(resolved),\n };\n}\n\nfunction createShadowDebugInspectOutput<TDocument, TPatch>(\n resolved: ResolvedShadowTarget<TDocument>,\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: { receiverIds?: readonly unknown[]; projectionContext?: ShadowProjectionContext } = {},\n extraOptions?: {\n shadowPreviewDebugInfo?: LocalEditorAgentBridgeShadowPreviewDebugInfo | null;\n canonicalPlan?: EditorAgentBridgeShadowResolvedPlan | null;\n },\n): EditorAgentBridgeShadowDebugInspectOutput {\n const casterId = getResolvedTargetCasterId(resolved);\n const projectionContext = options.projectionContext ?? createIdentityShadowProjectionContext();\n const effectivePolicy = getResolvedTargetShadowPolicy(resolved);\n const receiverIds = normalizeAgentBridgeIdList(options.receiverIds ?? []);\n const planInput: StrictEditorShadowResolvePlanInput = {\n document: resolved.document,\n casterId,\n explicitReceiverIds: receiverIds.length > 0 ? receiverIds : undefined,\n strictExplicitReceivers: receiverIds.length > 0,\n };\n const runtimeReceiverMeshCount = extraOptions?.shadowPreviewDebugInfo?.shadowMapExperiment?.receiverMeshCount ?? 0;\n const reconciledRuntimeReceiverMeshCount = receiverIds.length === 0 ? runtimeReceiverMeshCount : 0;\n const plan = extraOptions?.canonicalPlan ?? mapShadowPlan(\n resolveEditorShadowPlan(planInput),\n reconciledRuntimeReceiverMeshCount,\n );\n const allReceivers = mapShadowReceivers(\n collectEditorShadowReceiverCandidates({\n document: resolved.document,\n casterId,\n explicitReceiverIds: receiverIds.length > 0\n ? receiverIds\n : plan.receiverIds.length > 0\n ? plan.receiverIds\n : undefined,\n }),\n state,\n { casterId, lightId: plan.lightId, projectionContext },\n );\n const resolvedReceiverIds = new Set(plan.receiverIds);\n const receivers = receiverIds.length > 0 || extraOptions?.canonicalPlan\n ? allReceivers.filter(receiver => resolvedReceiverIds.has(receiver.receiverId))\n : allReceivers;\n const authoredPolicy = getResolvedTargetAuthoredPolicy(resolved);\n const light = createShadowLightSummary(resolved.document, plan.lightId);\n const runtimeEvidence = createShadowDebugRuntimeEvidence(\n plan,\n receivers,\n extraOptions?.shadowPreviewDebugInfo,\n createShadowRuntimeEvidenceCasterIds(resolved, casterId, projectionContext),\n );\n const diagnostics = [\n ...createShadowTargetDiagnostics(resolved),\n ...plan.diagnostics,\n ...(runtimeEvidence.diagnostics ?? []),\n ];\n return {\n target: resolved.target,\n caster: createShadowDebugTargetSummary(resolved, state, projectionContext),\n ...(authoredPolicy ? { policy: structuredClone(authoredPolicy) as EditorAgentBridgeShadowSettings } : {}),\n effectivePolicy: (effectivePolicy ? structuredClone(effectivePolicy) : {}) as EditorAgentBridgeShadowSettings,\n plan,\n ...(light ? { light } : {}),\n receivers,\n footprint: createShadowFootprintSummary(\n plan,\n receivers,\n state,\n projectionContext,\n light,\n reconciledRuntimeReceiverMeshCount,\n ),\n runtimeEvidence,\n ...(diagnostics.length ? { diagnostics } : {}),\n };\n}\n\nfunction enterShadowDebugContext<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n resolved: ResolvedShadowTarget<TDocument>,\n input: EditorAgentBridgeShadowDebugContextEnterInput,\n canonicalPlan: EditorAgentBridgeShadowResolvedPlan | null = null,\n): EditorAgentBridgeShadowDebugContextEnterOutput | ReturnType<typeof createLocalEditorAgentBridgeFailure> {\n const projectionContext = createShadowProjectionContext(resolved, operations);\n const receiverIds = normalizeAgentBridgeIdList(input.receiverIds ?? []);\n const initialInspect = createShadowDebugInspectOutput(resolved, state, {\n receiverIds,\n projectionContext,\n }, {\n shadowPreviewDebugInfo: operations.getShadowPreviewDebugInfo?.() ?? null,\n canonicalPlan,\n });\n const targetId = getResolvedTargetCasterId(resolved);\n const logicalKeepIds = new Set<string>([targetId]);\n const protectedReceiverIds = initialInspect.plan.receiverIds.length > 0\n ? initialInspect.plan.receiverIds\n : initialInspect.receivers.map(receiver => receiver.receiverId);\n for (const receiverId of protectedReceiverIds) logicalKeepIds.add(receiverId);\n if (initialInspect.light?.lightId) logicalKeepIds.add(initialInspect.light.lightId);\n const ambientLightIds = input.includeAmbientLights === false\n ? []\n : collectShadowDebugAmbientLightIds(resolved.document, initialInspect.light?.lightId);\n for (const ambientId of ambientLightIds) logicalKeepIds.add(ambientId);\n\n const projectionKeepIds = new Set<string>();\n for (const id of logicalKeepIds) {\n const projectionId = projectionContext.resolveProjectionId(id);\n projectionKeepIds.add(projectionId);\n for (const parentId of state.projection?.getProjectionParentIds?.(projectionId) ?? []) {\n projectionKeepIds.add(parentId);\n }\n }\n const objectIds = state.projection?.getProjectedNodeIds?.() ?? [...projectionKeepIds];\n if (objectIds.length === 0) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_CONTEXT_ENTER,\n 'Viewport projection is unavailable or has no projected objects for Shadow Debug Context.',\n { code: 'viewport.projectionUnavailable' },\n );\n }\n const nextOverrides: Record<string, boolean> = {};\n for (const objectId of objectIds) nextOverrides[objectId] = projectionKeepIds.has(objectId);\n const previous = JSON.stringify(state.previewVisibility);\n state.previewVisibility.overrides = nextOverrides;\n state.previewVisibility.isolatedObjectIds = [...projectionKeepIds];\n state.previewVisibility.protectedReceiverIds = [...new Set(protectedReceiverIds.flatMap(id => [\n id,\n projectionContext.resolveProjectionId(id),\n ]))];\n state.previewVisibility.protectedObjectIds = [...new Set([...state.previewVisibility.protectedReceiverIds, ...ambientLightIds.flatMap(id => [\n id,\n projectionContext.resolveProjectionId(id),\n ])])];\n state.previewVisibility.reason = normalizeAgentBridgeString(input.reason)\n || `Shadow Debug Context for ${targetId}`;\n state.projection?.clearPreviewVisibilityOverrides?.();\n const entries = state.projection?.setPreviewVisibilityOverrides?.(nextOverrides) ?? [];\n operations.refreshShadowPreview?.();\n const inspect = createShadowDebugInspectOutput(resolved, state, {\n receiverIds,\n projectionContext,\n }, {\n shadowPreviewDebugInfo: operations.getShadowPreviewDebugInfo?.() ?? null,\n canonicalPlan,\n });\n const overlayItems = input.showOverlay === false\n ? []\n : createShadowDebugOverlayItems(inspect, {\n ...input,\n showCasterBounds: true,\n showReceiverBounds: true,\n showLightDirection: true,\n showFootprint: true,\n showArtifactBounds: true,\n });\n const overlayIds = overlayItems.length > 0\n ? operations.setShadowDebugOverlay?.(overlayItems)\n ?? state.projection?.setShadowDebugOverlay?.(overlayItems)\n ?? overlayItems.map(item => item.id)\n : [];\n const visibilityMeasure = createShadowDebugVisibilityMeasureOutput(inspect, input);\n const hiddenObjectIds = objectIds.filter(objectId => !projectionKeepIds.has(objectId));\n const diagnostics: EditorAgentBridgeDiagnostic[] = [\n ...(inspect.diagnostics ?? []),\n ...(!protectedReceiverIds.length ? [{\n severity: 'warning' as const,\n source: 'editor' as const,\n code: 'shadow.debugContextNoReceiver',\n message: 'Shadow Debug Context could not resolve a receiver to protect; screenshots may still be ambiguous.',\n details: { targetId },\n }] : []),\n ...(!initialInspect.light?.lightId && initialInspect.plan.backend !== 'none' ? [{\n severity: 'warning' as const,\n source: 'editor' as const,\n code: 'shadow.debugContextNoLight',\n message: 'Shadow Debug Context could not resolve a shadow light to preserve.',\n details: { backend: initialInspect.plan.backend, targetId },\n }] : []),\n ...(!ambientLightIds.length && input.includeAmbientLights !== false ? [{\n severity: 'info' as const,\n source: 'editor' as const,\n code: 'shadow.debugContextNoAmbientLight',\n message: 'No ambient/environment light was found to preserve for visual debugging.',\n }] : []),\n ];\n operations.requestSceneFrame('agent-shadow-debug-context-enter');\n renderUi();\n return {\n entered: previous !== JSON.stringify(state.previewVisibility) || overlayIds.length > 0,\n target: inspect.target,\n keptObjectIds: [...logicalKeepIds],\n hiddenObjectIds,\n protectedReceiverIds,\n lightIds: initialInspect.light?.lightId ? [initialInspect.light.lightId] : [],\n ambientLightIds,\n overlayIds,\n snapshot: createShadowDebugContextVisibilitySnapshot(state, entries, diagnostics),\n inspect,\n visibilityMeasure,\n ...(diagnostics.length ? { diagnostics } : {}),\n };\n}\n\nfunction clearShadowDebugContext<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): EditorAgentBridgeShadowDebugContextClearOutput {\n const previousCount = Object.keys(state.previewVisibility.overrides).length;\n const hadIsolation = state.previewVisibility.isolatedObjectIds.length > 0;\n const hadProtection = (state.previewVisibility.protectedObjectIds?.length ?? 0) > 0\n || (state.previewVisibility.protectedReceiverIds?.length ?? 0) > 0;\n state.previewVisibility.overrides = {};\n state.previewVisibility.isolatedObjectIds = [];\n delete state.previewVisibility.protectedObjectIds;\n delete state.previewVisibility.protectedReceiverIds;\n delete state.previewVisibility.reason;\n state.projection?.clearPreviewVisibilityOverrides?.();\n operations.refreshShadowPreview?.();\n const overlayCleared = operations.clearShadowDebugOverlay?.()\n ?? state.projection?.clearShadowDebugOverlay?.()\n ?? false;\n const visibilityCleared = previousCount > 0 || hadIsolation || hadProtection;\n operations.requestSceneFrame('agent-shadow-debug-context-clear');\n renderUi();\n return {\n cleared: visibilityCleared || overlayCleared,\n overlayCleared,\n visibilityCleared,\n };\n}\n\nfunction createShadowDebugContextVisibilitySnapshot<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n entries: readonly { nodeId: string; authoredActive: boolean; effectiveVisible: boolean }[],\n diagnostics: readonly EditorAgentBridgeDiagnostic[],\n): EditorAgentBridgeShadowDebugContextEnterOutput['snapshot'] {\n const entryById = new Map(entries.map(entry => [entry.nodeId, entry]));\n const objectIds = new Set<string>([\n ...Object.keys(state.previewVisibility.overrides),\n ...entries.map(entry => entry.nodeId),\n ...state.previewVisibility.isolatedObjectIds,\n ]);\n const isolatedIds = new Set(state.previewVisibility.isolatedObjectIds);\n return {\n isolated: isolatedIds.size > 0,\n isolatedObjectIds: [...isolatedIds],\n entries: [...objectIds].sort().map((objectId) => {\n const entry = entryById.get(objectId);\n const overrideVisible = state.previewVisibility.overrides[objectId];\n const authoredVisible = entry?.authoredActive ?? true;\n return {\n objectId,\n authoredVisible,\n previewVisible: entry?.effectiveVisible ?? (authoredVisible && overrideVisible !== false),\n ...(typeof overrideVisible === 'boolean' ? { overrideVisible } : {}),\n isolated: isolatedIds.has(objectId),\n ...(state.previewVisibility.protectedReceiverIds?.includes(objectId) ? {\n diagnostics: [{\n severity: 'info' as const,\n source: 'editor' as const,\n code: 'shadow.receiverProtectedInDebugContext',\n message: 'This receiver is protected by the active Shadow Debug Context and should remain visible for screenshot validation.',\n details: { objectId },\n }],\n } : {}),\n };\n }),\n ...(state.previewVisibility.reason ? { reason: state.previewVisibility.reason } : {}),\n ...(diagnostics.length ? { diagnostics: [...diagnostics] } : {}),\n };\n}\n\nfunction collectShadowDebugAmbientLightIds(document: EditorSceneDocument, shadowLightId?: string): string[] {\n const ids: string[] = [];\n const seen = new Set<string>();\n const gameObjects = Array.isArray(document.scene?.gameObjects) ? document.scene.gameObjects : [];\n for (const gameObject of gameObjects) {\n if (!isRecord(gameObject)) continue;\n const id = typeof gameObject.id === 'string' ? gameObject.id : '';\n if (!id || id === shadowLightId || seen.has(id)) continue;\n const name = typeof gameObject.name === 'string' ? gameObject.name : '';\n const light = isRecord(gameObject.light) ? gameObject.light : null;\n const lightType = typeof light?.type === 'string' ? light.type.toLowerCase() : '';\n const haystack = `${id} ${name}`.toLowerCase();\n const isAmbient = lightType === 'hemispheric'\n || lightType === 'ambient'\n || lightType === 'environment'\n || haystack.includes('environment_light')\n || haystack.includes('environment light')\n || haystack.includes('ambient');\n if (!isAmbient) continue;\n seen.add(id);\n ids.push(id);\n }\n return ids;\n}\n\nfunction createShadowDebugOverlayItems(\n inspect: EditorAgentBridgeShadowDebugInspectOutput,\n input: EditorAgentBridgeShadowDebugOverlaySetInput,\n): LocalEditorAgentBridgeShadowDebugOverlayItem[] {\n const items: LocalEditorAgentBridgeShadowDebugOverlayItem[] = [];\n const flags = readShadowDebugOverlayFlags(input);\n const receiverIds = new Set(normalizeAgentBridgeIdList(input.receiverIds ?? []));\n const targetId = inspect.caster?.objectId ?? inspect.caster?.nodeId ?? 'target';\n const casterBounds = createOverlayBounds(inspect.caster?.bounds);\n if (flags.showCasterBounds && casterBounds) {\n items.push({\n id: `shadow-debug:caster:${targetId}`,\n kind: 'caster-bounds',\n bounds: casterBounds,\n });\n }\n const receivers = receiverIds.size\n ? inspect.receivers.filter(receiver => receiverIds.has(receiver.receiverId))\n : inspect.receivers;\n if (flags.showReceiverBounds) {\n for (const receiver of receivers) {\n const bounds = createOverlayBounds(receiver.bounds);\n if (!bounds) continue;\n items.push({\n id: `shadow-debug:receiver:${receiver.receiverId}`,\n kind: 'receiver-bounds',\n bounds,\n });\n items.push({\n id: `shadow-debug:receiver-surface:${receiver.receiverId}`,\n kind: 'receiver-surface',\n bounds,\n });\n }\n }\n if (flags.showFootprint && inspect.footprint.center && inspect.footprint.size) {\n items.push({\n id: `shadow-debug:footprint:${inspect.footprint.receiverId ?? targetId}`,\n kind: 'footprint',\n center: { ...inspect.footprint.center },\n size: {\n x: Math.max(inspect.footprint.size.x, 0.01),\n y: Math.max(inspect.footprint.size.y, 0.015),\n z: Math.max(inspect.footprint.size.z, 0.01),\n },\n });\n }\n if (flags.showLightDirection) {\n const lightDirection = inspect.light?.direction ?? inspect.footprint.normal;\n const center = inspect.footprint.center ?? casterBounds?.center;\n const size = inspect.footprint.size ?? casterBounds?.size ?? { x: 2, y: 2, z: 2 };\n if (center && lightDirection) {\n items.push({\n id: `shadow-debug:light:${inspect.light?.lightId ?? targetId}`,\n kind: 'light-direction',\n center: { ...center },\n size: { ...size },\n direction: { ...lightDirection },\n });\n }\n }\n if (flags.showArtifactBounds && inspect.footprint.kind === 'artifact') {\n const artifactBounds = inspect.footprint.center && inspect.footprint.size\n ? createOverlayBoundsFromCenterSize(inspect.footprint.center, inspect.footprint.size)\n : undefined;\n if (artifactBounds) {\n items.push({\n id: `shadow-debug:artifact:${targetId}`,\n kind: 'artifact-bounds',\n bounds: artifactBounds,\n });\n }\n }\n return items;\n}\n\nfunction createShadowDebugVisibilityMeasureOutput(\n inspect: EditorAgentBridgeShadowDebugInspectOutput,\n input: EditorAgentBridgeShadowDebugVisibilityMeasureInput,\n): EditorAgentBridgeShadowDebugVisibilityMeasureOutput {\n const diagnostics: EditorAgentBridgeDiagnostic[] = [\n ...(inspect.diagnostics ?? []),\n {\n severity: 'info',\n source: 'editor',\n code: 'shadow.pixelReadbackUnavailable',\n message: 'Pixel readback is not available in this editor bridge session, so shadow visibility is measured structurally from policy, receivers, footprint, and runtime evidence.',\n },\n ];\n const requestedReceiverIds = normalizeAgentBridgeIdList(input.receiverIds ?? []);\n const renderableCount = inspect.runtimeEvidence.renderableShadowPrimitiveCount ?? 0;\n let visibleScore = 0;\n let coverage = 0;\n const opacity = clamp01(readNumber(inspect.plan.params.opacity, 0.42));\n const casterInactive = inspect.caster?.active === false || inspect.caster?.visible === false;\n const lightRequired = inspect.plan.backend === 'dynamic-map' || inspect.plan.backend === 'static-baked' || inspect.plan.backend === 'projected';\n const lightMissing = lightRequired && !inspect.light?.lightId;\n const missingCasterBounds = !inspect.caster?.bounds;\n const plannedReceivers = inspect.receivers.filter(receiver => inspect.plan.receiverIds.includes(receiver.receiverId));\n const visiblePlannedReceivers = plannedReceivers.filter(receiver => isShadowReceiverUsableForVisibility(receiver));\n const selectedReceiver = selectShadowFootprintReceiver(inspect.plan, plannedReceivers);\n const missingReceiverBounds = inspect.plan.receiverIds.length > 0\n && inspect.plan.receiverIds.some(receiverId => !plannedReceivers.some(receiver => receiver.receiverId === receiverId && !!receiver.bounds));\n const hiddenReceiverIds = plannedReceivers\n .filter(receiver => receiver.active === false || receiver.visible === false)\n .map(receiver => receiver.receiverId);\n const ignoredHiddenReceiverIds = hiddenReceiverIds.filter(receiverId => receiverId !== selectedReceiver?.receiverId);\n if (inspect.plan.backend === 'none' || inspect.plan.mode === 'none') {\n diagnostics.push({\n severity: 'info',\n source: 'editor',\n code: 'shadow.visibilityPolicyNone',\n message: 'Resolved Shadow V2 policy is none, so no visible shadow is expected.',\n details: { backend: inspect.plan.backend, mode: inspect.plan.mode },\n });\n } else if (opacity <= 0.001) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityOpacityZero',\n message: 'Resolved Shadow V2 opacity is zero, so no visible shadow is expected.',\n details: { opacity },\n });\n } else if (casterInactive) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityCasterInactive',\n message: 'The resolved caster is inactive or hidden, so no visible shadow is expected.',\n details: { active: inspect.caster?.active, visible: inspect.caster?.visible },\n });\n } else if (lightMissing) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityLightMissing',\n message: 'The resolved shadow backend requires a light, but no usable shadow light was resolved.',\n details: { backend: inspect.plan.backend, lightId: inspect.plan.lightId },\n });\n } else if (missingCasterBounds || missingReceiverBounds) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityBoundsUnavailable',\n message: 'Caster or receiver projection bounds are unavailable, so structural visibility cannot confirm a visible shadow.',\n details: { missingCasterBounds, missingReceiverBounds, receiverIds: inspect.plan.receiverIds },\n });\n } else if (visiblePlannedReceivers.length === 0 && hiddenReceiverIds.length > 0) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityReceiverInactive',\n message: 'One or more resolved receivers are inactive or hidden in the current preview, so structural visibility cannot confirm a visible shadow.',\n details: { receiverIds: hiddenReceiverIds },\n });\n } else if (inspect.receivers.length === 0 || inspect.plan.receiverIds.length === 0) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityNoReceiver',\n message: 'Resolved Shadow V2 plan has no receiver, so a visible shadow is unlikely.',\n details: { receiverIds: inspect.plan.receiverIds, requestedReceiverIds },\n });\n } else if (renderableCount <= 0) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityNoRuntimePrimitive',\n message: 'Resolved Shadow V2 plan has receivers but no renderable shadow primitive evidence.',\n details: { backend: inspect.plan.backend, renderableShadowPrimitiveCount: renderableCount },\n });\n } else {\n if (ignoredHiddenReceiverIds.length > 0) {\n diagnostics.push({\n severity: 'info',\n source: 'editor',\n code: 'shadow.visibilityIgnoredHiddenReceiver',\n message: 'Some resolved receivers are hidden in the current preview; structural visibility used the best visible receiver instead.',\n details: {\n receiverIds: ignoredHiddenReceiverIds,\n selectedReceiverId: selectedReceiver?.receiverId,\n },\n });\n }\n const footprintConfidence = clamp01(readNumber(inspect.footprint.confidence, 0.5));\n const receiverCoverage = clamp01((visiblePlannedReceivers.length > 0 ? visiblePlannedReceivers : plannedReceivers).reduce((max, receiver) => {\n const overlap = receiver.suitability?.overlap;\n return Math.max(max, typeof overlap === 'number' ? overlap : 0);\n }, 0));\n if (receiverCoverage <= 0.01) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityReceiverCoverageTooLow',\n message: 'Resolved receivers have no meaningful X/Z overlap with the caster, so structural visibility cannot confirm a visible shadow.',\n details: { coverage: receiverCoverage, receiverIds: inspect.plan.receiverIds },\n });\n } else {\n const backendFactor = inspect.plan.backend === 'dynamic-map'\n ? 0.9\n : inspect.plan.backend === 'static-baked'\n ? inspect.plan.stale === true ? 0.35 : 0.85\n : inspect.plan.backend === 'blob' || inspect.plan.backend === 'projected'\n ? 0.75\n : 0.5;\n coverage = clamp01(Math.max(receiverCoverage, footprintConfidence * 0.65));\n visibleScore = clamp01((0.2 + opacity * 0.35 + coverage * 0.3 + backendFactor * 0.15) * (renderableCount > 0 ? 1 : 0));\n if (inspect.plan.stale === true || inspect.runtimeEvidence.artifactStale === true) {\n visibleScore = Math.min(visibleScore, 0.35);\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.visibilityStaticStale',\n message: 'Static shadow evidence is stale; treat visibility as low confidence until rebaked.',\n });\n }\n }\n }\n return {\n target: inspect.target,\n visible: visibleScore >= 0.45,\n visibleScore,\n coverage,\n renderableShadowPrimitiveCount: renderableCount,\n measurementKind: 'structural',\n diagnostics,\n };\n}\n\nfunction isShadowReceiverUsableForVisibility(receiver: EditorAgentBridgeShadowReceiverCandidate): boolean {\n return receiver.active !== false && receiver.visible !== false && !!receiver.bounds;\n}\n\nfunction readNumber(value: unknown, fallback: number): number {\n return typeof value === 'number' && Number.isFinite(value) ? value : fallback;\n}\n\nfunction clamp01(value: number): number {\n return Math.max(0, Math.min(1, value));\n}\n\nfunction readShadowDebugOverlayFlags(input: EditorAgentBridgeShadowDebugOverlaySetInput): {\n showCasterBounds: boolean;\n showReceiverBounds: boolean;\n showLightDirection: boolean;\n showFootprint: boolean;\n showArtifactBounds: boolean;\n} {\n const explicit = input.showCasterBounds !== undefined\n || input.showReceiverBounds !== undefined\n || input.showLightDirection !== undefined\n || input.showFootprint !== undefined\n || input.showArtifactBounds !== undefined;\n return {\n showCasterBounds: explicit ? input.showCasterBounds === true : true,\n showReceiverBounds: explicit ? input.showReceiverBounds === true : true,\n showLightDirection: explicit ? input.showLightDirection === true : true,\n showFootprint: explicit ? input.showFootprint === true : true,\n showArtifactBounds: explicit ? input.showArtifactBounds === true : true,\n };\n}\n\nfunction createOverlayBounds(bounds: EditorAgentBridgeBounds | undefined): LocalEditorAgentBridgeShadowDebugOverlayItem['bounds'] | undefined {\n if (!bounds?.center || !bounds.size) return undefined;\n const min = bounds.min ?? {\n x: bounds.center.x - bounds.size.x / 2,\n y: bounds.center.y - bounds.size.y / 2,\n z: bounds.center.z - bounds.size.z / 2,\n };\n const max = bounds.max ?? {\n x: bounds.center.x + bounds.size.x / 2,\n y: bounds.center.y + bounds.size.y / 2,\n z: bounds.center.z + bounds.size.z / 2,\n };\n return {\n min: { ...min },\n max: { ...max },\n size: { ...bounds.size },\n center: { ...bounds.center },\n };\n}\n\nfunction createOverlayBoundsFromCenterSize(\n center: { x: number; y: number; z: number },\n size: { x: number; y: number; z: number },\n): LocalEditorAgentBridgeShadowDebugOverlayItem['bounds'] {\n return {\n center: { ...center },\n size: { ...size },\n min: {\n x: center.x - size.x / 2,\n y: center.y - size.y / 2,\n z: center.z - size.z / 2,\n },\n max: {\n x: center.x + size.x / 2,\n y: center.y + size.y / 2,\n z: center.z + size.z / 2,\n },\n };\n}\n\nfunction setSceneShadowPolicy<TDocument, TPatch, TAsset>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n resolved: Extract<ResolvedShadowTarget<TDocument>, { kind: 'scene' }>,\n policy: EditorShadowSettings | undefined,\n): EditorAgentBridgeShadowPolicySetOutput | ReturnType<typeof createLocalEditorAgentBridgeFailure> {\n if (!state.session) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_SET,\n 'Editor is not in edit mode.',\n { code: 'editor.notReady', objectId: resolved.objectId },\n );\n }\n let changed = false;\n let workingDocument = resolved.rawDocument;\n for (const { path, value } of createShadowPolicyFieldPatches(policy)) {\n const patch = options.documentAdapter.createSerializedPropertyPatch({\n document: workingDocument,\n targetId: resolved.objectId,\n path,\n value,\n commitMode: 'change',\n persistence: 'document',\n source: 'custom',\n });\n if (!patch) continue;\n const result = state.session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Agent set shadow ${path}`,\n patch: patch.patch,\n targetId: resolved.objectId,\n ...operations.withProjectionImpact(operations.resolveProjectionImpact(\n patch,\n operations.createReprojectProjectionImpact(patch.reprojectIds ?? [patch.changedId ?? resolved.objectId]),\n )),\n });\n workingDocument = result.workingDocument;\n if (result.documentChanged) changed = true;\n }\n if (!changed) {\n const output = createShadowPolicyGetOutput(resolved);\n return {\n target: output.target,\n changed: false,\n ...(output.policy ? { policy: output.policy } : {}),\n effectivePolicy: output.effectivePolicy,\n plan: output.plan,\n diagnostics: output.diagnostics,\n };\n }\n operations.reprojectProjectionForChangedIds(workingDocument, [resolved.objectId]);\n state.summary = operations.summarizeDocument(workingDocument, state.session.getSource());\n state.status = `Agent set shadow policy ${resolved.objectId}`;\n renderUi();\n const nextDocument = asEditorSceneDocument(workingDocument);\n const nextObject = nextDocument ? findShadowGameObject(nextDocument, resolved.objectId) : null;\n if (!nextDocument || !nextObject) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_SET,\n `Shadow target disappeared after patch: ${resolved.objectId}`,\n { code: 'shadow.targetMissing', objectId: resolved.objectId },\n );\n }\n const output = createShadowPolicyGetOutput({\n kind: 'scene',\n target: resolved.target,\n document: nextDocument,\n rawDocument: workingDocument,\n objectId: resolved.objectId,\n gameObject: nextObject,\n });\n return {\n target: output.target,\n changed: true,\n ...(output.policy ? { policy: output.policy } : {}),\n effectivePolicy: output.effectivePolicy,\n plan: output.plan,\n diagnostics: output.diagnostics,\n };\n}\n\nfunction setPrefabStageShadowPolicy<TDocument>(\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n resolved: Extract<ResolvedShadowTarget<TDocument>, { kind: 'prefab-stage' }>,\n policy: EditorShadowSettings | undefined,\n): EditorAgentBridgeShadowPolicySetOutput | ReturnType<typeof createLocalEditorAgentBridgeFailure> {\n const changed = resolved.nodeId === resolved.rootNodeId\n ? setPrefabRootShadowPolicy(operations, resolved.details, policy)\n : operations.runPrefabStageAssetAction({\n actionId: 'prefab.node.setShadow',\n targetPrefabAssetId: resolved.details.stage.assetId,\n nodeId: resolved.nodeId,\n value: policy ?? null,\n });\n if (!changed) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_SET,\n `Shadow policy action did not change prefab node: ${resolved.nodeId}`,\n { code: 'shadow.policyUnchanged', details: { assetId: resolved.details.stage.assetId, nodeId: resolved.nodeId } },\n );\n }\n renderUi();\n const nextDetails = operations.getPrefabStageDetails() ?? resolved.details;\n const nextResolved = resolvePrefabShadowTargetFromDetails(nextDetails, {\n nodeId: resolved.nodeId,\n assetId: resolved.details.stage.assetId,\n }, operations);\n const output = createShadowPolicyGetOutput(nextResolved ?? resolved);\n return {\n target: output.target,\n changed: true,\n ...(output.policy ? { policy: output.policy } : {}),\n effectivePolicy: output.effectivePolicy,\n plan: output.plan,\n diagnostics: output.diagnostics,\n };\n}\n\nfunction setPrefabRootShadowPolicy<TDocument>(\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n details: LocalEditorAgentBridgePrefabStageDetails<TDocument>,\n policy: EditorShadowSettings | undefined,\n): boolean {\n let changed = false;\n for (const { path, value } of createShadowPolicyFieldPatches(policy)) {\n const patched = operations.runPrefabStageAssetAction({\n actionId: 'asset.edit-prefab-field',\n assetId: details.stage.assetId,\n browserAssetId: details.stage.browserAssetId,\n assetKind: 'prefab',\n targetPrefabAssetId: details.stage.assetId,\n fieldPath: `prefab.defaults.${path}`,\n value,\n });\n if (patched) changed = true;\n }\n return changed;\n}\n\nfunction createShadowProjectionContext<TDocument>(\n resolved: ResolvedShadowTarget<TDocument>,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): ShadowProjectionContext {\n if (resolved.kind !== 'prefab-stage') return createIdentityShadowProjectionContext();\n return {\n resolveProjectionId: targetId => operations.resolvePrefabStageProjectionNodeId?.(targetId) ?? targetId,\n };\n}\n\nfunction createIdentityShadowProjectionContext(): ShadowProjectionContext {\n return {\n resolveProjectionId: targetId => targetId,\n };\n}\n\nfunction resolveShadowTarget<TDocument, TPatch>(\n capabilityId: string,\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n input: EditorAgentBridgeShadowTarget | EditorAgentBridgeShadowReceiversListInput,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): { ok: true; target: ResolvedShadowTarget<TDocument> } | { ok: false; result: ReturnType<typeof createLocalEditorAgentBridgeFailure> } {\n if (state.mode !== 'editor' || !state.session) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, 'Editor is not in edit mode.', { code: 'editor.notReady' }),\n };\n }\n const sessionState = state.session.getState({ cloneDocuments: false });\n const document = asEditorSceneDocument(sessionState.workingDocument);\n const objectId = normalizeAgentBridgeString(input.objectId);\n if (objectId) {\n if (!document) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, 'Shadow capabilities require an editor scene document.', {\n code: 'shadow.unsupportedDocument',\n details: { objectId },\n }),\n };\n }\n if (!isAgentBridgeSafeSceneObjectId(operations, objectId)) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, `Shadow target object is unavailable in the safe Scene Hierarchy projection: ${objectId}`, {\n code: 'shadow.targetNotFound',\n objectId,\n }),\n };\n }\n const gameObject = findShadowGameObject(document, objectId);\n if (!gameObject) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, `Shadow target object not found: ${objectId}`, {\n code: 'shadow.targetNotFound',\n objectId,\n }),\n };\n }\n return {\n ok: true,\n target: {\n kind: 'scene',\n target: { objectId },\n document,\n rawDocument: sessionState.workingDocument,\n objectId,\n gameObject,\n },\n };\n }\n const details = operations.getPrefabStageDetails();\n if (details) {\n if (!hasActivePrefabHierarchyScope(operations, details)) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, 'Open Prefab stage does not own the active Hierarchy authority.', {\n code: 'shadow.scopeMismatch',\n details: { prefabAssetId: details.stage.assetId },\n }),\n };\n }\n const prefabTarget = resolvePrefabShadowTargetFromDetails(details, input, operations);\n if (prefabTarget) return { ok: true, target: prefabTarget };\n }\n const activeId = normalizeAgentBridgeString(getAgentBridgeSafeSceneSelection(operations).activeId);\n if (activeId && document) {\n const gameObject = findShadowGameObject(document, activeId);\n if (gameObject) {\n return {\n ok: true,\n target: {\n kind: 'scene',\n target: { objectId: activeId },\n document,\n rawDocument: sessionState.workingDocument,\n objectId: activeId,\n gameObject,\n },\n };\n }\n }\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(capabilityId, 'Shadow target is required. Provide objectId, or open a Prefab stage and provide nodeId/assetId.', {\n code: 'shadow.targetRequired',\n details: { objectId: input.objectId, nodeId: input.nodeId, assetId: 'assetId' in input ? input.assetId : undefined },\n }),\n };\n}\n\nfunction resolvePrefabShadowTargetFromDetails<TDocument>(\n details: LocalEditorAgentBridgePrefabStageDetails<TDocument>,\n input: EditorAgentBridgeShadowTarget | EditorAgentBridgeShadowReceiversListInput,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): Extract<ResolvedShadowTarget<TDocument>, { kind: 'prefab-stage' }> | null {\n const requestedAssetId = 'assetId' in input ? normalizeAgentBridgeString(input.assetId) : '';\n if (requestedAssetId && requestedAssetId !== details.stage.assetId && requestedAssetId !== details.stage.browserAssetId) return null;\n const model = operations.getHierarchyReadModel();\n if (!hasActivePrefabHierarchyScope(operations, details, model)) return null;\n const safeModel = createAgentBridgeSafePrefabReadModel(model, details.nodeDetails);\n const nodes = listPrefabShadowNodes(safeModel);\n const nodeId = resolveSafePrefabNodeAuthoredId(\n safeModel,\n normalizePrefabNodeId(input.nodeId),\n );\n const node = nodes.find(candidate => candidate.id === nodeId) ?? null;\n if (!node) return null;\n const rootNodeId = safeModel.nodes.find(candidate => candidate.role === 'root')?.nodeId\n ?? safeModel.nodes.find(candidate => candidate.parentNodeId === null)?.nodeId\n ?? node.id;\n const document = createPrefabStageShadowDocument(details, nodes);\n return {\n kind: 'prefab-stage',\n target: { assetId: details.stage.assetId, nodeId: node.id },\n details,\n nodeId: node.id,\n rootNodeId,\n node,\n document,\n };\n}\n\nfunction resolveSafePrefabNodeAuthoredId(\n safeModel: LocalEditorAgentBridgeSafePrefabReadModel,\n requestedNodeId: string,\n): string | null {\n if (requestedNodeId) {\n return safeModel.nodes.find(node => (\n node.nodeId === requestedNodeId || node.rowId === requestedNodeId\n ))?.nodeId ?? null;\n }\n if (safeModel.activeNodeId) return safeModel.activeNodeId;\n return safeModel.nodes.find(node => node.role === 'root')?.nodeId\n ?? safeModel.nodes.find(node => node.parentNodeId === null)?.nodeId\n ?? null;\n}\n\nfunction hasActivePrefabHierarchyScope<TDocument>(\n operations: Pick<LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>, 'getHierarchyReadModel'>,\n details: LocalEditorAgentBridgePrefabStageDetails<TDocument>,\n model = operations.getHierarchyReadModel(),\n): boolean {\n return model.snapshot.scopeType === 'prefab-stage'\n && model.snapshot.scopeKey === `prefab-stage:${details.stage.assetId}`;\n}\n\nfunction createPrefabStageShadowDocument<TDocument>(\n details: LocalEditorAgentBridgePrefabStageDetails<TDocument>,\n nodes: readonly PrefabShadowNode[],\n): EditorSceneDocument {\n return {\n version: 1,\n schemaVersion: 1,\n assets: [],\n scene: {\n gameObjects: nodes.map((node) => ({\n id: node.id,\n name: node.label,\n parentId: node.parentId ?? undefined,\n active: readBoolean(node.defaults?.active, true),\n kind: node.kind === 'primitive' ? 'primitive' : 'transform',\n ...(node.defaults?.shadow ? { shadow: structuredClone(node.defaults.shadow) as EditorShadowSettings } : {}),\n ...(node.primitive ? { primitive: structuredClone(node.primitive) as any } : {}),\n ...(node.light ? { light: structuredClone(node.light) as any } : {}),\n components: [],\n })),\n },\n metadata: {\n prefabStageAssetId: details.stage.assetId,\n },\n } as unknown as EditorSceneDocument;\n}\n\nfunction listPrefabShadowNodes(\n safeModel: LocalEditorAgentBridgeSafePrefabReadModel,\n): PrefabShadowNode[] {\n return safeModel.nodes.map(node => ({\n id: node.nodeId,\n label: node.label,\n kind: node.details?.kind ?? node.role ?? 'group',\n parentId: node.parentNodeId,\n ...(isRecord(node.details?.defaults) ? { defaults: structuredClone(node.details.defaults) } : {}),\n ...(isRecord(node.details?.primitive) ? { primitive: structuredClone(node.details.primitive) } : {}),\n ...(isRecord(node.details?.light) ? { light: structuredClone(node.details.light) } : {}),\n }));\n}\n\nfunction createShadowPolicyFieldPatches(policy: EditorShadowSettings | undefined): Array<{ path: ShadowPolicyFieldPath; value: unknown }> {\n const record = (policy ?? {}) as Record<string, any>;\n return SHADOW_POLICY_FIELDS.map(path => ({\n path,\n value: readShadowPolicyFieldValue(record, path) ?? null,\n }));\n}\n\nfunction readShadowPolicyFieldValue(policy: Record<string, any>, path: ShadowPolicyFieldPath): unknown {\n if (path === 'shadow.cast') return policy.cast;\n if (path === 'shadow.receive') return policy.receive;\n if (path === 'shadow.mode') return policy.mode;\n if (path === 'shadow.quality') return policy.quality;\n if (path === 'shadow.light.mode') return policy.light?.mode;\n if (path === 'shadow.light.lightId') return policy.light?.lightId;\n const param = path.slice('shadow.params.'.length) as keyof NonNullable<EditorShadowSettings['params']>;\n return policy.params?.[param];\n}\n\nfunction normalizeShadowPolicy(value: unknown): { ok: true; settings?: EditorShadowSettings } | { ok: false; message: string } {\n if (!isRecord(value)) return { ok: false, message: 'shadow policy must be an object.' };\n if (Object.keys(value).length === 0) return { ok: true, settings: undefined };\n try {\n assertEditorShadowSettingsContract(value, '$.policy');\n } catch (error) {\n return { ok: false, message: error instanceof Error ? error.message : String(error) };\n }\n const settings = readEditorShadowSettings(value);\n if (!settings) return { ok: false, message: 'shadow policy did not contain any valid Shadow V2 fields.' };\n return { ok: true, settings };\n}\n\nfunction readPrefabNodeShadowPolicy(node: PrefabShadowNode): EditorShadowSettings | undefined {\n return readEditorShadowSettings(node.defaults?.shadow);\n}\n\nfunction createRenderingActionDiagnosticDetails(\n result: {\n ok: boolean;\n changed: boolean;\n rendered: boolean;\n status?: string;\n statusTone?: string;\n statusDetails?: string;\n details?: Record<string, unknown>;\n error?: string;\n },\n): EditorAgentBridgeJsonObject {\n return {\n ok: result.ok,\n changed: result.changed,\n rendered: result.rendered,\n ...(result.status ? { status: result.status } : {}),\n ...(result.statusTone ? { statusTone: result.statusTone } : {}),\n ...(result.statusDetails ? { statusDetails: result.statusDetails } : {}),\n ...(isRecord(result.details) ? { actionDetails: result.details as EditorAgentBridgeJsonObject } : {}),\n ...(result.error ? { error: result.error } : {}),\n };\n}\n\nfunction createStaticBakeDiagnostic(\n result: {\n ok: boolean;\n changed: boolean;\n rendered: boolean;\n status?: string;\n statusTone?: string;\n statusDetails?: string;\n details?: Record<string, unknown>;\n error?: string;\n },\n targetConfirmed: boolean,\n sourceNodeIds: readonly string[] | null,\n): EditorAgentBridgeDiagnostic {\n if (result.ok === true && result.changed === true && targetConfirmed) {\n return {\n severity: 'info',\n source: 'editor',\n code: 'shadow.staticBakeCompleted',\n message: 'Static shadow bake rendering action completed and included the requested caster.',\n details: createRenderingActionDiagnosticDetails(result),\n };\n }\n if (result.ok === true && result.changed === true && sourceNodeIds !== null) {\n return {\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticBakeTargetNotFound',\n message: 'Static shadow bake produced an artifact, but the requested caster was not included in the baked source nodes.',\n details: createRenderingActionDiagnosticDetails(result),\n };\n }\n if (result.ok === true && result.changed === true) {\n return {\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticBakeTargetUnknown',\n message: 'Static shadow bake produced an artifact, but the rendering action did not report target source nodes.',\n details: createRenderingActionDiagnosticDetails(result),\n };\n }\n return {\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticBakeNoChange',\n message: result.ok === false\n ? 'Static shadow bake rendering action did not complete successfully.'\n : 'Static shadow bake rendering action completed without producing a changed artifact.',\n details: createRenderingActionDiagnosticDetails(result),\n };\n}\n\nfunction readRenderingActionStaticBakeSourceNodeIds(result: { details?: Record<string, unknown> }): string[] | null {\n if (!isRecord(result.details)) return null;\n const details = result.details;\n if (!Object.prototype.hasOwnProperty.call(details, 'sourceNodeIds')) return null;\n return normalizeAgentBridgeIdList(readRenderingActionStringList(details.sourceNodeIds));\n}\n\nfunction readRenderingActionStringList(value: unknown): string[] {\n return Array.isArray(value) ? value.filter((item): item is string => typeof item === 'string') : [];\n}\n\nfunction getResolvedTargetShadowPolicy<TDocument>(target: ResolvedShadowTarget<TDocument>): EditorShadowSettings | undefined {\n if (target.kind === 'scene') {\n return resolveEditorSceneGameObjectShadowSettings(target.document, target.gameObject).settings;\n }\n return readPrefabNodeShadowPolicy(target.node);\n}\n\nfunction getResolvedTargetAuthoredPolicy<TDocument>(target: ResolvedShadowTarget<TDocument>): EditorShadowSettings | undefined {\n return target.kind === 'scene'\n ? readEditorShadowSettings(target.gameObject.shadow)\n : readPrefabNodeShadowPolicy(target.node);\n}\n\nfunction createShadowDebugRuntimeEvidence(\n plan: EditorAgentBridgeShadowResolvedPlan,\n receivers: readonly EditorAgentBridgeShadowReceiverCandidate[],\n shadowPreviewDebugInfo: LocalEditorAgentBridgeShadowPreviewDebugInfo | null | undefined,\n casterIds: ReadonlySet<string>,\n): EditorAgentBridgeShadowRuntimeEvidence {\n const diagnostics: EditorAgentBridgeDiagnostic[] = [];\n if (plan.backend === 'none') {\n diagnostics.push({\n severity: 'info',\n source: 'editor',\n code: 'shadow.runtimeBackendNone',\n message: 'Resolved backend is none, so no runtime shadow primitive is expected.',\n });\n }\n const experimentReceiverMeshCount = shadowPreviewDebugInfo?.shadowMapExperiment?.receiverMeshCount ?? 0;\n if (plan.backend !== 'none' && receivers.length === 0 && experimentReceiverMeshCount === 0) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.runtimeNoReceivers',\n message: 'Resolved shadow backend requires receivers, but no receiver candidates are available.',\n });\n }\n if (plan.backend === 'static-baked') {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.staticArtifactEvidenceUnavailable',\n message: 'Static-baked shadow visibility requires a baked artifact; this editor bridge session does not expose artifact presence evidence to shadow.debug.visibilityMeasure.',\n });\n }\n return {\n backend: plan.backend,\n renderableShadowPrimitiveCount: plan.backend === 'none' || plan.backend === 'static-baked'\n ? 0\n : receivers.filter(receiver => receiver.active !== false && receiver.visible !== false).length,\n casterRuntimeObjectCount: plan.backend === 'none' ? 0 : 1,\n receiverRuntimeObjectCount: Math.max(receivers.length, experimentReceiverMeshCount),\n ...(shadowPreviewDebugInfo?.shadowMapExperiment\n ? {\n shadowMapExperiment: {\n ...shadowPreviewDebugInfo.shadowMapExperiment,\n mapResolutions: shadowPreviewDebugInfo.shadowMapExperiment.mapResolutions\n ? { ...shadowPreviewDebugInfo.shadowMapExperiment.mapResolutions }\n : null,\n configuredMapResolutions: shadowPreviewDebugInfo.shadowMapExperiment.configuredMapResolutions\n ? { ...shadowPreviewDebugInfo.shadowMapExperiment.configuredMapResolutions }\n : null,\n diagnosticThresholds: shadowPreviewDebugInfo.shadowMapExperiment.diagnosticThresholds\n ? { ...shadowPreviewDebugInfo.shadowMapExperiment.diagnosticThresholds }\n : null,\n activity: {\n ...shadowPreviewDebugInfo.shadowMapExperiment.activity,\n activeActivityKindCounts: { ...shadowPreviewDebugInfo.shadowMapExperiment.activity.activeActivityKindCounts },\n pendingDirtyReasons: [...shadowPreviewDebugInfo.shadowMapExperiment.activity.pendingDirtyReasons],\n untrackedDynamicCasterEntityIds: [...shadowPreviewDebugInfo.shadowMapExperiment.activity.untrackedDynamicCasterEntityIds],\n sources: shadowPreviewDebugInfo.shadowMapExperiment.activity.sources.map(entry => structuredClone(entry)),\n },\n runtime: {\n ...shadowPreviewDebugInfo.shadowMapExperiment.runtime,\n registrations: shadowPreviewDebugInfo.shadowMapExperiment.runtime.registrations.map(entry => ({\n ...entry,\n renderableIds: [...entry.renderableIds],\n activitySourceIds: [...entry.activitySourceIds],\n })),\n },\n lastRefreshReasons: [...shadowPreviewDebugInfo.shadowMapExperiment.lastRefreshReasons],\n depth: shadowPreviewDebugInfo.shadowMapExperiment.depth\n ? {\n ...shadowPreviewDebugInfo.shadowMapExperiment.depth,\n gpuCapability: { ...shadowPreviewDebugInfo.shadowMapExperiment.depth.gpuCapability },\n static: {\n ...shadowPreviewDebugInfo.shadowMapExperiment.depth.static,\n lastRefreshReasons: [...shadowPreviewDebugInfo.shadowMapExperiment.depth.static.lastRefreshReasons],\n },\n dynamic: {\n ...shadowPreviewDebugInfo.shadowMapExperiment.depth.dynamic,\n lastRefreshReasons: [...shadowPreviewDebugInfo.shadowMapExperiment.depth.dynamic.lastRefreshReasons],\n },\n }\n : null,\n culling: {\n ...shadowPreviewDebugInfo.shadowMapExperiment.culling,\n authoredCenter: shadowPreviewDebugInfo.shadowMapExperiment.culling.authoredCenter\n ? [...shadowPreviewDebugInfo.shadowMapExperiment.culling.authoredCenter] as [number, number, number]\n : shadowPreviewDebugInfo.shadowMapExperiment.culling.authoredCenter,\n effectiveCenter: shadowPreviewDebugInfo.shadowMapExperiment.culling.effectiveCenter\n ? [...shadowPreviewDebugInfo.shadowMapExperiment.culling.effectiveCenter] as [number, number, number]\n : shadowPreviewDebugInfo.shadowMapExperiment.culling.effectiveCenter,\n authoredExtent: shadowPreviewDebugInfo.shadowMapExperiment.culling.authoredExtent\n ? [...shadowPreviewDebugInfo.shadowMapExperiment.culling.authoredExtent] as [number, number, number]\n : shadowPreviewDebugInfo.shadowMapExperiment.culling.authoredExtent,\n effectiveExtent: shadowPreviewDebugInfo.shadowMapExperiment.culling.effectiveExtent\n ? [...shadowPreviewDebugInfo.shadowMapExperiment.culling.effectiveExtent] as [number, number, number]\n : shadowPreviewDebugInfo.shadowMapExperiment.culling.effectiveExtent,\n anchor: shadowPreviewDebugInfo.shadowMapExperiment.culling.anchor\n ? [...shadowPreviewDebugInfo.shadowMapExperiment.culling.anchor] as [number, number, number]\n : shadowPreviewDebugInfo.shadowMapExperiment.culling.anchor,\n coverage: shadowPreviewDebugInfo.shadowMapExperiment.culling.coverage\n ? {\n min: [...shadowPreviewDebugInfo.shadowMapExperiment.culling.coverage.min] as [number, number, number],\n max: [...shadowPreviewDebugInfo.shadowMapExperiment.culling.coverage.max] as [number, number, number],\n }\n : null,\n },\n worldUnitsPerTexel: shadowPreviewDebugInfo.shadowMapExperiment.worldUnitsPerTexel\n ? [...shadowPreviewDebugInfo.shadowMapExperiment.worldUnitsPerTexel] as [number, number]\n : null,\n worldUnitsPerTexelByMap: shadowPreviewDebugInfo.shadowMapExperiment.worldUnitsPerTexelByMap\n ? {\n static: [...shadowPreviewDebugInfo.shadowMapExperiment.worldUnitsPerTexelByMap.static] as [number, number],\n dynamic: [...shadowPreviewDebugInfo.shadowMapExperiment.worldUnitsPerTexelByMap.dynamic] as [number, number],\n composite: [...shadowPreviewDebugInfo.shadowMapExperiment.worldUnitsPerTexelByMap.composite] as [number, number],\n }\n : null,\n registry: structuredClone(shadowPreviewDebugInfo.shadowMapExperiment.registry),\n diagnostics: shadowPreviewDebugInfo.shadowMapExperiment.diagnostics.map(entry => ({ ...entry })),\n },\n }\n : {}),\n ...createPlanarShadowRuntimeEvidence(shadowPreviewDebugInfo, casterIds),\n ...(plan.stale === true ? { artifactStale: true } : {}),\n ...(diagnostics.length ? { diagnostics } : {}),\n };\n}\n\nfunction createPlanarShadowRuntimeEvidence(\n shadowPreviewDebugInfo: LocalEditorAgentBridgeShadowPreviewDebugInfo | null | undefined,\n casterIds: ReadonlySet<string>,\n): { planar?: EditorAgentBridgeShadowRuntimeEvidence['planar'] } {\n const planar = shadowPreviewDebugInfo?.planar;\n if (!planar) return {};\n const matchingCasters = planar.casters.filter(caster => isPlanarShadowCasterEvidenceForTarget(\n collectPlanarShadowCasterSourceNodeIds(caster),\n casterIds,\n ));\n const casters = matchingCasters;\n if (casters.length === 0) return {};\n const fallbackReasons = uniqueStrings(casters.flatMap(caster => caster.fallbackReasons ?? []));\n const alphaCutoutChannels = uniqueStrings(casters.flatMap(caster => caster.alphaCutoutChannels ?? []))\n .filter((channel): channel is 'alpha' | 'luminance' | 'red' => channel === 'alpha' || channel === 'luminance' || channel === 'red');\n const alphaCutoutUvSets = uniqueNumbers(casters.flatMap(caster => caster.alphaCutoutUvSets ?? []));\n const alphaCutoutLevels = uniqueNumbers(casters.flatMap(caster => caster.alphaCutoutLevels ?? []));\n const instancedBatchIds = uniqueStrings(casters.flatMap(caster => caster.instancedBatchIds ?? []));\n const instancedBatchNames = uniqueStrings(casters.flatMap(caster => caster.instancedBatchNames ?? []));\n const batchMeshCount = instancedBatchIds.length > 0 ? instancedBatchIds.length : instancedBatchNames.length;\n const instancingFallbackReasons = uniqueStrings(casters.flatMap(caster => caster.instancingFallbackReasons ?? []));\n const independentProjectedMeshCount = casters.reduce(\n (sum, caster) => sum + (caster.independentProjectedMeshCount ?? caster.projectedMeshCount),\n 0,\n );\n const strategy = summarizePlanarShadowDebugStrategy(casters);\n return {\n planar: {\n ...(strategy ? { strategy } : {}),\n sourceMeshCount: casters.length,\n projectedMeshCount: independentProjectedMeshCount + batchMeshCount,\n convexHullMeshCount: casters.reduce((sum, caster) => sum + caster.convexHullMeshCount, 0),\n alphaCutoutMeshCount: casters.reduce((sum, caster) => sum + caster.alphaCutoutMeshCount, 0),\n instancedCasterCount: casters.reduce((sum, caster) => sum + (caster.instancedCasterCount ?? 0), 0),\n batchMeshCount,\n independentProjectedMeshCount,\n visibleInstanceCount: casters.reduce((sum, caster) => sum + (caster.visibleInstanceCount ?? 0), 0),\n ...(instancedBatchIds.length ? { instancedBatchIds } : {}),\n ...(instancedBatchNames.length ? { instancedBatchNames } : {}),\n ...(alphaCutoutChannels.length ? { alphaCutoutChannels } : {}),\n ...(alphaCutoutUvSets.length ? { alphaCutoutUvSets } : {}),\n ...(alphaCutoutLevels.length ? { alphaCutoutLevels } : {}),\n ...(fallbackReasons.length ? { fallbackReasons } : {}),\n ...(instancingFallbackReasons.length ? { instancingFallbackReasons } : {}),\n casters: casters.map(caster => ({\n sourceName: caster.sourceName,\n ...(caster.sourceNodeId ? { sourceNodeId: caster.sourceNodeId } : {}),\n ...(caster.sourceNodeIds?.length ? { sourceNodeIds: [...caster.sourceNodeIds] } : {}),\n ...(caster.sourceMeshNames?.length ? { sourceMeshNames: [...caster.sourceMeshNames] } : {}),\n shadowName: caster.shadowName,\n strategy: caster.strategy,\n hasSkeleton: caster.hasSkeleton,\n projectedMeshCount: caster.projectedMeshCount,\n convexHullMeshCount: caster.convexHullMeshCount,\n alphaCutoutMeshCount: caster.alphaCutoutMeshCount,\n ...(typeof caster.instancedCasterCount === 'number' ? { instancedCasterCount: caster.instancedCasterCount } : {}),\n ...(typeof caster.batchMeshCount === 'number' ? { batchMeshCount: caster.batchMeshCount } : {}),\n ...(caster.instancedBatchIds?.length ? { instancedBatchIds: [...caster.instancedBatchIds] } : {}),\n ...(caster.instancedBatchNames?.length ? { instancedBatchNames: [...caster.instancedBatchNames] } : {}),\n ...(typeof caster.independentProjectedMeshCount === 'number' ? { independentProjectedMeshCount: caster.independentProjectedMeshCount } : {}),\n ...(typeof caster.visibleInstanceCount === 'number' ? { visibleInstanceCount: caster.visibleInstanceCount } : {}),\n ...(caster.alphaCutoutChannels?.length ? { alphaCutoutChannels: [...caster.alphaCutoutChannels] } : {}),\n ...(caster.fallbackReasons?.length ? { fallbackReasons: [...caster.fallbackReasons] } : {}),\n ...(caster.instancingFallbackReasons?.length ? { instancingFallbackReasons: [...caster.instancingFallbackReasons] } : {}),\n })),\n },\n };\n}\n\nfunction createShadowRuntimeEvidenceCasterIds<TDocument>(\n resolved: ResolvedShadowTarget<TDocument>,\n casterId: string,\n projectionContext: ShadowProjectionContext,\n): Set<string> {\n const authoringIds = new Set<string>([casterId]);\n addShadowRuntimeEvidenceSceneDescendants(authoringIds, resolved.document, casterId);\n const ids = new Set<string>();\n for (const id of authoringIds) {\n ids.add(id);\n ids.add(projectionContext.resolveProjectionId(id));\n }\n return ids;\n}\n\nfunction addShadowRuntimeEvidenceSceneDescendants(\n ids: Set<string>,\n document: EditorSceneDocument,\n parentId: string,\n): void {\n for (const gameObject of document.scene.gameObjects) {\n const candidateParentId = readShadowSceneGameObjectParentId(gameObject);\n if (candidateParentId !== parentId || ids.has(gameObject.id)) continue;\n ids.add(gameObject.id);\n addShadowRuntimeEvidenceSceneDescendants(ids, document, gameObject.id);\n }\n}\n\nfunction readShadowSceneGameObjectParentId(gameObject: EditorSceneGameObject): string | null {\n const parentId = (gameObject as { parentId?: unknown }).parentId;\n return typeof parentId === 'string' && parentId.length > 0 ? parentId : null;\n}\n\nfunction collectPlanarShadowCasterSourceNodeIds(\n caster: NonNullable<LocalEditorAgentBridgeShadowPreviewDebugInfo['planar']>['casters'][number],\n): string[] {\n return uniqueStrings([\n ...(caster.sourceNodeId ? [caster.sourceNodeId] : []),\n ...(caster.sourceNodeIds ?? []),\n ]);\n}\n\nfunction isPlanarShadowCasterEvidenceForTarget(\n sourceNodeIds: readonly string[],\n casterIds: ReadonlySet<string>,\n): boolean {\n for (const sourceNodeId of sourceNodeIds) {\n if (casterIds.has(sourceNodeId)) return true;\n for (const casterId of casterIds) {\n if (sourceNodeId.startsWith(`${casterId}::`)) return true;\n }\n }\n return false;\n}\n\nfunction summarizePlanarShadowDebugStrategy(\n casters: readonly NonNullable<LocalEditorAgentBridgeShadowPreviewDebugInfo['planar']>['casters'][number][],\n): 'auto' | 'projected-mesh' | 'convex-hull' | undefined {\n if (casters.length === 0) return undefined;\n const hasProjected = casters.some(caster => caster.projectedMeshCount > 0);\n const hasHull = casters.some(caster => caster.convexHullMeshCount > 0);\n if (hasProjected && hasHull) return 'auto';\n if (hasProjected) return 'projected-mesh';\n if (hasHull) return 'convex-hull';\n return undefined;\n}\n\nfunction uniqueStrings(values: readonly string[]): string[] {\n return [...new Set(values.filter(value => value.length > 0))];\n}\n\nfunction uniqueNumbers(values: readonly number[]): number[] {\n return [...new Set(values.filter(value => Number.isFinite(value)))];\n}\n\nfunction mapShadowPlan(\n plan: EditorShadowResolvedPlan,\n runtimeReceiverMeshCount = 0,\n): EditorAgentBridgeShadowResolvedPlan {\n const diagnostics = mapShadowDiagnostics(plan.diagnostics);\n if (plan.backend !== 'none' && plan.receiverIds.length === 0 && runtimeReceiverMeshCount > 0) {\n const retainedDiagnostics = diagnostics.filter(diagnostic => diagnostic.code !== 'shadow.receiverNotFound');\n retainedDiagnostics.push(createRuntimeReceiversBoundDiagnostic(runtimeReceiverMeshCount));\n diagnostics.splice(0, diagnostics.length, ...retainedDiagnostics);\n }\n return {\n casterId: plan.casterId,\n receiverIds: [...plan.receiverIds],\n ...(plan.lightId ? { lightId: plan.lightId } : {}),\n backend: plan.backend,\n mode: plan.mode,\n quality: plan.quality,\n params: { ...plan.params },\n ...(plan.stale === true ? { stale: true } : {}),\n diagnostics,\n };\n}\n\nfunction mapShadowReceivers<TDocument, TPatch>(\n receivers: readonly EditorShadowReceiverCandidate[],\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n context: { casterId?: string; lightId?: string; projectionContext?: ShadowProjectionContext } = {},\n): EditorAgentBridgeShadowReceiverCandidate[] {\n const projectionContext = context.projectionContext ?? createIdentityShadowProjectionContext();\n const casterBounds = context.casterId\n ? readShadowProjectionBounds(state, context.casterId, projectionContext)\n : undefined;\n return receivers.map((receiver) => {\n const bounds = readShadowProjectionBounds(state, receiver.receiverId, projectionContext);\n const diagnostics = mapShadowDiagnostics(receiver.diagnostics ?? []);\n if (!bounds) {\n diagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.receiverBoundsUnavailable',\n message: `Projection bounds are unavailable for receiver \"${receiver.receiverId}\".`,\n details: { receiverId: receiver.receiverId },\n });\n }\n const authoredActive = receiver.active !== false;\n const authoredVisible = authoredActive && receiver.visible !== false;\n const effectiveVisible = readShadowPreviewEffectiveVisible(state, receiver.receiverId, projectionContext, authoredVisible);\n const suitability = createShadowReceiverSuitability(receiver, casterBounds, bounds, context.lightId);\n return {\n receiverId: receiver.receiverId,\n source: receiver.source,\n score: receiver.score,\n ...(bounds ? { bounds, boundsCenter: bounds.center } : {}),\n active: authoredActive,\n visible: effectiveVisible,\n ...(receiver.receive ? { receive: receiver.receive as EditorAgentBridgeShadowReceiverCandidate['receive'] } : {}),\n ...(suitability ? { suitability } : {}),\n ...(diagnostics.length ? { diagnostics } : {}),\n };\n });\n}\n\nfunction createShadowReceiverSuitability(\n receiver: EditorShadowReceiverCandidate,\n casterBounds: AgentBridgeResolvedBounds | undefined,\n receiverBounds: AgentBridgeResolvedBounds | undefined,\n lightId: string | undefined,\n): NonNullable<EditorAgentBridgeShadowReceiverCandidate['suitability']> | undefined {\n const reasons = [...(receiver.suitability?.reasons ?? [])];\n if (receiverBounds) reasons.push('receiver bounds available');\n else reasons.push('receiver bounds unavailable');\n if (casterBounds) reasons.push('caster bounds available');\n if (lightId) reasons.push(`light ${lightId}`);\n const distance = casterBounds && receiverBounds ? distance3(casterBounds.center, receiverBounds.center) : undefined;\n const overlap = casterBounds && receiverBounds ? overlapRatioXZ(casterBounds, receiverBounds) : undefined;\n return {\n score: receiver.suitability?.score ?? receiver.score,\n ...(overlap !== undefined ? { overlap } : {}),\n ...(distance !== undefined ? { distance } : {}),\n ...(receiver.suitability?.material ? { material: receiver.suitability.material } : {}),\n ...(lightId ? { light: lightId } : receiver.suitability?.light ? { light: receiver.suitability.light } : {}),\n reasons,\n };\n}\n\nfunction createShadowDebugTargetSummary<TDocument, TPatch>(\n target: ResolvedShadowTarget<TDocument>,\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n projectionContext: ShadowProjectionContext = createIdentityShadowProjectionContext(),\n): EditorAgentBridgeShadowDebugTargetSummary {\n const id = getResolvedTargetCasterId(target);\n const projectionId = projectionContext.resolveProjectionId(id);\n const bounds = readShadowProjectionBounds(state, id, projectionContext);\n const transform = editorTransformSnapshotToAgentTransform(state.projection?.readNodeTransform(projectionId));\n if (target.kind === 'scene') {\n const active = target.gameObject.active !== false;\n return {\n objectId: target.objectId,\n label: target.gameObject.name ?? target.objectId,\n kind: target.gameObject.kind ?? 'transform',\n active,\n visible: readShadowPreviewEffectiveVisible(state, id, projectionContext, active),\n ...(bounds ? { bounds } : {}),\n ...(transform ? { transform } : {}),\n ...(!bounds ? {\n diagnostics: [{\n severity: 'warning',\n source: 'editor',\n code: 'shadow.casterBoundsUnavailable',\n message: `Projection bounds are unavailable for caster \"${target.objectId}\".`,\n }],\n } : {}),\n };\n }\n return {\n nodeId: target.nodeId,\n label: target.node.label,\n kind: target.node.kind,\n active: readBoolean(target.node.defaults?.active, true),\n visible: readShadowPreviewEffectiveVisible(\n state,\n id,\n projectionContext,\n readBoolean(target.node.defaults?.active, true),\n ),\n ...(bounds ? { bounds } : {}),\n ...(transform ? { transform } : {}),\n ...(!bounds ? {\n diagnostics: [{\n severity: 'warning',\n source: 'editor',\n code: 'shadow.casterBoundsUnavailable',\n message: `Projection bounds are unavailable for prefab node \"${target.nodeId}\".`,\n }],\n } : {}),\n };\n}\n\nfunction createShadowLightSummary(\n document: EditorSceneDocument,\n lightId: string | undefined,\n): EditorAgentBridgeShadowLightSummary | undefined {\n if (!lightId) return undefined;\n const light = findShadowGameObject(document, lightId);\n if (!light?.light) {\n return {\n lightId,\n diagnostics: [{\n severity: 'warning',\n source: 'editor',\n code: 'shadow.lightNotFound',\n message: `Resolved shadow light \"${lightId}\" was not found in the preview document.`,\n }],\n };\n }\n const diagnostics: EditorAgentBridgeDiagnostic[] = [];\n let direction: EditorAgentBridgeVec3 | undefined;\n let directionSource: EditorAgentBridgeShadowLightSummary['directionSource'] | undefined;\n const orientationDiagnostics: EditorAgentBridgeDiagnostic[] = [];\n if (light.light.type === 'directional') {\n direction = normalizeEditorSceneLightDirectionVector(light.light.direction) as EditorAgentBridgeVec3;\n directionSource = 'light.direction';\n const transform = findEditorSceneTransform(light);\n const rotation = transform && 'rotation' in transform ? transform.rotation : undefined;\n const drift = detectEditorSceneDirectionalLightOrientationDrift({\n direction: light.light.direction,\n rotation,\n });\n if (drift.hasDrift) {\n orientationDiagnostics.push({\n severity: 'warning',\n source: 'editor',\n code: 'shadow.lightOrientationDrift',\n message: 'Directional Light transform.rotation and light.direction are out of sync. Runtime shadows use light.direction until the light orientation is edited again.',\n details: {\n expectedDirectionFromTransform: cloneShadowVec3Json(drift.expectedDirection),\n actualDirection: cloneShadowVec3Json(drift.actualDirection),\n delta: drift.delta,\n tolerance: drift.tolerance,\n },\n });\n diagnostics.push(...orientationDiagnostics);\n }\n }\n return {\n lightId,\n label: light.name ?? light.id,\n type: light.light.type,\n ...(light.shadow?.light?.mode ? { mode: light.shadow.light.mode } : {}),\n ...(direction ? { direction } : {}),\n ...(directionSource ? { directionSource } : {}),\n ...(orientationDiagnostics.length ? { orientationDiagnostics } : {}),\n ...(typeof light.light.intensity === 'number' ? { intensity: light.light.intensity } : {}),\n ...(diagnostics.length ? { diagnostics } : {}),\n };\n}\n\nfunction cloneShadowVec3(value: EditorAgentBridgeVec3): EditorAgentBridgeVec3 {\n return { x: value.x, y: value.y, z: value.z };\n}\n\nfunction cloneShadowVec3Json(value: EditorAgentBridgeVec3): EditorAgentBridgeJsonObject {\n return { x: value.x, y: value.y, z: value.z };\n}\n\nfunction createShadowFootprintSummary<TDocument, TPatch>(\n plan: EditorAgentBridgeShadowResolvedPlan,\n receivers: readonly EditorAgentBridgeShadowReceiverCandidate[],\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n projectionContext: ShadowProjectionContext = createIdentityShadowProjectionContext(),\n light?: EditorAgentBridgeShadowLightSummary,\n runtimeReceiverMeshCount = 0,\n): EditorAgentBridgeShadowFootprintSummary {\n if (plan.backend === 'none' || plan.receiverIds.length === 0) {\n if (plan.backend !== 'none' && runtimeReceiverMeshCount > 0) {\n return {\n kind: 'unknown',\n confidence: 0.7,\n diagnostics: [createRuntimeReceiversBoundDiagnostic(runtimeReceiverMeshCount)],\n };\n }\n return {\n kind: 'none',\n confidence: plan.backend === 'none' ? 1 : 0,\n diagnostics: plan.backend === 'none'\n ? [{\n severity: 'info',\n source: 'editor',\n code: 'shadow.footprintNone',\n message: 'Shadow backend is none, so no footprint is expected.',\n }]\n : [{\n severity: 'warning',\n source: 'editor',\n code: 'shadow.receiverNotFound',\n message: 'No receiver is available for an estimated shadow footprint.',\n }],\n };\n }\n const receiver = selectShadowFootprintReceiver(plan, receivers);\n if (!receiver) {\n return {\n kind: 'unknown',\n receiverId: plan.receiverIds[0],\n confidence: 0.1,\n diagnostics: [{\n severity: 'warning',\n source: 'editor',\n code: 'shadow.footprintReceiverUnavailable',\n message: 'Resolved shadow plan has receiver ids, but no receiver summaries are available for footprint selection.',\n details: { receiverIds: plan.receiverIds },\n }],\n };\n }\n const receiverBounds = receiver?.bounds as AgentBridgeResolvedBounds | undefined;\n const casterBounds = readShadowProjectionBounds(state, plan.casterId, projectionContext);\n if (!receiverBounds || !casterBounds) {\n return {\n kind: 'unknown',\n receiverId: receiver?.receiverId ?? plan.receiverIds[0],\n confidence: 0.25,\n diagnostics: [{\n severity: 'warning',\n source: 'editor',\n code: 'shadow.footprintBoundsUnavailable',\n message: 'Caster or receiver bounds are unavailable, so the footprint can only be reported structurally.',\n }],\n };\n }\n const footprintHeight = 0.02;\n const direction = normalizeShadowDirection(light?.direction);\n const projectedBounds = direction\n ? projectCasterBoundsToReceiver(casterBounds, receiverBounds, direction)\n : null;\n const size = projectedBounds\n ? {\n x: Math.min(receiverBounds.size.x, Math.max(projectedBounds.size.x, 0.01)),\n y: footprintHeight,\n z: Math.min(receiverBounds.size.z, Math.max(projectedBounds.size.z, 0.01)),\n }\n : {\n x: Math.min(receiverBounds.size.x, Math.max(casterBounds.size.x, 0.01)),\n y: footprintHeight,\n z: Math.min(receiverBounds.size.z, Math.max(casterBounds.size.z, 0.01)),\n };\n const center = projectedBounds?.center ?? casterBounds.center;\n const contactTolerance = Math.max(0.025, casterBounds.size.y * 0.04);\n const contactsReceiver = Math.abs(casterBounds.min.y - receiverBounds.max.y) <= contactTolerance\n || casterBounds.min.y < receiverBounds.max.y;\n const diagnostics: EditorAgentBridgeDiagnostic[] = [\n ...(!direction && light?.type === 'directional' ? [{\n severity: 'warning' as const,\n source: 'editor' as const,\n code: 'shadow.footprintDirectionUnavailable',\n message: 'Directional shadow light is missing a direction, so the footprint falls back to caster bounds.',\n details: { lightId: light.lightId },\n }] : []),\n ...(contactsReceiver ? [{\n severity: 'info' as const,\n source: 'editor' as const,\n code: 'shadow.casterContactsReceiver',\n message: 'Caster bounds touch or intersect the receiver plane. A real screenshot may show only the outside portions of the shadow because the caster itself occludes the contact footprint.',\n details: {\n casterMinY: casterBounds.min.y,\n receiverMaxY: receiverBounds.max.y,\n contactTolerance,\n },\n }] : []),\n ];\n return {\n kind: plan.backend === 'static-baked' ? 'artifact' : 'estimated',\n receiverId: receiver.receiverId,\n center: {\n x: center.x,\n y: receiverBounds.max.y + footprintHeight / 2 + 0.002,\n z: center.z,\n },\n size,\n normal: { x: 0, y: 1, z: 0 },\n ...(direction ? { direction } : {}),\n area: Math.max(0, size.x) * Math.max(0, size.z),\n confidence: receiver.suitability?.overlap !== undefined ? Math.min(1, Math.max(0.35, receiver.suitability.overlap)) : 0.6,\n ...(diagnostics.length ? { diagnostics } : {}),\n };\n}\n\nfunction createRuntimeReceiversBoundDiagnostic(runtimeReceiverMeshCount: number): EditorAgentBridgeDiagnostic {\n return {\n severity: 'info',\n source: 'runtime',\n code: 'shadow.runtimeReceiversBound',\n message: `${runtimeReceiverMeshCount} receiver meshes are bound by the Shadow Map runtime; no authored receiver id is required.`,\n details: { runtimeReceiverMeshCount },\n };\n}\n\nfunction selectShadowFootprintReceiver(\n plan: EditorAgentBridgeShadowResolvedPlan,\n receivers: readonly EditorAgentBridgeShadowReceiverCandidate[],\n): EditorAgentBridgeShadowReceiverCandidate | undefined {\n const planOrder = new Map(plan.receiverIds.map((receiverId, index) => [receiverId, index]));\n const candidates = receivers.filter(receiver => planOrder.has(receiver.receiverId));\n const ranked = candidates.length > 0 ? candidates : receivers;\n return [...ranked].sort((left, right) => compareShadowReceiverForFootprint(left, right, planOrder))[0];\n}\n\nfunction compareShadowReceiverForFootprint(\n left: EditorAgentBridgeShadowReceiverCandidate,\n right: EditorAgentBridgeShadowReceiverCandidate,\n planOrder: ReadonlyMap<string, number>,\n): number {\n const leftVisible = left.active !== false && left.visible !== false ? 1 : 0;\n const rightVisible = right.active !== false && right.visible !== false ? 1 : 0;\n if (leftVisible !== rightVisible) return rightVisible - leftVisible;\n\n const leftHasBounds = left.bounds ? 1 : 0;\n const rightHasBounds = right.bounds ? 1 : 0;\n if (leftHasBounds !== rightHasBounds) return rightHasBounds - leftHasBounds;\n\n const leftOverlap = typeof left.suitability?.overlap === 'number' ? left.suitability.overlap : -1;\n const rightOverlap = typeof right.suitability?.overlap === 'number' ? right.suitability.overlap : -1;\n if (leftOverlap !== rightOverlap) return rightOverlap - leftOverlap;\n\n const leftDistance = typeof left.suitability?.distance === 'number' ? left.suitability.distance : Number.POSITIVE_INFINITY;\n const rightDistance = typeof right.suitability?.distance === 'number' ? right.suitability.distance : Number.POSITIVE_INFINITY;\n if (leftDistance !== rightDistance) return leftDistance - rightDistance;\n\n const leftScore = typeof left.suitability?.score === 'number' ? left.suitability.score : left.score ?? 0;\n const rightScore = typeof right.suitability?.score === 'number' ? right.suitability.score : right.score ?? 0;\n if (leftScore !== rightScore) return rightScore - leftScore;\n\n const leftOrder = planOrder.get(left.receiverId) ?? Number.MAX_SAFE_INTEGER;\n const rightOrder = planOrder.get(right.receiverId) ?? Number.MAX_SAFE_INTEGER;\n return leftOrder - rightOrder;\n}\n\nfunction normalizeShadowDirection(direction: EditorAgentBridgeVec3 | undefined): EditorAgentBridgeVec3 | null {\n if (!direction) return null;\n const length = Math.hypot(direction.x, direction.y, direction.z);\n if (!Number.isFinite(length) || length <= 1e-6) return null;\n return {\n x: direction.x / length,\n y: direction.y / length,\n z: direction.z / length,\n };\n}\n\nfunction projectCasterBoundsToReceiver(\n casterBounds: AgentBridgeResolvedBounds,\n receiverBounds: AgentBridgeResolvedBounds,\n direction: EditorAgentBridgeVec3,\n): { center: EditorAgentBridgeVec3; size: EditorAgentBridgeVec3 } | null {\n if (Math.abs(direction.y) <= 1e-5) return null;\n const receiverY = receiverBounds.max.y;\n const points: EditorAgentBridgeVec3[] = [];\n for (const x of [casterBounds.min.x, casterBounds.max.x]) {\n for (const y of [casterBounds.min.y, casterBounds.max.y]) {\n for (const z of [casterBounds.min.z, casterBounds.max.z]) {\n const t = (receiverY - y) / direction.y;\n if (!Number.isFinite(t)) continue;\n if (t < 0) {\n points.push({ x, y: receiverY, z });\n continue;\n }\n points.push({\n x: x + direction.x * t,\n y: receiverY,\n z: z + direction.z * t,\n });\n }\n }\n }\n if (points.length === 0) return null;\n const min = {\n x: Math.min(...points.map(point => point.x)),\n y: receiverY,\n z: Math.min(...points.map(point => point.z)),\n };\n const max = {\n x: Math.max(...points.map(point => point.x)),\n y: receiverY,\n z: Math.max(...points.map(point => point.z)),\n };\n return {\n center: {\n x: (min.x + max.x) / 2,\n y: receiverY,\n z: (min.z + max.z) / 2,\n },\n size: {\n x: Math.max(0, max.x - min.x),\n y: 0,\n z: Math.max(0, max.z - min.z),\n },\n };\n}\n\nfunction readShadowProjectionBounds<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n targetId: string,\n projectionContext: ShadowProjectionContext,\n): AgentBridgeResolvedBounds | undefined {\n const projectionId = projectionContext.resolveProjectionId(targetId);\n return createAgentBridgeBounds(state.projection?.getSelectionBounds([projectionId]) ?? null);\n}\n\nfunction readShadowPreviewEffectiveVisible<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n targetId: string,\n projectionContext: ShadowProjectionContext,\n authoredVisible: boolean,\n): boolean {\n const projectionId = projectionContext.resolveProjectionId(targetId);\n const projectionEntry = state.projection?.getPreviewVisibilityOverrides?.()\n ?.find(entry => entry.nodeId === projectionId || entry.nodeId === targetId);\n if (projectionEntry) return projectionEntry.effectiveVisible;\n const overrides = state.previewVisibility?.overrides ?? {};\n const override = overrides[projectionId] ?? overrides[targetId];\n return authoredVisible && override !== false;\n}\n\nfunction createAgentBridgeBounds(\n bounds: { center: { x: number; y: number; z: number }; size: { x: number; y: number; z: number } } | null,\n): AgentBridgeResolvedBounds | undefined {\n if (!bounds) return undefined;\n const half = {\n x: bounds.size.x / 2,\n y: bounds.size.y / 2,\n z: bounds.size.z / 2,\n };\n return {\n center: { ...bounds.center },\n size: { ...bounds.size },\n min: {\n x: bounds.center.x - half.x,\n y: bounds.center.y - half.y,\n z: bounds.center.z - half.z,\n },\n max: {\n x: bounds.center.x + half.x,\n y: bounds.center.y + half.y,\n z: bounds.center.z + half.z,\n },\n };\n}\n\nfunction distance3(a: { x: number; y: number; z: number }, b: { x: number; y: number; z: number }): number {\n return Math.hypot(a.x - b.x, a.y - b.y, a.z - b.z);\n}\n\nfunction overlapRatioXZ(\n a: AgentBridgeResolvedBounds,\n b: AgentBridgeResolvedBounds,\n): number {\n const overlapX = Math.max(0, Math.min(a.max.x, b.max.x) - Math.max(a.min.x, b.min.x));\n const overlapZ = Math.max(0, Math.min(a.max.z, b.max.z) - Math.max(a.min.z, b.min.z));\n const intersection = overlapX * overlapZ;\n const casterArea = Math.max(0.0001, a.size.x * a.size.z);\n return Math.max(0, Math.min(1, intersection / casterArea));\n}\n\nfunction mapShadowDiagnostics(diagnostics: readonly EditorShadowDiagnostic[]): EditorAgentBridgeDiagnostic[] {\n return diagnostics.map(diagnostic => ({\n severity: diagnostic.severity,\n source: 'editor',\n code: diagnostic.code,\n message: diagnostic.message,\n ...(diagnostic.casterId ? { objectId: diagnostic.casterId } : {}),\n details: {\n ...(diagnostic.details ?? {}),\n ...(diagnostic.casterId ? { casterId: diagnostic.casterId } : {}),\n ...(diagnostic.receiverId ? { receiverId: diagnostic.receiverId } : {}),\n ...(diagnostic.lightId ? { lightId: diagnostic.lightId } : {}),\n },\n }));\n}\n\nfunction createShadowTargetDiagnostics<TDocument>(\n resolved: ResolvedShadowTarget<TDocument>,\n): EditorAgentBridgeDiagnostic[] {\n if (resolved.kind !== 'prefab-stage') return [];\n return [{\n severity: 'info',\n source: 'editor',\n code: 'shadow.prefabStagePreview',\n message: 'Prefab stage shadow resolution uses editable prefab nodes as a preview scene; runtime scene receiver/light binding is finalized by the scene compiler.',\n details: { assetId: resolved.details.stage.assetId, nodeId: resolved.nodeId },\n }];\n}\n\nfunction getResolvedTargetCasterId<TDocument>(target: ResolvedShadowTarget<TDocument>): string {\n return target.kind === 'scene' ? target.objectId : target.nodeId;\n}\n\nfunction asEditorSceneDocument(value: unknown): EditorSceneDocument | null {\n if (!isRecord(value)) return null;\n const scene = value.scene;\n if (!isRecord(scene) || !Array.isArray(scene.gameObjects)) return null;\n if (!Array.isArray(value.assets)) return null;\n return value as EditorSceneDocument;\n}\n\nfunction findShadowGameObject(document: EditorSceneDocument, objectId: string): EditorSceneGameObject | null {\n return document.scene.gameObjects.find(gameObject => gameObject.id === objectId) ?? null;\n}\n\nfunction normalizePrefabNodeId(value: unknown): string {\n const id = normalizeAgentBridgeString(value);\n return id.startsWith('prefab-node:') ? id.slice('prefab-node:'.length) : id;\n}\n\nfunction readBoolean(value: unknown, fallback: boolean): boolean {\n return typeof value === 'boolean' ? value : fallback;\n}\n\nfunction isRecord(value: unknown): value is Record<string, any> {\n return !!value && typeof value === 'object' && !Array.isArray(value);\n}\n"]}
|