@fps-games/editor 0.1.6-beta.1 → 0.1.7-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/assets.d.ts +8 -0
- package/dist/agent-bridge/capabilities/assets.d.ts.map +1 -0
- package/dist/agent-bridge/capabilities/assets.js +226 -0
- package/dist/agent-bridge/capabilities/assets.js.map +1 -0
- package/dist/agent-bridge/capabilities/editor-state.d.ts +5 -0
- package/dist/agent-bridge/capabilities/editor-state.d.ts.map +1 -0
- package/dist/agent-bridge/capabilities/editor-state.js +72 -0
- package/dist/agent-bridge/capabilities/editor-state.js.map +1 -0
- package/dist/agent-bridge/capabilities/host-lifecycle.d.ts +4 -0
- package/dist/agent-bridge/capabilities/host-lifecycle.d.ts.map +1 -0
- package/dist/agent-bridge/capabilities/host-lifecycle.js +87 -0
- package/dist/agent-bridge/capabilities/host-lifecycle.js.map +1 -0
- package/dist/agent-bridge/capabilities/prefabs.d.ts +5 -0
- package/dist/agent-bridge/capabilities/prefabs.d.ts.map +1 -0
- package/dist/agent-bridge/capabilities/prefabs.js +735 -0
- package/dist/agent-bridge/capabilities/prefabs.js.map +1 -0
- package/dist/agent-bridge/capabilities/scene-objects.d.ts +9 -0
- package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +1 -0
- package/dist/agent-bridge/capabilities/scene-objects.js +394 -0
- package/dist/agent-bridge/capabilities/scene-objects.js.map +1 -0
- package/dist/agent-bridge/capabilities/selection.d.ts +5 -0
- package/dist/agent-bridge/capabilities/selection.d.ts.map +1 -0
- package/dist/agent-bridge/capabilities/selection.js +57 -0
- package/dist/agent-bridge/capabilities/selection.js.map +1 -0
- package/dist/agent-bridge/capabilities/shadows.d.ts +5 -0
- package/dist/agent-bridge/capabilities/shadows.d.ts.map +1 -0
- package/dist/agent-bridge/capabilities/shadows.js +1876 -0
- package/dist/agent-bridge/capabilities/shadows.js.map +1 -0
- package/dist/agent-bridge/capabilities/transform.d.ts +5 -0
- package/dist/agent-bridge/capabilities/transform.d.ts.map +1 -0
- package/dist/agent-bridge/capabilities/transform.js +162 -0
- package/dist/agent-bridge/capabilities/transform.js.map +1 -0
- package/dist/agent-bridge/capabilities/ui-regions.d.ts +4 -0
- package/dist/agent-bridge/capabilities/ui-regions.d.ts.map +1 -0
- package/dist/agent-bridge/capabilities/ui-regions.js +168 -0
- package/dist/agent-bridge/capabilities/ui-regions.js.map +1 -0
- package/dist/agent-bridge/capabilities/viewport.d.ts +5 -0
- package/dist/agent-bridge/capabilities/viewport.d.ts.map +1 -0
- package/dist/agent-bridge/capabilities/viewport.js +407 -0
- package/dist/agent-bridge/capabilities/viewport.js.map +1 -0
- package/dist/agent-bridge/capability-sources.d.ts +6 -0
- package/dist/agent-bridge/capability-sources.d.ts.map +1 -0
- package/dist/agent-bridge/capability-sources.js +26 -0
- package/dist/agent-bridge/capability-sources.js.map +1 -0
- package/dist/agent-bridge/diagnostics.d.ts +12 -0
- package/dist/agent-bridge/diagnostics.d.ts.map +1 -0
- package/dist/agent-bridge/diagnostics.js +45 -0
- package/dist/agent-bridge/diagnostics.js.map +1 -0
- package/dist/agent-bridge/index.d.ts +5 -0
- package/dist/agent-bridge/index.d.ts.map +1 -0
- package/dist/agent-bridge/index.js +5 -0
- package/dist/agent-bridge/index.js.map +1 -0
- package/dist/agent-bridge/register.d.ts +4 -0
- package/dist/agent-bridge/register.d.ts.map +1 -0
- package/dist/agent-bridge/register.js +908 -0
- package/dist/agent-bridge/register.js.map +1 -0
- package/dist/agent-bridge/shared.d.ts +189 -0
- package/dist/agent-bridge/shared.d.ts.map +1 -0
- package/dist/agent-bridge/shared.js +39 -0
- package/dist/agent-bridge/shared.js.map +1 -0
- package/dist/agent-bridge/source-types.d.ts +90 -0
- package/dist/agent-bridge/source-types.d.ts.map +1 -0
- package/dist/agent-bridge/source-types.js +2 -0
- package/dist/agent-bridge/source-types.js.map +1 -0
- package/dist/build-info.json +17 -17
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/local-editor-agent-bridge-transport.d.ts +95 -0
- package/dist/local-editor-agent-bridge-transport.d.ts.map +1 -0
- package/dist/local-editor-agent-bridge-transport.js +340 -0
- package/dist/local-editor-agent-bridge-transport.js.map +1 -0
- package/dist/local-editor-agent-bridge.d.ts +2 -0
- package/dist/local-editor-agent-bridge.d.ts.map +1 -0
- package/dist/local-editor-agent-bridge.js +2 -0
- package/dist/local-editor-agent-bridge.js.map +1 -0
- package/dist/local-editor-harness.d.ts +26 -2
- package/dist/local-editor-harness.d.ts.map +1 -1
- package/dist/local-editor-harness.js +773 -75
- package/dist/local-editor-harness.js.map +1 -1
- package/dist/playable-babylon-rendering.js +20 -0
- package/dist/playable-babylon-rendering.js.map +1 -1
- package/dist/playable-local-editor-host.d.ts +5 -0
- package/dist/playable-local-editor-host.d.ts.map +1 -1
- package/dist/playable-local-editor-host.js +2 -0
- package/dist/playable-local-editor-host.js.map +1 -1
- package/dist/playable-sdk.d.ts +1 -1
- package/dist/playable-sdk.d.ts.map +1 -1
- package/dist/playable-sdk.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.js +6 -4
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/blob-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-shaders.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-shaders.js +103 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-shaders.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-system.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-system.js +330 -27
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/planar-shadow-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.js +159 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-artifact-system.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.js +8 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/static-projected-shadow-baker.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.d.ts +53 -2
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.d.ts.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.js +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/shadows/types.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/package.json +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +30 -0
- package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.js +346 -11
- 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 +11 -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 +113 -29
- package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts +13 -1
- 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 +543 -3
- package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/package.json +5 -5
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts +5 -2
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/index.js +3 -1
- package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js +7 -9
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js +2 -2
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-attach-dialog.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.d.ts +21 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js +75 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-command-adapter.js.map +1 -0
- 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 +288 -71
- 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-scope.d.ts +5 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js +92 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-scope.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts +3 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js +22 -7
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts +4 -0
- 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 +21 -14
- 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-panels.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +6 -4
- 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 +19 -1
- 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 +79 -39
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-prefab-stage.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js +2 -2
- 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-types.d.ts +68 -1
- 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-workbench.d.ts +2 -0
- 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 +10 -0
- 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 +3 -2
- 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 +401 -241
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-camera-debug-panel.d.ts +1 -0
- package/node_modules/@fps-games/editor-browser/dist/runtime-camera-debug-panel.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-camera-debug-panel.js +1 -0
- package/node_modules/@fps-games/editor-browser/dist/runtime-camera-debug-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug-panel-shell.d.ts +2 -0
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug-panel-shell.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug-panel-shell.js +27 -13
- package/node_modules/@fps-games/editor-browser/dist/runtime-debug-panel-shell.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-lighting-debug-panel.d.ts +1 -0
- package/node_modules/@fps-games/editor-browser/dist/runtime-lighting-debug-panel.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/runtime-lighting-debug-panel.js +1 -0
- package/node_modules/@fps-games/editor-browser/dist/runtime-lighting-debug-panel.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/package.json +3 -3
- package/node_modules/@fps-games/editor-core/dist/agent-bridge.d.ts +18 -0
- package/node_modules/@fps-games/editor-core/dist/agent-bridge.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/agent-bridge.js +102 -0
- package/node_modules/@fps-games/editor-core/dist/agent-bridge.js.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/index.d.ts +1 -0
- package/node_modules/@fps-games/editor-core/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/index.js +1 -0
- package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/viewport-tools.d.ts +1 -1
- 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.map +1 -1
- package/node_modules/@fps-games/editor-core/package.json +2 -2
- package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/config.d.ts +3 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/config.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/config.js +9 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/config.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.d.ts +6 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js +89 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/generated-module.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/identity.d.ts +18 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/identity.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/identity.js +121 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/identity.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.d.ts +4 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.js +3 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/index.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.d.ts +27 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js +782 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/metadata.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.d.ts +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/node.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts +80 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js +600 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/registry.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/types.d.ts +51 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/types.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/types.js +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-database/types.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.d.ts +0 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js +4 -42
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/document.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.js +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.js +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/placement.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/types.d.ts +3 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/asset-placement/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.d.ts +42 -2
- 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 +612 -8
- 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/types.d.ts +42 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/types.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.js +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.js +16 -9
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/schema.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.d.ts +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.js +28 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/field-schema/validators.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/index.d.ts +3 -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 +3 -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 +82 -2
- 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 +396 -22
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/document-sections.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.d.ts +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.js +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/validation.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/validation.js +0 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/inspector/validation.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/math.d.ts +29 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/math.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/math.js +143 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/lighting-debug/math.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/field-patch.js +99 -11
- 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 +4 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/reducer.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/transform.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/transform.js +19 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/mutation/transform.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/rendering-profile/panel.js +19 -3
- 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/runtime-preview/assets.d.ts +1 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.js +0 -14
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/assets.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/import-plan.d.ts +1 -7
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/import-plan.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/import-plan.js +3 -32
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/import-plan.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/runtime-preview/nodes.js +16 -32
- 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 +5 -22
- 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/scene-compiler/compiler.d.ts +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js +996 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/compiler.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.d.ts +3 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js +3 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/index.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts +152 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.js +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-compiler/types.js.map +1 -0
- 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 -0
- 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/serialized-property/descriptors.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.js +224 -12
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/descriptors.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js +158 -50
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/patch.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/patch.js +45 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/serialized-property/patch.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/index.d.ts +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/index.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/index.js +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/index.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/legacy.d.ts +21 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/legacy.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/legacy.js +158 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/legacy.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/quality.d.ts +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/quality.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/quality.js +83 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/quality.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/resolver.d.ts +35 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/resolver.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/resolver.js +363 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/resolver.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/types.d.ts +105 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/types.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/types.js +6 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/shadow-system/types.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.d.ts +3 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.js +44 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/static-shadows/artifact.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/asset-authoring.d.ts +26 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/asset-authoring.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/asset-authoring.js +105 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/asset-authoring.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts +3 -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 +3 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/package.json +3 -3
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts +1127 -0
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js +2180 -0
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/agent-trace.d.ts +68 -0
- package/node_modules/@fps-games/editor-protocol/dist/agent-trace.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js +23 -0
- package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +2 -0
- package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/index.js +2 -0
- package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-protocol/package.json +1 -1
- package/package.json +8 -8
|
@@ -0,0 +1,908 @@
|
|
|
1
|
+
import { EDITOR_AGENT_BRIDGE_CAPABILITY_ID, EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS, EDITOR_AGENT_BRIDGE_SCHEMA_VERSION, } from '@fps-games/editor-protocol';
|
|
2
|
+
import { createLocalEditorAgentBridgeFailure } from './diagnostics.js';
|
|
3
|
+
// Static baked shadow authoring is intentionally hidden until the workflow is redesigned.
|
|
4
|
+
const EDITOR_SHADOW_STATIC_AUTHORING_ENABLED = false;
|
|
5
|
+
export function registerLocalEditorAgentBridgeCapabilities(bridge, sources) {
|
|
6
|
+
const unregister = [
|
|
7
|
+
bridge.registerCapability({
|
|
8
|
+
manifest: {
|
|
9
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
10
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.ASSET_LIBRARY_LIST,
|
|
11
|
+
title: 'List asset library',
|
|
12
|
+
description: 'List standard project assets after editorReady=true. Use this before placing assets; returned assetId values are stable inputs for asset.info.get, asset.analysis.get, and object.createFromAsset.',
|
|
13
|
+
layer: 'editor',
|
|
14
|
+
category: 'asset',
|
|
15
|
+
stability: 'experimental',
|
|
16
|
+
access: 'read',
|
|
17
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.ASSET_LIBRARY_LIST],
|
|
18
|
+
},
|
|
19
|
+
handler: input => {
|
|
20
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.ASSET_LIBRARY_LIST, input);
|
|
21
|
+
return normalized.ok ? sources.assets.listAssets(normalized.input) : normalized.result;
|
|
22
|
+
},
|
|
23
|
+
}),
|
|
24
|
+
bridge.registerCapability({
|
|
25
|
+
manifest: {
|
|
26
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
27
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.ASSET_INFO_GET,
|
|
28
|
+
title: 'Get asset info',
|
|
29
|
+
description: 'Read complete serializable metadata for one standard project asset by assetId. It does not read original file bytes and should be used before placement when catalog metadata matters.',
|
|
30
|
+
layer: 'editor',
|
|
31
|
+
category: 'asset',
|
|
32
|
+
stability: 'experimental',
|
|
33
|
+
access: 'read',
|
|
34
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.ASSET_INFO_GET],
|
|
35
|
+
},
|
|
36
|
+
handler: input => {
|
|
37
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.ASSET_INFO_GET, input);
|
|
38
|
+
return normalized.ok ? sources.assets.getAssetInfo(normalized.input) : normalized.result;
|
|
39
|
+
},
|
|
40
|
+
}),
|
|
41
|
+
bridge.registerCapability({
|
|
42
|
+
manifest: {
|
|
43
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
44
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.ASSET_ANALYSIS_GET,
|
|
45
|
+
title: 'Get asset analysis',
|
|
46
|
+
description: 'Read SDK-generated raw asset structure analysis from asset metadata. Use for GLB/GLTF mesh/material complexity and PNG/JPEG/WebP image dimensions before creating or inspecting assets.',
|
|
47
|
+
layer: 'editor',
|
|
48
|
+
category: 'asset',
|
|
49
|
+
stability: 'experimental',
|
|
50
|
+
access: 'read',
|
|
51
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.ASSET_ANALYSIS_GET],
|
|
52
|
+
},
|
|
53
|
+
handler: input => {
|
|
54
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.ASSET_ANALYSIS_GET, input);
|
|
55
|
+
return normalized.ok ? sources.assets.getAssetAnalysis(normalized.input) : normalized.result;
|
|
56
|
+
},
|
|
57
|
+
}),
|
|
58
|
+
bridge.registerCapability({
|
|
59
|
+
manifest: {
|
|
60
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
61
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_RESOLVE,
|
|
62
|
+
title: 'Resolve prefab asset',
|
|
63
|
+
description: 'Resolve prefab assets by assetId, browserAssetId, exact name, or fuzzy query after editorReady=true. Use asset.library.list(kind=prefab) or this capability before prefab.stage.open.',
|
|
64
|
+
layer: 'editor',
|
|
65
|
+
category: 'prefab',
|
|
66
|
+
stability: 'experimental',
|
|
67
|
+
access: 'read',
|
|
68
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_RESOLVE],
|
|
69
|
+
},
|
|
70
|
+
handler: input => {
|
|
71
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_RESOLVE, input);
|
|
72
|
+
return normalized.ok ? sources.prefabs.resolvePrefab(normalized.input) : normalized.result;
|
|
73
|
+
},
|
|
74
|
+
}),
|
|
75
|
+
bridge.registerCapability({
|
|
76
|
+
manifest: {
|
|
77
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
78
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_STAGE_OPEN,
|
|
79
|
+
title: 'Open prefab stage',
|
|
80
|
+
description: 'Enter the prefab preview/edit stage for a prefab asset after editorReady=true. Prefer this over double-clicking the Asset Library; it is idempotent when the requested prefab is already open.',
|
|
81
|
+
layer: 'editor',
|
|
82
|
+
category: 'prefab',
|
|
83
|
+
stability: 'experimental',
|
|
84
|
+
access: 'write',
|
|
85
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_STAGE_OPEN],
|
|
86
|
+
},
|
|
87
|
+
handler: input => {
|
|
88
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_STAGE_OPEN, input);
|
|
89
|
+
return normalized.ok ? sources.prefabs.openStage(normalized.input) : normalized.result;
|
|
90
|
+
},
|
|
91
|
+
}),
|
|
92
|
+
bridge.registerCapability({
|
|
93
|
+
manifest: {
|
|
94
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
95
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_STAGE_EXIT,
|
|
96
|
+
title: 'Exit prefab stage',
|
|
97
|
+
description: 'Exit the current prefab preview/edit stage and return to the scene editor. This is idempotent and returns exited=false when no prefab stage is open.',
|
|
98
|
+
layer: 'editor',
|
|
99
|
+
category: 'prefab',
|
|
100
|
+
stability: 'experimental',
|
|
101
|
+
access: 'write',
|
|
102
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_STAGE_EXIT],
|
|
103
|
+
},
|
|
104
|
+
handler: input => {
|
|
105
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_STAGE_EXIT, input);
|
|
106
|
+
return normalized.ok ? sources.prefabs.exitStage(normalized.input) : normalized.result;
|
|
107
|
+
},
|
|
108
|
+
}),
|
|
109
|
+
bridge.registerCapability({
|
|
110
|
+
manifest: {
|
|
111
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
112
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_ASSET_RENAME,
|
|
113
|
+
title: 'Rename prefab asset',
|
|
114
|
+
description: 'Rename a prefab asset displayName through the editor asset action patch pipeline. In an open Prefab stage, assetId may be omitted to rename the current prefab; this does not rename existing scene prefab instances or readonly GLB source nodes.',
|
|
115
|
+
layer: 'editor',
|
|
116
|
+
category: 'prefab',
|
|
117
|
+
stability: 'experimental',
|
|
118
|
+
access: 'write',
|
|
119
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_ASSET_RENAME],
|
|
120
|
+
},
|
|
121
|
+
handler: input => {
|
|
122
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_ASSET_RENAME, input);
|
|
123
|
+
return normalized.ok ? sources.prefabs.renameAsset(normalized.input) : normalized.result;
|
|
124
|
+
},
|
|
125
|
+
}),
|
|
126
|
+
bridge.registerCapability({
|
|
127
|
+
manifest: {
|
|
128
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
129
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_SCENE_GET,
|
|
130
|
+
title: 'Get prefab composition scene',
|
|
131
|
+
description: 'Read the editable Prefab Scene Tree for the currently open Prefab stage. Use after prefab.stage.open before prefab.node.* writes; this does not expose raw GLB source nodes as editable prefab nodes.',
|
|
132
|
+
layer: 'editor',
|
|
133
|
+
category: 'prefab',
|
|
134
|
+
stability: 'experimental',
|
|
135
|
+
access: 'read',
|
|
136
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_SCENE_GET],
|
|
137
|
+
},
|
|
138
|
+
handler: input => {
|
|
139
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_SCENE_GET, input);
|
|
140
|
+
return normalized.ok ? sources.prefabs.getScene(normalized.input) : normalized.result;
|
|
141
|
+
},
|
|
142
|
+
}),
|
|
143
|
+
bridge.registerCapability({
|
|
144
|
+
manifest: {
|
|
145
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
146
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_SELECT,
|
|
147
|
+
title: 'Select prefab node',
|
|
148
|
+
description: 'Select an editable node inside the current Prefab stage. Use node ids from prefab.scene.get; this changes Prefab stage selection, not main scene selection.',
|
|
149
|
+
layer: 'editor',
|
|
150
|
+
category: 'prefab',
|
|
151
|
+
stability: 'experimental',
|
|
152
|
+
access: 'write',
|
|
153
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_SELECT],
|
|
154
|
+
},
|
|
155
|
+
handler: input => {
|
|
156
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_SELECT, input);
|
|
157
|
+
return normalized.ok ? sources.prefabs.selectNode(normalized.input) : normalized.result;
|
|
158
|
+
},
|
|
159
|
+
}),
|
|
160
|
+
bridge.registerCapability({
|
|
161
|
+
manifest: {
|
|
162
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
163
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_CREATE_FROM_ASSET,
|
|
164
|
+
title: 'Create prefab node from asset',
|
|
165
|
+
description: 'Add a model or child prefab asset into the currently open Prefab stage through the editor asset action patch pipeline. Use asset.library.list first; this writes the prefab document, not the main scene.',
|
|
166
|
+
layer: 'editor',
|
|
167
|
+
category: 'prefab',
|
|
168
|
+
stability: 'experimental',
|
|
169
|
+
access: 'write',
|
|
170
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_CREATE_FROM_ASSET],
|
|
171
|
+
},
|
|
172
|
+
handler: input => {
|
|
173
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_CREATE_FROM_ASSET, input);
|
|
174
|
+
return normalized.ok ? sources.prefabs.createNodeFromAsset(normalized.input) : normalized.result;
|
|
175
|
+
},
|
|
176
|
+
}),
|
|
177
|
+
bridge.registerCapability({
|
|
178
|
+
manifest: {
|
|
179
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
180
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_CREATE_GROUP,
|
|
181
|
+
title: 'Create prefab group node',
|
|
182
|
+
description: 'Add an empty group node to the currently open Prefab stage through the editor prefab node mutation path. Use it as a composition container before adding or reparenting model, primitive, or child prefab nodes.',
|
|
183
|
+
layer: 'editor',
|
|
184
|
+
category: 'prefab',
|
|
185
|
+
stability: 'experimental',
|
|
186
|
+
access: 'write',
|
|
187
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_CREATE_GROUP],
|
|
188
|
+
},
|
|
189
|
+
handler: input => {
|
|
190
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_CREATE_GROUP, input);
|
|
191
|
+
return normalized.ok ? sources.prefabs.createGroupNode(normalized.input) : normalized.result;
|
|
192
|
+
},
|
|
193
|
+
}),
|
|
194
|
+
bridge.registerCapability({
|
|
195
|
+
manifest: {
|
|
196
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
197
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_CREATE_PRIMITIVE,
|
|
198
|
+
title: 'Create prefab primitive node',
|
|
199
|
+
description: 'Add a primitive helper node to the currently open Prefab stage through the editor prefab node mutation path. Use for composition layout tests, blockers, receivers, and simple placeholders.',
|
|
200
|
+
layer: 'editor',
|
|
201
|
+
category: 'prefab',
|
|
202
|
+
stability: 'experimental',
|
|
203
|
+
access: 'write',
|
|
204
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_CREATE_PRIMITIVE],
|
|
205
|
+
},
|
|
206
|
+
handler: input => {
|
|
207
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_CREATE_PRIMITIVE, input);
|
|
208
|
+
return normalized.ok ? sources.prefabs.createPrimitiveNode(normalized.input) : normalized.result;
|
|
209
|
+
},
|
|
210
|
+
}),
|
|
211
|
+
bridge.registerCapability({
|
|
212
|
+
manifest: {
|
|
213
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
214
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_SET_TRANSFORM,
|
|
215
|
+
title: 'Set prefab node transform',
|
|
216
|
+
description: 'Set position, rotation, and/or scale for an editable Prefab stage node. This routes through prefab node document patches and does not mutate projection or runtime JSON directly.',
|
|
217
|
+
layer: 'editor',
|
|
218
|
+
category: 'prefab',
|
|
219
|
+
stability: 'experimental',
|
|
220
|
+
access: 'write',
|
|
221
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_SET_TRANSFORM],
|
|
222
|
+
},
|
|
223
|
+
handler: input => {
|
|
224
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_SET_TRANSFORM, input);
|
|
225
|
+
return normalized.ok ? sources.prefabs.setNodeTransform(normalized.input) : normalized.result;
|
|
226
|
+
},
|
|
227
|
+
}),
|
|
228
|
+
bridge.registerCapability({
|
|
229
|
+
manifest: {
|
|
230
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
231
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_REPARENT,
|
|
232
|
+
title: 'Reparent prefab node',
|
|
233
|
+
description: 'Move an editable Prefab stage node under another prefab node. The reducer rejects root reparenting and cyclic parents.',
|
|
234
|
+
layer: 'editor',
|
|
235
|
+
category: 'prefab',
|
|
236
|
+
stability: 'experimental',
|
|
237
|
+
access: 'write',
|
|
238
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_REPARENT],
|
|
239
|
+
},
|
|
240
|
+
handler: input => {
|
|
241
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_REPARENT, input);
|
|
242
|
+
return normalized.ok ? sources.prefabs.reparentNode(normalized.input) : normalized.result;
|
|
243
|
+
},
|
|
244
|
+
}),
|
|
245
|
+
bridge.registerCapability({
|
|
246
|
+
manifest: {
|
|
247
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
248
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_RENAME,
|
|
249
|
+
title: 'Rename prefab node',
|
|
250
|
+
description: 'Rename a non-root editable node inside the current Prefab stage. Root names follow prefab.asset.rename, and readonly GLB Source Structure names are not editable.',
|
|
251
|
+
layer: 'editor',
|
|
252
|
+
category: 'prefab',
|
|
253
|
+
stability: 'experimental',
|
|
254
|
+
access: 'write',
|
|
255
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_RENAME],
|
|
256
|
+
},
|
|
257
|
+
handler: input => {
|
|
258
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_RENAME, input);
|
|
259
|
+
return normalized.ok ? sources.prefabs.renameNode(normalized.input) : normalized.result;
|
|
260
|
+
},
|
|
261
|
+
}),
|
|
262
|
+
bridge.registerCapability({
|
|
263
|
+
manifest: {
|
|
264
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
265
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_DELETE,
|
|
266
|
+
title: 'Delete prefab node',
|
|
267
|
+
description: 'Delete an editable node from the current Prefab stage through prefab document mutation. Root deletion and invalid nodes return structured diagnostics.',
|
|
268
|
+
layer: 'editor',
|
|
269
|
+
category: 'prefab',
|
|
270
|
+
stability: 'experimental',
|
|
271
|
+
access: 'write',
|
|
272
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_DELETE],
|
|
273
|
+
},
|
|
274
|
+
handler: input => {
|
|
275
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_NODE_DELETE, input);
|
|
276
|
+
return normalized.ok ? sources.prefabs.deleteNode(normalized.input) : normalized.result;
|
|
277
|
+
},
|
|
278
|
+
}),
|
|
279
|
+
bridge.registerCapability({
|
|
280
|
+
manifest: {
|
|
281
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
282
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_SOURCE_STRUCTURE_GET,
|
|
283
|
+
title: 'Get prefab source structure',
|
|
284
|
+
description: 'Read readonly source asset anatomy for a prefab model node or asset. This reports SDK asset analysis metadata and is not an editable Prefab Scene Tree.',
|
|
285
|
+
layer: 'editor',
|
|
286
|
+
category: 'prefab',
|
|
287
|
+
stability: 'experimental',
|
|
288
|
+
access: 'read',
|
|
289
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_SOURCE_STRUCTURE_GET],
|
|
290
|
+
},
|
|
291
|
+
handler: input => {
|
|
292
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_SOURCE_STRUCTURE_GET, input);
|
|
293
|
+
return normalized.ok ? sources.prefabs.getSourceStructure(normalized.input) : normalized.result;
|
|
294
|
+
},
|
|
295
|
+
}),
|
|
296
|
+
bridge.registerCapability({
|
|
297
|
+
manifest: {
|
|
298
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
299
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_MATERIAL_SLOTS_LIST,
|
|
300
|
+
title: 'List prefab material slots',
|
|
301
|
+
description: 'List editable material override targets for a prefab model node or asset from SDK materialSlots metadata. Use before future material/shadow tuning; read-only slots are optional.',
|
|
302
|
+
layer: 'editor',
|
|
303
|
+
category: 'prefab',
|
|
304
|
+
stability: 'experimental',
|
|
305
|
+
access: 'read',
|
|
306
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_MATERIAL_SLOTS_LIST],
|
|
307
|
+
},
|
|
308
|
+
handler: input => {
|
|
309
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_MATERIAL_SLOTS_LIST, input);
|
|
310
|
+
return normalized.ok ? sources.prefabs.listMaterialSlots(normalized.input) : normalized.result;
|
|
311
|
+
},
|
|
312
|
+
}),
|
|
313
|
+
bridge.registerCapability({
|
|
314
|
+
manifest: {
|
|
315
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
316
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.HOST_MODE_GET,
|
|
317
|
+
title: 'Get host mode',
|
|
318
|
+
description: 'Read host lifecycle state without changing mode. Use as optional preflight or diagnostics; editorReady=true means the host is in editor mode, has an active editor session, and is not busy.',
|
|
319
|
+
layer: 'host',
|
|
320
|
+
category: 'lifecycle',
|
|
321
|
+
stability: 'experimental',
|
|
322
|
+
access: 'read',
|
|
323
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.HOST_MODE_GET],
|
|
324
|
+
},
|
|
325
|
+
handler: input => {
|
|
326
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.HOST_MODE_GET, input);
|
|
327
|
+
return normalized.ok ? sources.host.getMode(normalized.input) : normalized.result;
|
|
328
|
+
},
|
|
329
|
+
}),
|
|
330
|
+
bridge.registerCapability({
|
|
331
|
+
manifest: {
|
|
332
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
333
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.HOST_EDITOR_ENTER,
|
|
334
|
+
title: 'Enter editor mode',
|
|
335
|
+
description: 'Default L1 entry point for agents. Call this to enter or ensure editor mode before L2/L3 editor operations instead of clicking the UI with browser automation. It is idempotent: already-editor hosts return alreadyEditor=true.',
|
|
336
|
+
layer: 'host',
|
|
337
|
+
category: 'lifecycle',
|
|
338
|
+
stability: 'experimental',
|
|
339
|
+
access: 'write',
|
|
340
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.HOST_EDITOR_ENTER],
|
|
341
|
+
},
|
|
342
|
+
handler: input => {
|
|
343
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.HOST_EDITOR_ENTER, input);
|
|
344
|
+
return normalized.ok ? sources.host.enterEditor(normalized.input) : normalized.result;
|
|
345
|
+
},
|
|
346
|
+
}),
|
|
347
|
+
bridge.registerCapability({
|
|
348
|
+
manifest: {
|
|
349
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
350
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.HOST_EDITOR_WAIT_READY,
|
|
351
|
+
title: 'Wait for editor readiness',
|
|
352
|
+
description: 'Read-only readiness wait. Use after host.editor.enter only when extra confirmation or timeout diagnostics are needed; it does not enter editor mode by itself.',
|
|
353
|
+
layer: 'host',
|
|
354
|
+
category: 'lifecycle',
|
|
355
|
+
stability: 'experimental',
|
|
356
|
+
access: 'read',
|
|
357
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.HOST_EDITOR_WAIT_READY],
|
|
358
|
+
},
|
|
359
|
+
handler: input => {
|
|
360
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.HOST_EDITOR_WAIT_READY, input);
|
|
361
|
+
return normalized.ok ? sources.host.waitReady(normalized.input) : normalized.result;
|
|
362
|
+
},
|
|
363
|
+
}),
|
|
364
|
+
bridge.registerCapability({
|
|
365
|
+
manifest: {
|
|
366
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
367
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_UI_REGIONS_GET,
|
|
368
|
+
title: 'Get editor workspace regions',
|
|
369
|
+
description: 'Read the editor workspace region map for agents. It explains left Hierarchy, center Preview, right Inspector/render tabs, bottom Asset Library, top Toolbar, and Agent Bridge Console semantics, and maps each area to preferred capabilities before L0 fallback.',
|
|
370
|
+
layer: 'editor',
|
|
371
|
+
category: 'ui',
|
|
372
|
+
stability: 'experimental',
|
|
373
|
+
access: 'read',
|
|
374
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_UI_REGIONS_GET],
|
|
375
|
+
},
|
|
376
|
+
handler: input => {
|
|
377
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_UI_REGIONS_GET, input);
|
|
378
|
+
return normalized.ok ? sources.ui.getRegions(normalized.input) : normalized.result;
|
|
379
|
+
},
|
|
380
|
+
}),
|
|
381
|
+
bridge.registerCapability({
|
|
382
|
+
manifest: {
|
|
383
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
384
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SCENE_OBJECTS_LIST,
|
|
385
|
+
title: 'List scene objects',
|
|
386
|
+
description: 'List editor scene objects with hierarchy and transform summaries after editorReady=true. Use returned object ids as stable inputs for selection, transform, viewport, and workflow capabilities.',
|
|
387
|
+
layer: 'editor',
|
|
388
|
+
category: 'scene',
|
|
389
|
+
stability: 'experimental',
|
|
390
|
+
access: 'read',
|
|
391
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SCENE_OBJECTS_LIST],
|
|
392
|
+
},
|
|
393
|
+
handler: input => ({ objects: sources.objects.listObjects(input ?? {}) }),
|
|
394
|
+
}),
|
|
395
|
+
bridge.registerCapability({
|
|
396
|
+
manifest: {
|
|
397
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
398
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.OBJECT_RESOLVE,
|
|
399
|
+
title: 'Resolve scene object',
|
|
400
|
+
description: 'Resolve editor scene objects by id, exact name/path/type, or fuzzy query after editorReady=true. Use this before write operations when the object id is not already known.',
|
|
401
|
+
layer: 'editor',
|
|
402
|
+
category: 'scene',
|
|
403
|
+
stability: 'experimental',
|
|
404
|
+
access: 'read',
|
|
405
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.OBJECT_RESOLVE],
|
|
406
|
+
},
|
|
407
|
+
handler: input => {
|
|
408
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.OBJECT_RESOLVE, input);
|
|
409
|
+
return normalized.ok ? sources.objects.resolveObject(normalized.input) : normalized.result;
|
|
410
|
+
},
|
|
411
|
+
}),
|
|
412
|
+
bridge.registerCapability({
|
|
413
|
+
manifest: {
|
|
414
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
415
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.OBJECT_CREATE_PRIMITIVE,
|
|
416
|
+
title: 'Create primitive object',
|
|
417
|
+
description: 'Create a basic scene primitive after editorReady=true. Shapes are cube, sphere, plane, or capsule; the capability uses the editor scene graph create patch and selects the created object when possible.',
|
|
418
|
+
layer: 'editor',
|
|
419
|
+
category: 'scene',
|
|
420
|
+
stability: 'experimental',
|
|
421
|
+
access: 'write',
|
|
422
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.OBJECT_CREATE_PRIMITIVE],
|
|
423
|
+
},
|
|
424
|
+
handler: input => {
|
|
425
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.OBJECT_CREATE_PRIMITIVE, input);
|
|
426
|
+
return normalized.ok ? sources.objects.createPrimitive(normalized.input) : normalized.result;
|
|
427
|
+
},
|
|
428
|
+
}),
|
|
429
|
+
bridge.registerCapability({
|
|
430
|
+
manifest: {
|
|
431
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
432
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.OBJECT_CREATE_FROM_ASSET,
|
|
433
|
+
title: 'Create object from asset',
|
|
434
|
+
description: 'Create a scene object from a standard asset library asset after editorReady=true. Use asset.library.list and asset.analysis.get first; this capability delegates to the editor harness asset creation path and may select/focus the created object.',
|
|
435
|
+
layer: 'editor',
|
|
436
|
+
category: 'asset',
|
|
437
|
+
stability: 'experimental',
|
|
438
|
+
access: 'write',
|
|
439
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.OBJECT_CREATE_FROM_ASSET],
|
|
440
|
+
},
|
|
441
|
+
handler: input => {
|
|
442
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.OBJECT_CREATE_FROM_ASSET, input);
|
|
443
|
+
return normalized.ok ? sources.objects.createFromAsset(normalized.input) : normalized.result;
|
|
444
|
+
},
|
|
445
|
+
}),
|
|
446
|
+
bridge.registerCapability({
|
|
447
|
+
manifest: {
|
|
448
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
449
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.OBJECT_DELETE,
|
|
450
|
+
title: 'Delete objects',
|
|
451
|
+
description: 'Delete one or more editor scene objects after editorReady=true. Provide exactly one of objectId or objectIds; protected, locked, readonly, or missing nodes are rejected by scene graph validation.',
|
|
452
|
+
layer: 'editor',
|
|
453
|
+
category: 'scene',
|
|
454
|
+
stability: 'experimental',
|
|
455
|
+
access: 'write',
|
|
456
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.OBJECT_DELETE],
|
|
457
|
+
},
|
|
458
|
+
handler: input => {
|
|
459
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.OBJECT_DELETE, input);
|
|
460
|
+
return normalized.ok ? sources.objects.deleteObjects(normalized.input) : normalized.result;
|
|
461
|
+
},
|
|
462
|
+
}),
|
|
463
|
+
bridge.registerCapability({
|
|
464
|
+
manifest: {
|
|
465
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
466
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SELECTION_SET,
|
|
467
|
+
title: 'Set selection',
|
|
468
|
+
description: 'Select one or more editor scene objects by object id after editorReady=true. Prefer ids returned by scene.objects.list; this is an editor semantic operation, not a UI click.',
|
|
469
|
+
layer: 'editor',
|
|
470
|
+
category: 'selection',
|
|
471
|
+
stability: 'experimental',
|
|
472
|
+
access: 'write',
|
|
473
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SELECTION_SET],
|
|
474
|
+
},
|
|
475
|
+
handler: input => sources.selection.setSelection(input ?? {}),
|
|
476
|
+
}),
|
|
477
|
+
bridge.registerCapability({
|
|
478
|
+
manifest: {
|
|
479
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
480
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_GET,
|
|
481
|
+
title: 'Get shadow policy',
|
|
482
|
+
description: 'Read Shadow V2 policy and effective resolved plan for a scene object or current Prefab stage node. Use this before editing caster/receiver/light/quality settings; readonly source anatomy is not editable.',
|
|
483
|
+
layer: 'editor',
|
|
484
|
+
category: 'shadow',
|
|
485
|
+
stability: 'experimental',
|
|
486
|
+
access: 'read',
|
|
487
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_GET],
|
|
488
|
+
},
|
|
489
|
+
handler: input => {
|
|
490
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_GET, input);
|
|
491
|
+
return normalized.ok ? sources.shadows.getPolicy(normalized.input) : normalized.result;
|
|
492
|
+
},
|
|
493
|
+
}),
|
|
494
|
+
bridge.registerCapability({
|
|
495
|
+
manifest: {
|
|
496
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
497
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_SET,
|
|
498
|
+
title: 'Set shadow policy',
|
|
499
|
+
description: 'Write Shadow V2 caster/receiver/mode/light/quality/params for a scene object or editable Prefab stage root/node through editor document patches. This is the default agent path for shadow authoring instead of Inspector clicking.',
|
|
500
|
+
layer: 'editor',
|
|
501
|
+
category: 'shadow',
|
|
502
|
+
stability: 'experimental',
|
|
503
|
+
access: 'write',
|
|
504
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_SET],
|
|
505
|
+
},
|
|
506
|
+
handler: input => {
|
|
507
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_POLICY_SET, input);
|
|
508
|
+
return normalized.ok ? sources.shadows.setPolicy(normalized.input) : normalized.result;
|
|
509
|
+
},
|
|
510
|
+
}),
|
|
511
|
+
bridge.registerCapability({
|
|
512
|
+
manifest: {
|
|
513
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
514
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_RECEIVERS_LIST,
|
|
515
|
+
title: 'List shadow receivers',
|
|
516
|
+
description: 'List candidate shadow receiver nodes for a scene object or Prefab stage preview target. Explicit receivers and shadow.receive settings score above auto plane inference.',
|
|
517
|
+
layer: 'editor',
|
|
518
|
+
category: 'shadow',
|
|
519
|
+
stability: 'experimental',
|
|
520
|
+
access: 'read',
|
|
521
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_RECEIVERS_LIST],
|
|
522
|
+
},
|
|
523
|
+
handler: input => {
|
|
524
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_RECEIVERS_LIST, input);
|
|
525
|
+
return normalized.ok ? sources.shadows.listReceivers(normalized.input) : normalized.result;
|
|
526
|
+
},
|
|
527
|
+
}),
|
|
528
|
+
bridge.registerCapability({
|
|
529
|
+
manifest: {
|
|
530
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
531
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_RESOLVE_PREVIEW,
|
|
532
|
+
title: 'Resolve shadow preview',
|
|
533
|
+
description: 'Preview the resolved Shadow V2 backend, receiver list, light binding, quality params, and diagnostics without changing editor state. Use after policy changes or before screenshot validation.',
|
|
534
|
+
layer: 'editor',
|
|
535
|
+
category: 'shadow',
|
|
536
|
+
stability: 'experimental',
|
|
537
|
+
access: 'read',
|
|
538
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_RESOLVE_PREVIEW],
|
|
539
|
+
},
|
|
540
|
+
handler: input => {
|
|
541
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_RESOLVE_PREVIEW, input);
|
|
542
|
+
return normalized.ok ? sources.shadows.resolvePreview(normalized.input) : normalized.result;
|
|
543
|
+
},
|
|
544
|
+
}),
|
|
545
|
+
bridge.registerCapability({
|
|
546
|
+
manifest: {
|
|
547
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
548
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_INSPECT,
|
|
549
|
+
title: 'Inspect shadow debug context',
|
|
550
|
+
description: 'Read the complete Shadow V2 debugging context for a scene object or Prefab stage target: caster, receivers, light, policy, resolved plan, expected footprint, runtime evidence, and diagnostics. Use this before deciding whether a screenshot really shows a shadow.',
|
|
551
|
+
layer: 'editor',
|
|
552
|
+
category: 'shadow',
|
|
553
|
+
stability: 'experimental',
|
|
554
|
+
access: 'read',
|
|
555
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_INSPECT],
|
|
556
|
+
},
|
|
557
|
+
handler: input => {
|
|
558
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_INSPECT, input);
|
|
559
|
+
return normalized.ok ? sources.shadows.inspectDebug(normalized.input) : normalized.result;
|
|
560
|
+
},
|
|
561
|
+
}),
|
|
562
|
+
bridge.registerCapability({
|
|
563
|
+
manifest: {
|
|
564
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
565
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_CONTEXT_ENTER,
|
|
566
|
+
title: 'Enter shadow debug context',
|
|
567
|
+
description: 'Enter a preview-only Shadow Debug Context for a scene object or Prefab stage target. It automatically keeps the caster, resolved receivers, shadow light, and ambient lights visible, hides unrelated projected objects, applies receiver/footprint/light overlays, and returns inspect plus visibilityMeasure evidence for screenshot validation.',
|
|
568
|
+
layer: 'editor',
|
|
569
|
+
category: 'shadow',
|
|
570
|
+
stability: 'experimental',
|
|
571
|
+
access: 'write',
|
|
572
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_CONTEXT_ENTER],
|
|
573
|
+
},
|
|
574
|
+
handler: input => {
|
|
575
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_CONTEXT_ENTER, input);
|
|
576
|
+
return normalized.ok ? sources.shadows.enterDebugContext(normalized.input) : normalized.result;
|
|
577
|
+
},
|
|
578
|
+
}),
|
|
579
|
+
bridge.registerCapability({
|
|
580
|
+
manifest: {
|
|
581
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
582
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_CONTEXT_CLEAR,
|
|
583
|
+
title: 'Clear shadow debug context',
|
|
584
|
+
description: 'Clear the preview-only Shadow Debug Context, including protected receiver visibility state and shadow debug overlays. This does not write scene or prefab documents.',
|
|
585
|
+
layer: 'editor',
|
|
586
|
+
category: 'shadow',
|
|
587
|
+
stability: 'experimental',
|
|
588
|
+
access: 'write',
|
|
589
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_CONTEXT_CLEAR],
|
|
590
|
+
},
|
|
591
|
+
handler: input => {
|
|
592
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_CONTEXT_CLEAR, input);
|
|
593
|
+
return normalized.ok ? sources.shadows.clearDebugContext(normalized.input) : normalized.result;
|
|
594
|
+
},
|
|
595
|
+
}),
|
|
596
|
+
bridge.registerCapability({
|
|
597
|
+
manifest: {
|
|
598
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
599
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_OVERLAY_SET,
|
|
600
|
+
title: 'Set shadow debug overlay',
|
|
601
|
+
description: 'Show preview-only Shadow V2 debug helpers for a scene object or Prefab stage target: caster bounds, receiver bounds, light direction, expected footprint, and artifact bounds. This does not write scene or prefab documents; use before L0 screenshots to avoid visual misjudgment.',
|
|
602
|
+
layer: 'editor',
|
|
603
|
+
category: 'shadow',
|
|
604
|
+
stability: 'experimental',
|
|
605
|
+
access: 'write',
|
|
606
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_OVERLAY_SET],
|
|
607
|
+
},
|
|
608
|
+
handler: input => {
|
|
609
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_OVERLAY_SET, input);
|
|
610
|
+
return normalized.ok ? sources.shadows.setDebugOverlay(normalized.input) : normalized.result;
|
|
611
|
+
},
|
|
612
|
+
}),
|
|
613
|
+
bridge.registerCapability({
|
|
614
|
+
manifest: {
|
|
615
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
616
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_OVERLAY_CLEAR,
|
|
617
|
+
title: 'Clear shadow debug overlay',
|
|
618
|
+
description: 'Clear preview-only Shadow V2 debug helpers previously created by shadow.debug.overlay.set. This does not write scene or prefab documents.',
|
|
619
|
+
layer: 'editor',
|
|
620
|
+
category: 'shadow',
|
|
621
|
+
stability: 'experimental',
|
|
622
|
+
access: 'write',
|
|
623
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_OVERLAY_CLEAR],
|
|
624
|
+
},
|
|
625
|
+
handler: input => {
|
|
626
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_OVERLAY_CLEAR, input);
|
|
627
|
+
return normalized.ok ? sources.shadows.clearDebugOverlay(normalized.input) : normalized.result;
|
|
628
|
+
},
|
|
629
|
+
}),
|
|
630
|
+
bridge.registerCapability({
|
|
631
|
+
manifest: {
|
|
632
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
633
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_VISIBILITY_MEASURE,
|
|
634
|
+
title: 'Measure shadow visibility',
|
|
635
|
+
description: 'Return a structured Shadow V2 visibility score for a scene object or Prefab stage target. Use after shadow.debug.inspect or shadow.debug.overlay.set to avoid judging shadow success by screenshot alone. MVP measurement is structural when pixel readback is unavailable.',
|
|
636
|
+
layer: 'editor',
|
|
637
|
+
category: 'shadow',
|
|
638
|
+
stability: 'experimental',
|
|
639
|
+
access: 'read',
|
|
640
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_VISIBILITY_MEASURE],
|
|
641
|
+
},
|
|
642
|
+
handler: input => {
|
|
643
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_DEBUG_VISIBILITY_MEASURE, input);
|
|
644
|
+
return normalized.ok ? sources.shadows.measureVisibility(normalized.input) : normalized.result;
|
|
645
|
+
},
|
|
646
|
+
}),
|
|
647
|
+
...(EDITOR_SHADOW_STATIC_AUTHORING_ENABLED ? [
|
|
648
|
+
bridge.registerCapability({
|
|
649
|
+
manifest: {
|
|
650
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
651
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_STATIC_BAKE,
|
|
652
|
+
title: 'Bake static shadow',
|
|
653
|
+
description: 'Request a static shadow bake for the resolved Shadow V2 scene target through the editor rendering action pipeline. Use after shadow.resolvePreview confirms a static plan and receivers; prefab stage policies bake after placement in a scene.',
|
|
654
|
+
layer: 'editor',
|
|
655
|
+
category: 'shadow',
|
|
656
|
+
stability: 'experimental',
|
|
657
|
+
access: 'write',
|
|
658
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_STATIC_BAKE],
|
|
659
|
+
},
|
|
660
|
+
handler: input => {
|
|
661
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_STATIC_BAKE, input);
|
|
662
|
+
return normalized.ok ? sources.shadows.bakeStatic(normalized.input) : normalized.result;
|
|
663
|
+
},
|
|
664
|
+
}),
|
|
665
|
+
bridge.registerCapability({
|
|
666
|
+
manifest: {
|
|
667
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
668
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_STATIC_INVALIDATE,
|
|
669
|
+
title: 'Invalidate static shadow',
|
|
670
|
+
description: 'Mark a static Shadow V2 scene target as stale so agents and users know a rebake is required after transform, receiver, light, or policy changes.',
|
|
671
|
+
layer: 'editor',
|
|
672
|
+
category: 'shadow',
|
|
673
|
+
stability: 'experimental',
|
|
674
|
+
access: 'write',
|
|
675
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_STATIC_INVALIDATE],
|
|
676
|
+
},
|
|
677
|
+
handler: input => {
|
|
678
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SHADOW_STATIC_INVALIDATE, input);
|
|
679
|
+
return normalized.ok ? sources.shadows.invalidateStatic(normalized.input) : normalized.result;
|
|
680
|
+
},
|
|
681
|
+
}),
|
|
682
|
+
] : []),
|
|
683
|
+
bridge.registerCapability({
|
|
684
|
+
manifest: {
|
|
685
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
686
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE,
|
|
687
|
+
title: 'Move object',
|
|
688
|
+
description: 'Move a scene object by absolute position or relative offset after editorReady=true. Provide exactly one of position or offset; the capability uses the editor document adapter path and returns before/after transform state.',
|
|
689
|
+
layer: 'editor',
|
|
690
|
+
category: 'transform',
|
|
691
|
+
stability: 'experimental',
|
|
692
|
+
access: 'write',
|
|
693
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE],
|
|
694
|
+
},
|
|
695
|
+
handler: input => sources.transform.move(input),
|
|
696
|
+
}),
|
|
697
|
+
bridge.registerCapability({
|
|
698
|
+
manifest: {
|
|
699
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
700
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET,
|
|
701
|
+
title: 'Set object transform',
|
|
702
|
+
description: 'Set one or more absolute TRS fields on an editor scene object after editorReady=true. Provide objectId and at least one of position, rotation, or scale; the capability uses the editor document adapter path and returns before/after transform state.',
|
|
703
|
+
layer: 'editor',
|
|
704
|
+
category: 'transform',
|
|
705
|
+
stability: 'experimental',
|
|
706
|
+
access: 'write',
|
|
707
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET],
|
|
708
|
+
},
|
|
709
|
+
handler: input => sources.transform.set(input),
|
|
710
|
+
}),
|
|
711
|
+
bridge.registerCapability({
|
|
712
|
+
manifest: {
|
|
713
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
714
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_FOCUS_OBJECT,
|
|
715
|
+
title: 'Focus object in viewport',
|
|
716
|
+
description: 'Frame a scene object in the editor viewport after editorReady=true. Use this for semantic viewport focus instead of browser scrolling, dragging, or clicking the canvas.',
|
|
717
|
+
layer: 'editor',
|
|
718
|
+
category: 'viewport',
|
|
719
|
+
stability: 'experimental',
|
|
720
|
+
access: 'write',
|
|
721
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_FOCUS_OBJECT],
|
|
722
|
+
},
|
|
723
|
+
handler: input => sources.viewport.focusObject(input),
|
|
724
|
+
}),
|
|
725
|
+
bridge.registerCapability({
|
|
726
|
+
manifest: {
|
|
727
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
728
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_FRAME_SELECTION,
|
|
729
|
+
title: 'Frame selected object',
|
|
730
|
+
description: 'Frame the current editor selection in the viewport after editorReady=true. Use after selection.set or transform operations when the active object is already selected.',
|
|
731
|
+
layer: 'editor',
|
|
732
|
+
category: 'viewport',
|
|
733
|
+
stability: 'experimental',
|
|
734
|
+
access: 'write',
|
|
735
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_FRAME_SELECTION],
|
|
736
|
+
},
|
|
737
|
+
handler: input => {
|
|
738
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_FRAME_SELECTION, input);
|
|
739
|
+
return normalized.ok ? sources.viewport.frameSelection(normalized.input) : normalized.result;
|
|
740
|
+
},
|
|
741
|
+
}),
|
|
742
|
+
bridge.registerCapability({
|
|
743
|
+
manifest: {
|
|
744
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
745
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_VISIBILITY_SNAPSHOT,
|
|
746
|
+
title: 'Get preview visibility overrides',
|
|
747
|
+
description: 'Read preview-only visibility and isolation overrides. Use during visual debugging to understand what the editor viewport is temporarily hiding; this never reads or writes scene/prefab authored visibility.',
|
|
748
|
+
layer: 'editor',
|
|
749
|
+
category: 'viewport',
|
|
750
|
+
stability: 'experimental',
|
|
751
|
+
access: 'read',
|
|
752
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_VISIBILITY_SNAPSHOT],
|
|
753
|
+
},
|
|
754
|
+
handler: input => {
|
|
755
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_VISIBILITY_SNAPSHOT, input);
|
|
756
|
+
return normalized.ok ? sources.viewport.getVisibilitySnapshot(normalized.input) : normalized.result;
|
|
757
|
+
},
|
|
758
|
+
}),
|
|
759
|
+
bridge.registerCapability({
|
|
760
|
+
manifest: {
|
|
761
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
762
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_VISIBILITY_SET,
|
|
763
|
+
title: 'Set preview visibility',
|
|
764
|
+
description: 'Temporarily hide or show projected objects in the editor viewport for debugging. This is preview-only: it does not change scene object active/visible fields or prefab documents, and authored inactive objects are not revived.',
|
|
765
|
+
layer: 'editor',
|
|
766
|
+
category: 'viewport',
|
|
767
|
+
stability: 'experimental',
|
|
768
|
+
access: 'write',
|
|
769
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_VISIBILITY_SET],
|
|
770
|
+
},
|
|
771
|
+
handler: input => {
|
|
772
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_VISIBILITY_SET, input);
|
|
773
|
+
return normalized.ok ? sources.viewport.setVisibility(normalized.input) : normalized.result;
|
|
774
|
+
},
|
|
775
|
+
}),
|
|
776
|
+
bridge.registerCapability({
|
|
777
|
+
manifest: {
|
|
778
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
779
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_VISIBILITY_CLEAR,
|
|
780
|
+
title: 'Clear preview visibility overrides',
|
|
781
|
+
description: 'Clear all preview-only visibility and isolation overrides, restoring the viewport to authored active/visible state without writing scene or prefab data.',
|
|
782
|
+
layer: 'editor',
|
|
783
|
+
category: 'viewport',
|
|
784
|
+
stability: 'experimental',
|
|
785
|
+
access: 'write',
|
|
786
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_VISIBILITY_CLEAR],
|
|
787
|
+
},
|
|
788
|
+
handler: input => {
|
|
789
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_VISIBILITY_CLEAR, input);
|
|
790
|
+
return normalized.ok ? sources.viewport.clearVisibility(normalized.input) : normalized.result;
|
|
791
|
+
},
|
|
792
|
+
}),
|
|
793
|
+
bridge.registerCapability({
|
|
794
|
+
manifest: {
|
|
795
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
796
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_ISOLATION_ENTER,
|
|
797
|
+
title: 'Enter preview isolation',
|
|
798
|
+
description: 'Temporarily isolate projected objects in the editor viewport by hiding unrelated objects. Use this before shadow screenshots to remove visual clutter; this is preview-only and never writes scene or prefab data.',
|
|
799
|
+
layer: 'editor',
|
|
800
|
+
category: 'viewport',
|
|
801
|
+
stability: 'experimental',
|
|
802
|
+
access: 'write',
|
|
803
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_ISOLATION_ENTER],
|
|
804
|
+
},
|
|
805
|
+
handler: input => {
|
|
806
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_ISOLATION_ENTER, input);
|
|
807
|
+
return normalized.ok ? sources.viewport.enterIsolation(normalized.input) : normalized.result;
|
|
808
|
+
},
|
|
809
|
+
}),
|
|
810
|
+
bridge.registerCapability({
|
|
811
|
+
manifest: {
|
|
812
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
813
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_GET,
|
|
814
|
+
title: 'Get viewport camera state',
|
|
815
|
+
description: 'Read the editor viewport camera state after editorReady=true. Use this to inspect the current view preset, projection, target, pose, radius, and selection before visual analysis.',
|
|
816
|
+
layer: 'editor',
|
|
817
|
+
category: 'viewport',
|
|
818
|
+
stability: 'experimental',
|
|
819
|
+
access: 'read',
|
|
820
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_GET],
|
|
821
|
+
},
|
|
822
|
+
handler: input => {
|
|
823
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_GET, input);
|
|
824
|
+
return normalized.ok ? sources.viewport.getCamera(normalized.input) : normalized.result;
|
|
825
|
+
},
|
|
826
|
+
}),
|
|
827
|
+
bridge.registerCapability({
|
|
828
|
+
manifest: {
|
|
829
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
830
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_SET_PRESET,
|
|
831
|
+
title: 'Set viewport camera preset',
|
|
832
|
+
description: 'Set a stable editor viewport camera preset after editorReady=true. Prefer top/front/side/iso/threeQuarterTop presets for agent visual analysis before falling back to browser screenshots.',
|
|
833
|
+
layer: 'editor',
|
|
834
|
+
category: 'viewport',
|
|
835
|
+
stability: 'experimental',
|
|
836
|
+
access: 'write',
|
|
837
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_SET_PRESET],
|
|
838
|
+
},
|
|
839
|
+
handler: input => {
|
|
840
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_SET_PRESET, input);
|
|
841
|
+
return normalized.ok ? sources.viewport.setCameraPreset(normalized.input) : normalized.result;
|
|
842
|
+
},
|
|
843
|
+
}),
|
|
844
|
+
bridge.registerCapability({
|
|
845
|
+
manifest: {
|
|
846
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
847
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_ORBIT,
|
|
848
|
+
title: 'Orbit viewport camera',
|
|
849
|
+
description: 'Apply a semantic yaw/pitch/distance adjustment to the editor viewport camera after editorReady=true. Use for small inspection adjustments after a preset establishes the baseline view.',
|
|
850
|
+
layer: 'editor',
|
|
851
|
+
category: 'viewport',
|
|
852
|
+
stability: 'experimental',
|
|
853
|
+
access: 'write',
|
|
854
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_ORBIT],
|
|
855
|
+
},
|
|
856
|
+
handler: input => {
|
|
857
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_ORBIT, input);
|
|
858
|
+
return normalized.ok ? sources.viewport.orbitCamera(normalized.input) : normalized.result;
|
|
859
|
+
},
|
|
860
|
+
}),
|
|
861
|
+
bridge.registerCapability({
|
|
862
|
+
manifest: {
|
|
863
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
864
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_SNAPSHOT_GET,
|
|
865
|
+
title: 'Get editor snapshot',
|
|
866
|
+
description: 'Read a lightweight editor summary after editorReady=true. By default it returns mode, busy/dirty/status, selection, and objectCount; request includeObjects with objectLimit only when object summaries are needed.',
|
|
867
|
+
layer: 'editor',
|
|
868
|
+
category: 'state',
|
|
869
|
+
stability: 'experimental',
|
|
870
|
+
access: 'read',
|
|
871
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_SNAPSHOT_GET],
|
|
872
|
+
},
|
|
873
|
+
handler: input => {
|
|
874
|
+
const normalized = normalizeObjectInput(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_SNAPSHOT_GET, input);
|
|
875
|
+
return normalized.ok ? sources.state.getSnapshot(normalized.input) : normalized.result;
|
|
876
|
+
},
|
|
877
|
+
}),
|
|
878
|
+
bridge.registerCapability({
|
|
879
|
+
manifest: {
|
|
880
|
+
schemaVersion: EDITOR_AGENT_BRIDGE_SCHEMA_VERSION,
|
|
881
|
+
id: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_STATE_GET,
|
|
882
|
+
title: 'Get editor state',
|
|
883
|
+
description: 'Read editor mode, status, selection, dirty state, and optional object summary. Use for verification after L1/L2 operations and for diagnostics before falling back to browser automation.',
|
|
884
|
+
layer: 'editor',
|
|
885
|
+
category: 'state',
|
|
886
|
+
stability: 'experimental',
|
|
887
|
+
access: 'read',
|
|
888
|
+
...EDITOR_AGENT_BRIDGE_CAPABILITY_SCHEMAS[EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_STATE_GET],
|
|
889
|
+
},
|
|
890
|
+
handler: input => sources.state.getState(input ?? {}),
|
|
891
|
+
}),
|
|
892
|
+
];
|
|
893
|
+
return () => {
|
|
894
|
+
for (const unregisterCapability of unregister)
|
|
895
|
+
unregisterCapability();
|
|
896
|
+
};
|
|
897
|
+
}
|
|
898
|
+
function normalizeObjectInput(capabilityId, input) {
|
|
899
|
+
if (input === undefined || input === null)
|
|
900
|
+
return { ok: true, input: {} };
|
|
901
|
+
if (typeof input === 'object' && !Array.isArray(input))
|
|
902
|
+
return { ok: true, input: input };
|
|
903
|
+
return {
|
|
904
|
+
ok: false,
|
|
905
|
+
result: createLocalEditorAgentBridgeFailure(capabilityId, `${capabilityId} input must be an object.`, { code: 'host.invalidInput' }),
|
|
906
|
+
};
|
|
907
|
+
}
|
|
908
|
+
//# sourceMappingURL=register.js.map
|