@fps-games/editor 0.2.1-beta.3 → 0.2.1-beta.4
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/build-info.json +44 -44
- package/dist/editor-commands/capabilities/assets.d.ts +8 -0
- package/dist/editor-commands/capabilities/assets.d.ts.map +1 -0
- package/dist/{agent-bridge → editor-commands}/capabilities/assets.js +41 -41
- package/dist/editor-commands/capabilities/assets.js.map +1 -0
- package/dist/editor-commands/capabilities/editor-state.d.ts +5 -0
- package/dist/editor-commands/capabilities/editor-state.d.ts.map +1 -0
- package/dist/{agent-bridge → editor-commands}/capabilities/editor-state.js +22 -22
- package/dist/editor-commands/capabilities/editor-state.js.map +1 -0
- package/dist/editor-commands/capabilities/hierarchy.d.ts +4 -0
- package/dist/editor-commands/capabilities/hierarchy.d.ts.map +1 -0
- package/dist/{agent-bridge → editor-commands}/capabilities/hierarchy.js +5 -5
- package/dist/editor-commands/capabilities/hierarchy.js.map +1 -0
- package/dist/editor-commands/capabilities/host-lifecycle.d.ts +11 -0
- package/dist/editor-commands/capabilities/host-lifecycle.d.ts.map +1 -0
- package/dist/editor-commands/capabilities/host-lifecycle.js +149 -0
- package/dist/editor-commands/capabilities/host-lifecycle.js.map +1 -0
- package/dist/editor-commands/capabilities/prefabs.d.ts +5 -0
- package/dist/editor-commands/capabilities/prefabs.d.ts.map +1 -0
- package/dist/{agent-bridge → editor-commands}/capabilities/prefabs.js +93 -93
- package/dist/editor-commands/capabilities/prefabs.js.map +1 -0
- package/dist/editor-commands/capabilities/scene-objects.d.ts +8 -0
- package/dist/editor-commands/capabilities/scene-objects.d.ts.map +1 -0
- package/dist/editor-commands/capabilities/scene-objects.js +480 -0
- package/dist/editor-commands/capabilities/scene-objects.js.map +1 -0
- package/dist/editor-commands/capabilities/selection.d.ts +5 -0
- package/dist/editor-commands/capabilities/selection.d.ts.map +1 -0
- package/dist/editor-commands/capabilities/selection.js +60 -0
- package/dist/editor-commands/capabilities/selection.js.map +1 -0
- package/dist/editor-commands/capabilities/shadows.d.ts +5 -0
- package/dist/editor-commands/capabilities/shadows.d.ts.map +1 -0
- package/dist/{agent-bridge → editor-commands}/capabilities/shadows.js +74 -74
- package/dist/editor-commands/capabilities/shadows.js.map +1 -0
- package/dist/editor-commands/capabilities/transform.d.ts +5 -0
- package/dist/editor-commands/capabilities/transform.d.ts.map +1 -0
- package/dist/editor-commands/capabilities/transform.js +164 -0
- package/dist/editor-commands/capabilities/transform.js.map +1 -0
- package/dist/editor-commands/capabilities/ui-regions.d.ts +4 -0
- package/dist/editor-commands/capabilities/ui-regions.d.ts.map +1 -0
- package/dist/{agent-bridge → editor-commands}/capabilities/ui-regions.js +55 -57
- package/dist/editor-commands/capabilities/ui-regions.js.map +1 -0
- package/dist/editor-commands/capabilities/viewport.d.ts +5 -0
- package/dist/editor-commands/capabilities/viewport.d.ts.map +1 -0
- package/dist/{agent-bridge → editor-commands}/capabilities/viewport.js +100 -100
- package/dist/editor-commands/capabilities/viewport.js.map +1 -0
- package/dist/editor-commands/command-sources.d.ts +7 -0
- package/dist/editor-commands/command-sources.d.ts.map +1 -0
- package/dist/editor-commands/command-sources.js +34 -0
- package/dist/editor-commands/command-sources.js.map +1 -0
- package/dist/editor-commands/diagnostics.d.ts +12 -0
- package/dist/editor-commands/diagnostics.d.ts.map +1 -0
- package/dist/{agent-bridge → editor-commands}/diagnostics.js +4 -4
- package/dist/editor-commands/diagnostics.js.map +1 -0
- package/dist/{agent-bridge → editor-commands}/index.d.ts +1 -1
- package/dist/editor-commands/index.d.ts.map +1 -0
- package/dist/{agent-bridge → editor-commands}/index.js +1 -1
- package/dist/editor-commands/index.js.map +1 -0
- package/dist/editor-commands/register.d.ts +4 -0
- package/dist/editor-commands/register.d.ts.map +1 -0
- package/dist/{agent-bridge → editor-commands}/register.js +323 -286
- package/dist/editor-commands/register.js.map +1 -0
- package/dist/{agent-bridge → editor-commands}/shared.d.ts +80 -80
- package/dist/editor-commands/shared.d.ts.map +1 -0
- package/dist/{agent-bridge → editor-commands}/shared.js +29 -29
- package/dist/editor-commands/shared.js.map +1 -0
- package/dist/editor-commands/source-types.d.ts +110 -0
- package/dist/editor-commands/source-types.d.ts.map +1 -0
- package/dist/editor-commands/source-types.js.map +1 -0
- package/dist/editor-plugin-commands.d.ts +4 -0
- package/dist/editor-plugin-commands.d.ts.map +1 -0
- package/dist/editor-plugin-commands.js +18 -0
- package/dist/editor-plugin-commands.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/local-editor-commands.d.ts +2 -0
- package/dist/local-editor-commands.d.ts.map +1 -0
- package/dist/local-editor-commands.js +2 -0
- package/dist/local-editor-commands.js.map +1 -0
- package/dist/local-editor-harness.d.ts +35 -21
- package/dist/local-editor-harness.d.ts.map +1 -1
- package/dist/local-editor-harness.js +1721 -367
- package/dist/local-editor-harness.js.map +1 -1
- package/dist/local-editor-prefab-stage-transaction.d.ts +2 -1
- package/dist/local-editor-prefab-stage-transaction.d.ts.map +1 -1
- package/dist/local-editor-prefab-stage-transaction.js +6 -5
- package/dist/local-editor-prefab-stage-transaction.js.map +1 -1
- package/dist/local-editor-scene-view-interaction-runtime.d.ts.map +1 -1
- package/dist/local-editor-scene-view-interaction-runtime.js +2 -5
- package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -1
- package/dist/playable-local-editor-entry.d.ts +10 -0
- package/dist/playable-local-editor-entry.d.ts.map +1 -1
- package/dist/playable-local-editor-entry.js +10 -2
- package/dist/playable-local-editor-entry.js.map +1 -1
- package/dist/playable-local-editor-host.d.ts +3 -32
- package/dist/playable-local-editor-host.d.ts.map +1 -1
- package/dist/playable-local-editor-host.js +6 -70
- package/dist/playable-local-editor-host.js.map +1 -1
- package/dist/playable-product-local-editor.d.ts +1 -2
- package/dist/playable-product-local-editor.d.ts.map +1 -1
- package/dist/playable-product-local-editor.js +0 -1
- package/dist/playable-product-local-editor.js.map +1 -1
- package/dist/playable-product-projection-preview.d.ts.map +1 -1
- package/dist/playable-product-projection-preview.js +1 -1
- package/dist/playable-product-projection-preview.js.map +1 -1
- package/dist/playable-product-scene-capabilities.d.ts +0 -2
- package/dist/playable-product-scene-capabilities.d.ts.map +1 -1
- package/dist/playable-product-scene-capabilities.js +33 -6
- package/dist/playable-product-scene-capabilities.js.map +1 -1
- package/dist/playable-runtime-babylon.d.ts +4 -0
- package/dist/playable-runtime-babylon.d.ts.map +1 -1
- package/dist/playable-runtime-babylon.js +4 -0
- package/dist/playable-runtime-babylon.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/dist/playable-standard-project.d.ts +0 -2
- package/dist/playable-standard-project.d.ts.map +1 -1
- package/dist/playable-standard-project.js +1 -2
- package/dist/playable-standard-project.js.map +1 -1
- package/dist/project-service-projection.d.ts +16 -0
- package/dist/project-service-projection.d.ts.map +1 -0
- package/dist/project-service-projection.js +67 -0
- package/dist/project-service-projection.js.map +1 -0
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.d.ts +18 -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 +54 -18
- package/node_modules/@fps-games/babylon-renderer/dist/post-process/babylon-default-pipeline.js.map +1 -1
- package/node_modules/@fps-games/babylon-renderer/package.json +9 -9
- package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +1 -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 +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js +127 -13
- package/node_modules/@fps-games/editor-babylon/dist/selection-presentation-controller.js.map +1 -1
- 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 +66 -1
- package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-babylon/package.json +6 -6
- package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.d.ts +32 -0
- package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.js +254 -0
- package/node_modules/@fps-games/editor-browser/dist/editor-command-service-client.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts +3 -1
- package/node_modules/@fps-games/editor-browser/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/index.js +2 -0
- package/node_modules/@fps-games/editor-browser/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.d.ts +68 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.js +650 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-command-center.js.map +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts +1 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js +22 -0
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-formal-surface-visibility.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +8 -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 +117 -6
- 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-view.d.ts +14 -1
- 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 +100 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts +8 -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 +75 -2
- 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-types.d.ts +37 -12
- 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.d.ts +25 -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 +332 -107
- package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
- package/node_modules/@fps-games/editor-browser/package.json +7 -7
- package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.d.ts +107 -0
- package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.js +1211 -0
- package/node_modules/@fps-games/editor-core/dist/editor-authoring-host.js.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.d.ts +34 -0
- package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.js +260 -0
- package/node_modules/@fps-games/editor-core/dist/editor-command-capability-adapter.js.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.d.ts +9 -0
- package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.js +14 -0
- package/node_modules/@fps-games/editor-core/dist/editor-command-composed-authority.js.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-command-observability.d.ts +18 -0
- package/node_modules/@fps-games/editor-core/dist/editor-command-observability.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-command-observability.js +113 -0
- package/node_modules/@fps-games/editor-core/dist/editor-command-observability.js.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-command-system.d.ts +82 -0
- package/node_modules/@fps-games/editor-core/dist/editor-command-system.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-command-system.js +1098 -0
- package/node_modules/@fps-games/editor-core/dist/editor-command-system.js.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.d.ts +6 -7
- 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 +62 -103
- package/node_modules/@fps-games/editor-core/dist/editor-plugin-host.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.d.ts +30 -0
- package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.js +540 -0
- package/node_modules/@fps-games/editor-core/dist/editor-service-gateway.js.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-session-authority.d.ts +9 -0
- package/node_modules/@fps-games/editor-core/dist/editor-session-authority.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-session-authority.js +61 -0
- package/node_modules/@fps-games/editor-core/dist/editor-session-authority.js.map +1 -0
- package/node_modules/@fps-games/editor-core/dist/editor-session.d.ts +55 -0
- 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 +247 -6
- package/node_modules/@fps-games/editor-core/dist/editor-session.js.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/index.d.ts +6 -2
- package/node_modules/@fps-games/editor-core/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-core/dist/index.js +6 -2
- package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-core/package.json +6 -6
- package/node_modules/@fps-games/editor-forge-play/dist/index.d.ts +0 -1
- package/node_modules/@fps-games/editor-forge-play/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-forge-play/dist/index.js +0 -1
- package/node_modules/@fps-games/editor-forge-play/dist/index.js.map +1 -1
- package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.d.ts +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/bridge-command/protocol.d.ts.map +1 -1
- 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 +41 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/document/helpers.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play-types.d.ts +27 -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 +2 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/forge-play.js +214 -7
- 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 +1 -0
- 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 +11 -3
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/host-controller.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/index.d.ts +2 -4
- 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 +0 -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 +77 -31
- 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/types.d.ts +8 -1
- 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/material-binding/asset-fields.d.ts +21 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js +90 -4
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/asset-fields.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.d.ts +27 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js +161 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/binding.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.d.ts +2 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js +5 -92
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.d.ts +7 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js +26 -9
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/scene-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts +9 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js +19 -8
- package/node_modules/@fps-games/editor-playable-sdk/dist/material-binding/slot-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.d.ts +5 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js +16 -4
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/material-override-inspector.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/prefab-stage/stage-inspector.d.ts +9 -0
- 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 +12 -2
- 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/ground-decal.d.ts +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js +10 -5
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/ground-decal.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/index.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 +1 -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 +17 -82
- 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 +53 -57
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/project-host-services.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js +3 -2
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/scene-session.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.d.ts +10 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.js +256 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/product/standard-authoring-commands.js.map +1 -0
- 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 +7 -5
- 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/scene-source/client.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/scene-source/client.js +8 -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/types.d.ts +1 -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/upgrade-doctor/inspectors.js +134 -12
- 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.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-scene-workflow.js +47 -0
- 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/editor-service-vite.d.ts +27 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.js +592 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/editor-service-vite.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.d.ts +3 -1
- 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 +2 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/index.js.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/plugin.js +61 -6
- 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 +0 -2
- 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 -10
- 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-authoring-api.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/product-authoring-api.js +21 -0
- 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/project-authoring-backend.d.ts +13 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.js +18 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-authoring-backend.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.d.ts +28 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.js +863 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/project-editor-service.js.map +1 -0
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/types.d.ts +2 -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/editor-command-capabilities.d.ts +1626 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-command-capabilities.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/{agent-bridge.js → editor-command-capabilities.js} +766 -620
- package/node_modules/@fps-games/editor-protocol/dist/editor-command-capabilities.js.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.d.ts +69 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.js +22 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-command-trace.js.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-command.d.ts +136 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-command.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-command.js +2 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-command.js.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-service.d.ts +225 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-service.d.ts.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-service.js +4 -0
- package/node_modules/@fps-games/editor-protocol/dist/editor-service.js.map +1 -0
- package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +6 -3
- package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
- package/node_modules/@fps-games/editor-protocol/dist/index.js +6 -3
- 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/package.json +3 -3
- package/node_modules/@fps-games/editor-ui/package.json +1 -1
- package/node_modules/@fps-games/playable-assets/package.json +1 -1
- package/node_modules/@fps-games/playable-contracts/package.json +1 -1
- package/node_modules/@fps-games/playable-rendering/package.json +2 -2
- 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 +6 -6
- package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts +1 -0
- package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.d.ts.map +1 -1
- package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js +78 -4
- package/node_modules/@fps-games/plugin-hierarchy/dist/kernel.js.map +1 -1
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-hierarchy/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-hierarchy/package.json +5 -5
- 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/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-shadow-map-experiment/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadow-map-experiment/package.json +5 -5
- package/node_modules/@fps-games/plugin-shadows/dist/version.d.ts +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.js +1 -1
- package/node_modules/@fps-games/plugin-shadows/dist/version.js.map +1 -1
- package/node_modules/@fps-games/plugin-shadows/package.json +7 -7
- package/package.json +23 -23
- package/dist/agent-bridge/capabilities/assets.d.ts +0 -8
- package/dist/agent-bridge/capabilities/assets.d.ts.map +0 -1
- package/dist/agent-bridge/capabilities/assets.js.map +0 -1
- package/dist/agent-bridge/capabilities/editor-state.d.ts +0 -5
- package/dist/agent-bridge/capabilities/editor-state.d.ts.map +0 -1
- package/dist/agent-bridge/capabilities/editor-state.js.map +0 -1
- package/dist/agent-bridge/capabilities/hierarchy.d.ts +0 -4
- package/dist/agent-bridge/capabilities/hierarchy.d.ts.map +0 -1
- package/dist/agent-bridge/capabilities/hierarchy.js.map +0 -1
- package/dist/agent-bridge/capabilities/host-lifecycle.d.ts +0 -11
- package/dist/agent-bridge/capabilities/host-lifecycle.d.ts.map +0 -1
- package/dist/agent-bridge/capabilities/host-lifecycle.js +0 -149
- package/dist/agent-bridge/capabilities/host-lifecycle.js.map +0 -1
- package/dist/agent-bridge/capabilities/prefabs.d.ts +0 -5
- package/dist/agent-bridge/capabilities/prefabs.d.ts.map +0 -1
- package/dist/agent-bridge/capabilities/prefabs.js.map +0 -1
- package/dist/agent-bridge/capabilities/scene-objects.d.ts +0 -8
- package/dist/agent-bridge/capabilities/scene-objects.d.ts.map +0 -1
- package/dist/agent-bridge/capabilities/scene-objects.js +0 -480
- package/dist/agent-bridge/capabilities/scene-objects.js.map +0 -1
- package/dist/agent-bridge/capabilities/selection.d.ts +0 -5
- package/dist/agent-bridge/capabilities/selection.d.ts.map +0 -1
- package/dist/agent-bridge/capabilities/selection.js +0 -60
- package/dist/agent-bridge/capabilities/selection.js.map +0 -1
- package/dist/agent-bridge/capabilities/shadows.d.ts +0 -5
- package/dist/agent-bridge/capabilities/shadows.d.ts.map +0 -1
- package/dist/agent-bridge/capabilities/shadows.js.map +0 -1
- package/dist/agent-bridge/capabilities/transform.d.ts +0 -5
- package/dist/agent-bridge/capabilities/transform.d.ts.map +0 -1
- package/dist/agent-bridge/capabilities/transform.js +0 -164
- package/dist/agent-bridge/capabilities/transform.js.map +0 -1
- package/dist/agent-bridge/capabilities/ui-regions.d.ts +0 -4
- package/dist/agent-bridge/capabilities/ui-regions.d.ts.map +0 -1
- package/dist/agent-bridge/capabilities/ui-regions.js.map +0 -1
- package/dist/agent-bridge/capabilities/viewport.d.ts +0 -5
- package/dist/agent-bridge/capabilities/viewport.d.ts.map +0 -1
- package/dist/agent-bridge/capabilities/viewport.js.map +0 -1
- package/dist/agent-bridge/capability-sources.d.ts +0 -7
- package/dist/agent-bridge/capability-sources.d.ts.map +0 -1
- package/dist/agent-bridge/capability-sources.js +0 -34
- package/dist/agent-bridge/capability-sources.js.map +0 -1
- package/dist/agent-bridge/diagnostics.d.ts +0 -12
- package/dist/agent-bridge/diagnostics.d.ts.map +0 -1
- package/dist/agent-bridge/diagnostics.js.map +0 -1
- package/dist/agent-bridge/index.d.ts.map +0 -1
- package/dist/agent-bridge/index.js.map +0 -1
- package/dist/agent-bridge/register.d.ts +0 -4
- package/dist/agent-bridge/register.d.ts.map +0 -1
- package/dist/agent-bridge/register.js.map +0 -1
- package/dist/agent-bridge/shared.d.ts.map +0 -1
- package/dist/agent-bridge/shared.js.map +0 -1
- package/dist/agent-bridge/source-types.d.ts +0 -110
- package/dist/agent-bridge/source-types.d.ts.map +0 -1
- package/dist/agent-bridge/source-types.js.map +0 -1
- package/dist/editor-plugin-agent-capabilities.d.ts +0 -4
- package/dist/editor-plugin-agent-capabilities.d.ts.map +0 -1
- package/dist/editor-plugin-agent-capabilities.js +0 -64
- package/dist/editor-plugin-agent-capabilities.js.map +0 -1
- package/dist/local-editor-agent-actions.d.ts +0 -43
- package/dist/local-editor-agent-actions.d.ts.map +0 -1
- package/dist/local-editor-agent-actions.js +0 -321
- package/dist/local-editor-agent-actions.js.map +0 -1
- package/dist/local-editor-agent-bridge-transport.d.ts +0 -129
- package/dist/local-editor-agent-bridge-transport.d.ts.map +0 -1
- package/dist/local-editor-agent-bridge-transport.js +0 -403
- package/dist/local-editor-agent-bridge-transport.js.map +0 -1
- package/dist/local-editor-agent-bridge.d.ts +0 -2
- package/dist/local-editor-agent-bridge.d.ts.map +0 -1
- package/dist/local-editor-agent-bridge.js +0 -2
- package/dist/local-editor-agent-bridge.js.map +0 -1
- package/dist/local-editor-agent-context.d.ts +0 -68
- package/dist/local-editor-agent-context.d.ts.map +0 -1
- package/dist/local-editor-agent-context.js +0 -716
- package/dist/local-editor-agent-context.js.map +0 -1
- package/node_modules/@fps-games/editor-core/dist/agent-bridge.d.ts +0 -22
- package/node_modules/@fps-games/editor-core/dist/agent-bridge.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-core/dist/agent-bridge.js +0 -106
- package/node_modules/@fps-games/editor-core/dist/agent-bridge.js.map +0 -1
- package/node_modules/@fps-games/editor-core/dist/agent-interaction.d.ts +0 -17
- package/node_modules/@fps-games/editor-core/dist/agent-interaction.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-core/dist/agent-interaction.js +0 -14
- package/node_modules/@fps-games/editor-core/dist/agent-interaction.js.map +0 -1
- package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.d.ts +0 -23
- package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js +0 -47
- package/node_modules/@fps-games/editor-forge-play/dist/agent-transport.js.map +0 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.d.ts +0 -112
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js +0 -159
- package/node_modules/@fps-games/editor-playable-sdk/dist/local-harness/agent-descriptions.js.map +0 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.d.ts +0 -15
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js +0 -76
- package/node_modules/@fps-games/editor-playable-sdk/dist/vite/session-metadata.js.map +0 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts +0 -1622
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent-bridge.js.map +0 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent-trace.d.ts +0 -68
- package/node_modules/@fps-games/editor-protocol/dist/agent-trace.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js +0 -23
- package/node_modules/@fps-games/editor-protocol/dist/agent-trace.js.map +0 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts +0 -187
- package/node_modules/@fps-games/editor-protocol/dist/agent.d.ts.map +0 -1
- package/node_modules/@fps-games/editor-protocol/dist/agent.js +0 -5
- package/node_modules/@fps-games/editor-protocol/dist/agent.js.map +0 -1
- /package/dist/{agent-bridge → editor-commands}/source-types.js +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"source-types.js","sourceRoot":"","sources":["../../src/agent-bridge/source-types.ts"],"names":[],"mappings":"","sourcesContent":["import type {\n EditorAgentBridgeCallResult,\n EditorAgentBridgeAssetAnalysisGetInput,\n EditorAgentBridgeAssetAnalysisGetOutput,\n EditorAgentBridgeAssetInfoGetInput,\n EditorAgentBridgeAssetInfoGetOutput,\n EditorAgentBridgeAssetLibraryListInput,\n EditorAgentBridgeAssetLibraryListOutput,\n EditorAgentBridgeEditorSnapshot,\n EditorAgentBridgeEditorSnapshotGetInput,\n EditorAgentBridgeEditorState,\n EditorAgentBridgeEditorStateGetInput,\n EditorAgentBridgeEditorDiagnosticsListInput,\n EditorAgentBridgeEditorDiagnosticsListOutput,\n EditorAgentBridgeUiRegionsGetInput,\n EditorAgentBridgeUiRegionsGetOutput,\n EditorAgentBridgeHostEditorEnterInput,\n EditorAgentBridgeHostEditorEnterOutput,\n EditorAgentBridgeHostEditorSaveAndRunInput,\n EditorAgentBridgeHostEditorSaveAndRunOutput,\n EditorAgentBridgeHostEditorDiscardAndRunInput,\n EditorAgentBridgeHostEditorDiscardAndRunOutput,\n EditorAgentBridgeHostEditorWaitReadyInput,\n EditorAgentBridgeHostEditorWaitReadyOutput,\n EditorAgentBridgeHostModeGetInput,\n EditorAgentBridgeHostModeGetOutput,\n EditorAgentBridgeHierarchyScopeGetInput,\n EditorAgentBridgeHierarchyScopeGetOutput,\n EditorAgentBridgeHierarchyOperationsListInput,\n EditorAgentBridgeHierarchyOperationsListOutput,\n EditorAgentBridgeHierarchyOperationExecuteInput,\n EditorAgentBridgeHierarchyOperationExecuteOutput,\n EditorAgentBridgeObjectCreatePrimitiveInput,\n EditorAgentBridgeObjectCreatePrimitiveOutput,\n EditorAgentBridgeObjectCreateFromAssetInput,\n EditorAgentBridgeObjectCreateFromAssetOutput,\n EditorAgentBridgeObjectDeleteInput,\n EditorAgentBridgeObjectDeleteOutput,\n EditorAgentBridgeObjectResolveInput,\n EditorAgentBridgeObjectResolveOutput,\n EditorAgentBridgePrefabMaterialSlotsListInput,\n EditorAgentBridgePrefabMaterialSlotsListOutput,\n EditorAgentBridgePrefabAssetRenameInput,\n EditorAgentBridgePrefabAssetRenameOutput,\n EditorAgentBridgePrefabNodeCreateFromAssetInput,\n EditorAgentBridgePrefabNodeCreateGroupInput,\n EditorAgentBridgePrefabNodeCreateMarkerInput,\n EditorAgentBridgePrefabNodeCreatePrimitiveInput,\n EditorAgentBridgePrefabNodeDeleteInput,\n EditorAgentBridgePrefabNodeMutationOutput,\n EditorAgentBridgePrefabNodeReparentInput,\n EditorAgentBridgePrefabNodeRenameInput,\n EditorAgentBridgePrefabNodeRenameOutput,\n EditorAgentBridgePrefabNodeSelectInput,\n EditorAgentBridgePrefabNodeSelectOutput,\n EditorAgentBridgePrefabNodeSetTransformInput,\n EditorAgentBridgePrefabNodeSetMarkerInput,\n EditorAgentBridgePrefabResolveInput,\n EditorAgentBridgePrefabResolveOutput,\n EditorAgentBridgePrefabSceneGetInput,\n EditorAgentBridgePrefabSceneGetOutput,\n EditorAgentBridgePrefabSourceStructureGetInput,\n EditorAgentBridgePrefabSourceStructureGetOutput,\n EditorAgentBridgePrefabStageExitInput,\n EditorAgentBridgePrefabStageExitOutput,\n EditorAgentBridgePrefabStageActionInput,\n EditorAgentBridgePrefabStageActionOutput,\n EditorAgentBridgePrefabStageOpenInput,\n EditorAgentBridgePrefabStageOpenOutput,\n EditorAgentBridgeSceneObject,\n EditorAgentBridgeSceneObjectsListInput,\n EditorAgentBridgeSelectionSetInput,\n EditorAgentBridgeSelectionSetOutput,\n EditorAgentBridgeSelectionState,\n EditorAgentBridgeShadowPolicyGetInput,\n EditorAgentBridgeShadowPolicyGetOutput,\n EditorAgentBridgeShadowPolicySetInput,\n EditorAgentBridgeShadowPolicySetOutput,\n EditorAgentBridgeShadowMapExperimentConfigGetInput,\n EditorAgentBridgeShadowMapExperimentConfigGetOutput,\n EditorAgentBridgeShadowMapExperimentPolicyGetInput,\n EditorAgentBridgeShadowMapExperimentPolicyOutput,\n EditorAgentBridgeShadowMapExperimentPolicySetInput,\n EditorAgentBridgeShadowMapExperimentPolicySetOutput,\n EditorAgentBridgeShadowMapExperimentPlanPreviewInput,\n EditorAgentBridgeShadowMapExperimentPlanPreviewOutput,\n EditorAgentBridgeShadowMapExperimentRuntimeSnapshotInput,\n EditorAgentBridgeShadowMapExperimentRuntimeSnapshotOutput,\n EditorAgentBridgeShadowDebugInspectInput,\n EditorAgentBridgeShadowDebugInspectOutput,\n EditorAgentBridgeShadowDebugContextClearInput,\n EditorAgentBridgeShadowDebugContextClearOutput,\n EditorAgentBridgeShadowDebugContextEnterInput,\n EditorAgentBridgeShadowDebugContextEnterOutput,\n EditorAgentBridgeShadowDebugOverlayClearInput,\n EditorAgentBridgeShadowDebugOverlayClearOutput,\n EditorAgentBridgeShadowDebugOverlaySetInput,\n EditorAgentBridgeShadowDebugOverlaySetOutput,\n EditorAgentBridgeShadowDebugVisibilityMeasureInput,\n EditorAgentBridgeShadowDebugVisibilityMeasureOutput,\n EditorAgentBridgeShadowReceiversListInput,\n EditorAgentBridgeShadowReceiversListOutput,\n EditorAgentBridgeShadowResolvePreviewInput,\n EditorAgentBridgeShadowResolvePreviewOutput,\n EditorAgentBridgeShadowStaticBakeInput,\n EditorAgentBridgeShadowStaticBakeOutput,\n EditorAgentBridgeShadowStaticInvalidateInput,\n EditorAgentBridgeShadowStaticInvalidateOutput,\n EditorAgentBridgeTransformMoveInput,\n EditorAgentBridgeTransformMoveOutput,\n EditorAgentBridgeTransformSetInput,\n EditorAgentBridgeTransformSetOutput,\n EditorAgentBridgeViewportCameraGetInput,\n EditorAgentBridgeViewportCameraOrbitInput,\n EditorAgentBridgeViewportCameraOrbitOutput,\n EditorAgentBridgeViewportCameraSetPresetInput,\n EditorAgentBridgeViewportCameraSetPresetOutput,\n EditorAgentBridgeViewportCameraState,\n EditorAgentBridgeViewportFocusObjectInput,\n EditorAgentBridgeViewportFocusObjectOutput,\n EditorAgentBridgeViewportFrameSelectionInput,\n EditorAgentBridgeViewportFrameSelectionOutput,\n EditorAgentBridgeViewportIsolationEnterInput,\n EditorAgentBridgeViewportIsolationEnterOutput,\n EditorAgentBridgeViewportVisibilityClearInput,\n EditorAgentBridgeViewportVisibilityMutationOutput,\n EditorAgentBridgeViewportVisibilitySetInput,\n EditorAgentBridgeViewportVisibilitySnapshotInput,\n EditorAgentBridgeViewportVisibilitySnapshotOutput,\n} from '@fps-games/editor-protocol';\nimport type { EditorAgentBridgeCallContext } from '@fps-games/editor-core';\n\nexport type LocalEditorAgentBridgeSourceResult<TOutput> =\n | TOutput\n | EditorAgentBridgeCallResult<TOutput>\n | Promise<TOutput | EditorAgentBridgeCallResult<TOutput>>;\n\nexport interface LocalEditorAgentBridgeHostSource {\n isBusy(): boolean;\n getMode(input: EditorAgentBridgeHostModeGetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeHostModeGetOutput>;\n enterEditor(input: EditorAgentBridgeHostEditorEnterInput, context?: EditorAgentBridgeCallContext): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeHostEditorEnterOutput>;\n saveAndRun(input: EditorAgentBridgeHostEditorSaveAndRunInput, context?: EditorAgentBridgeCallContext): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeHostEditorSaveAndRunOutput>;\n discardAndRun(input: EditorAgentBridgeHostEditorDiscardAndRunInput, context?: EditorAgentBridgeCallContext): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeHostEditorDiscardAndRunOutput>;\n waitReady(input: EditorAgentBridgeHostEditorWaitReadyInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeHostEditorWaitReadyOutput>;\n}\n\nexport interface LocalEditorAgentBridgeAssetSource {\n listAssets(input: EditorAgentBridgeAssetLibraryListInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeAssetLibraryListOutput>;\n getAssetInfo(input: EditorAgentBridgeAssetInfoGetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeAssetInfoGetOutput>;\n getAssetAnalysis(input: EditorAgentBridgeAssetAnalysisGetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeAssetAnalysisGetOutput>;\n}\n\nexport interface LocalEditorAgentBridgeHierarchySource {\n getScope(input: EditorAgentBridgeHierarchyScopeGetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeHierarchyScopeGetOutput>;\n listOperations(input: EditorAgentBridgeHierarchyOperationsListInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeHierarchyOperationsListOutput>;\n executeOperation(input: EditorAgentBridgeHierarchyOperationExecuteInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeHierarchyOperationExecuteOutput>;\n}\n\nexport interface LocalEditorAgentBridgeObjectSource {\n listObjects(input: EditorAgentBridgeSceneObjectsListInput): EditorAgentBridgeSceneObject[];\n resolveObject(input: EditorAgentBridgeObjectResolveInput): EditorAgentBridgeObjectResolveOutput;\n getObject(objectId: string): EditorAgentBridgeSceneObject | null;\n createPrimitive(input: EditorAgentBridgeObjectCreatePrimitiveInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeObjectCreatePrimitiveOutput>;\n createFromAsset(input: EditorAgentBridgeObjectCreateFromAssetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeObjectCreateFromAssetOutput>;\n deleteObjects(input: EditorAgentBridgeObjectDeleteInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeObjectDeleteOutput>;\n}\n\nexport interface LocalEditorAgentBridgePrefabSource {\n resolvePrefab(input: EditorAgentBridgePrefabResolveInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabResolveOutput>;\n openStage(input: EditorAgentBridgePrefabStageOpenInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabStageOpenOutput>;\n exitStage(input: EditorAgentBridgePrefabStageExitInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabStageExitOutput>;\n saveStage(input: EditorAgentBridgePrefabStageActionInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabStageActionOutput>;\n discardStage(input: EditorAgentBridgePrefabStageActionInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabStageActionOutput>;\n renameAsset(input: EditorAgentBridgePrefabAssetRenameInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabAssetRenameOutput>;\n getScene(input: EditorAgentBridgePrefabSceneGetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabSceneGetOutput>;\n selectNode(input: EditorAgentBridgePrefabNodeSelectInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabNodeSelectOutput>;\n createNodeFromAsset(input: EditorAgentBridgePrefabNodeCreateFromAssetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabNodeMutationOutput>;\n createGroupNode(input: EditorAgentBridgePrefabNodeCreateGroupInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabNodeMutationOutput>;\n createMarkerNode(input: EditorAgentBridgePrefabNodeCreateMarkerInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabNodeMutationOutput>;\n createPrimitiveNode(input: EditorAgentBridgePrefabNodeCreatePrimitiveInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabNodeMutationOutput>;\n setNodeTransform(input: EditorAgentBridgePrefabNodeSetTransformInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabNodeMutationOutput>;\n setNodeMarker(input: EditorAgentBridgePrefabNodeSetMarkerInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabNodeMutationOutput>;\n renameNode(input: EditorAgentBridgePrefabNodeRenameInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabNodeRenameOutput>;\n reparentNode(input: EditorAgentBridgePrefabNodeReparentInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabNodeMutationOutput>;\n deleteNode(input: EditorAgentBridgePrefabNodeDeleteInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabNodeMutationOutput>;\n getSourceStructure(input: EditorAgentBridgePrefabSourceStructureGetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabSourceStructureGetOutput>;\n listMaterialSlots(input: EditorAgentBridgePrefabMaterialSlotsListInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgePrefabMaterialSlotsListOutput>;\n}\n\nexport interface LocalEditorAgentBridgeSelectionSource {\n getSelection(): EditorAgentBridgeSelectionState;\n setSelection(input: EditorAgentBridgeSelectionSetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeSelectionSetOutput>;\n}\n\nexport interface LocalEditorAgentBridgeShadowSource {\n getPolicy(input: EditorAgentBridgeShadowPolicyGetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeShadowPolicyGetOutput>;\n setPolicy(input: EditorAgentBridgeShadowPolicySetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeShadowPolicySetOutput>;\n getShadowMapExperimentConfig(input: EditorAgentBridgeShadowMapExperimentConfigGetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeShadowMapExperimentConfigGetOutput>;\n getShadowMapExperimentPolicy(input: EditorAgentBridgeShadowMapExperimentPolicyGetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeShadowMapExperimentPolicyOutput>;\n setShadowMapExperimentPolicy(input: EditorAgentBridgeShadowMapExperimentPolicySetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeShadowMapExperimentPolicySetOutput>;\n previewShadowMapExperimentPlan(input: EditorAgentBridgeShadowMapExperimentPlanPreviewInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeShadowMapExperimentPlanPreviewOutput>;\n snapshotShadowMapExperimentRuntime(input: EditorAgentBridgeShadowMapExperimentRuntimeSnapshotInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeShadowMapExperimentRuntimeSnapshotOutput>;\n listReceivers(input: EditorAgentBridgeShadowReceiversListInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeShadowReceiversListOutput>;\n resolvePreview(input: EditorAgentBridgeShadowResolvePreviewInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeShadowResolvePreviewOutput>;\n inspectDebug(input: EditorAgentBridgeShadowDebugInspectInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeShadowDebugInspectOutput>;\n enterDebugContext(input: EditorAgentBridgeShadowDebugContextEnterInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeShadowDebugContextEnterOutput>;\n clearDebugContext(input: EditorAgentBridgeShadowDebugContextClearInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeShadowDebugContextClearOutput>;\n setDebugOverlay(input: EditorAgentBridgeShadowDebugOverlaySetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeShadowDebugOverlaySetOutput>;\n clearDebugOverlay(input: EditorAgentBridgeShadowDebugOverlayClearInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeShadowDebugOverlayClearOutput>;\n measureVisibility(input: EditorAgentBridgeShadowDebugVisibilityMeasureInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeShadowDebugVisibilityMeasureOutput>;\n bakeStatic(input: EditorAgentBridgeShadowStaticBakeInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeShadowStaticBakeOutput>;\n invalidateStatic(input: EditorAgentBridgeShadowStaticInvalidateInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeShadowStaticInvalidateOutput>;\n}\n\nexport interface LocalEditorAgentBridgeTransformSource {\n move(input: EditorAgentBridgeTransformMoveInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeTransformMoveOutput>;\n set(input: EditorAgentBridgeTransformSetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeTransformSetOutput>;\n}\n\nexport interface LocalEditorAgentBridgeViewportSource {\n focusObject(input: EditorAgentBridgeViewportFocusObjectInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeViewportFocusObjectOutput>;\n frameSelection(input: EditorAgentBridgeViewportFrameSelectionInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeViewportFrameSelectionOutput>;\n getCamera(input: EditorAgentBridgeViewportCameraGetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeViewportCameraState>;\n setCameraPreset(input: EditorAgentBridgeViewportCameraSetPresetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeViewportCameraSetPresetOutput>;\n orbitCamera(input: EditorAgentBridgeViewportCameraOrbitInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeViewportCameraOrbitOutput>;\n getVisibilitySnapshot(input: EditorAgentBridgeViewportVisibilitySnapshotInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeViewportVisibilitySnapshotOutput>;\n setVisibility(input: EditorAgentBridgeViewportVisibilitySetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeViewportVisibilityMutationOutput>;\n clearVisibility(input: EditorAgentBridgeViewportVisibilityClearInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeViewportVisibilityMutationOutput>;\n enterIsolation(input: EditorAgentBridgeViewportIsolationEnterInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeViewportIsolationEnterOutput>;\n}\n\nexport interface LocalEditorAgentBridgeStateSource {\n getSnapshot(input: EditorAgentBridgeEditorSnapshotGetInput): EditorAgentBridgeEditorSnapshot;\n getState(input: EditorAgentBridgeEditorStateGetInput): EditorAgentBridgeEditorState;\n listDiagnostics(input: EditorAgentBridgeEditorDiagnosticsListInput): EditorAgentBridgeEditorDiagnosticsListOutput;\n}\n\nexport interface LocalEditorAgentBridgeUiSource {\n getRegions(input: EditorAgentBridgeUiRegionsGetInput): LocalEditorAgentBridgeSourceResult<EditorAgentBridgeUiRegionsGetOutput>;\n}\n\nexport interface LocalEditorAgentBridgeCapabilitySources {\n assets: LocalEditorAgentBridgeAssetSource;\n host: LocalEditorAgentBridgeHostSource;\n hierarchy: LocalEditorAgentBridgeHierarchySource;\n objects: LocalEditorAgentBridgeObjectSource;\n prefabs: LocalEditorAgentBridgePrefabSource;\n selection: LocalEditorAgentBridgeSelectionSource;\n shadows: LocalEditorAgentBridgeShadowSource;\n transform: LocalEditorAgentBridgeTransformSource;\n viewport: LocalEditorAgentBridgeViewportSource;\n state: LocalEditorAgentBridgeStateSource;\n ui: LocalEditorAgentBridgeUiSource;\n}\n"]}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { FpsEditorPluginHost } from '@fps-games/editor-core/plugin-host';
|
|
2
|
-
import type { EditorAgentBridge } from '@fps-games/editor-core';
|
|
3
|
-
export declare function registerEditorPluginAgentCapabilities(bridge: EditorAgentBridge, pluginHost: FpsEditorPluginHost | undefined): () => void;
|
|
4
|
-
//# sourceMappingURL=editor-plugin-agent-capabilities.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editor-plugin-agent-capabilities.d.ts","sourceRoot":"","sources":["../src/editor-plugin-agent-capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,mBAAmB,GAAG,SAAS,GAC1C,MAAM,IAAI,CAuCZ"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
export function registerEditorPluginAgentCapabilities(bridge, pluginHost) {
|
|
2
|
-
if (!pluginHost)
|
|
3
|
-
return () => undefined;
|
|
4
|
-
if (pluginHost.state !== 'started' || pluginHost.transitioning) {
|
|
5
|
-
throw new Error('Plugin Agent capabilities require an idle started Editor Plugin Host.');
|
|
6
|
-
}
|
|
7
|
-
const commands = pluginHost.listCommands().filter(command => command.agent);
|
|
8
|
-
const existingIds = new Set(bridge.listCapabilities().map(capability => capability.id));
|
|
9
|
-
const unregister = [];
|
|
10
|
-
try {
|
|
11
|
-
for (const command of commands) {
|
|
12
|
-
const manifest = command.agent;
|
|
13
|
-
if (existingIds.has(manifest.id)) {
|
|
14
|
-
throw new Error(`Plugin Agent capability conflicts with an existing capability: ${manifest.id}`);
|
|
15
|
-
}
|
|
16
|
-
existingIds.add(manifest.id);
|
|
17
|
-
unregister.push(bridge.registerCapability({
|
|
18
|
-
manifest,
|
|
19
|
-
available: () => (pluginHost.state === 'started' && !pluginHost.transitioning
|
|
20
|
-
? true
|
|
21
|
-
: `Editor Plugin Host is not available: ${pluginHost.state}`),
|
|
22
|
-
handler: input => pluginHost.executeCommand(command.command, input),
|
|
23
|
-
}));
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
catch (error) {
|
|
27
|
-
try {
|
|
28
|
-
disposePluginAgentCapabilities(unregister);
|
|
29
|
-
}
|
|
30
|
-
catch (cleanupError) {
|
|
31
|
-
throw combinePluginAgentCapabilityErrors(error, cleanupError, 'registration');
|
|
32
|
-
}
|
|
33
|
-
throw error;
|
|
34
|
-
}
|
|
35
|
-
let active = true;
|
|
36
|
-
return () => {
|
|
37
|
-
if (!active)
|
|
38
|
-
return;
|
|
39
|
-
disposePluginAgentCapabilities(unregister);
|
|
40
|
-
active = false;
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
function combinePluginAgentCapabilityErrors(cause, cleanupError, operation) {
|
|
44
|
-
const error = new Error(`Plugin Agent capability ${operation} failed and cleanup reported errors.`);
|
|
45
|
-
error.errors = [cause, cleanupError];
|
|
46
|
-
return error;
|
|
47
|
-
}
|
|
48
|
-
function disposePluginAgentCapabilities(unregister) {
|
|
49
|
-
const errors = [];
|
|
50
|
-
for (const dispose of [...unregister].reverse()) {
|
|
51
|
-
try {
|
|
52
|
-
dispose();
|
|
53
|
-
}
|
|
54
|
-
catch (error) {
|
|
55
|
-
errors.push(error);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
if (errors.length > 0) {
|
|
59
|
-
const error = new Error('Plugin Agent capability cleanup failed.');
|
|
60
|
-
error.errors = errors;
|
|
61
|
-
throw error;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
//# sourceMappingURL=editor-plugin-agent-capabilities.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"editor-plugin-agent-capabilities.js","sourceRoot":"","sources":["../src/editor-plugin-agent-capabilities.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FpsEditorPluginHost } from '@fps-games/editor-core/plugin-host';\nimport type { EditorAgentBridge } from '@fps-games/editor-core';\n\nexport function registerEditorPluginAgentCapabilities(\n bridge: EditorAgentBridge,\n pluginHost: FpsEditorPluginHost | undefined,\n): () => void {\n if (!pluginHost) return () => undefined;\n if (pluginHost.state !== 'started' || pluginHost.transitioning) {\n throw new Error('Plugin Agent capabilities require an idle started Editor Plugin Host.');\n }\n const commands = pluginHost.listCommands().filter(command => command.agent);\n const existingIds = new Set(bridge.listCapabilities().map(capability => capability.id));\n const unregister: Array<() => void> = [];\n try {\n for (const command of commands) {\n const manifest = command.agent!;\n if (existingIds.has(manifest.id)) {\n throw new Error(`Plugin Agent capability conflicts with an existing capability: ${manifest.id}`);\n }\n existingIds.add(manifest.id);\n unregister.push(bridge.registerCapability({\n manifest,\n available: () => (\n pluginHost.state === 'started' && !pluginHost.transitioning\n ? true\n : `Editor Plugin Host is not available: ${pluginHost.state}`\n ),\n handler: input => pluginHost.executeCommand(command.command, input),\n }));\n }\n } catch (error) {\n try {\n disposePluginAgentCapabilities(unregister);\n } catch (cleanupError) {\n throw combinePluginAgentCapabilityErrors(error, cleanupError, 'registration');\n }\n throw error;\n }\n let active = true;\n return () => {\n if (!active) return;\n disposePluginAgentCapabilities(unregister);\n active = false;\n };\n}\n\nfunction combinePluginAgentCapabilityErrors(\n cause: unknown,\n cleanupError: unknown,\n operation: string,\n): Error {\n const error = new Error(`Plugin Agent capability ${operation} failed and cleanup reported errors.`) as Error & {\n errors: unknown[];\n };\n error.errors = [cause, cleanupError];\n return error;\n}\n\nfunction disposePluginAgentCapabilities(unregister: readonly (() => void)[]): void {\n const errors: unknown[] = [];\n for (const dispose of [...unregister].reverse()) {\n try { dispose(); } catch (error) { errors.push(error); }\n }\n if (errors.length > 0) {\n const error = new Error('Plugin Agent capability cleanup failed.') as Error & { errors: unknown[] };\n error.errors = errors;\n throw error;\n }\n}\n"]}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import type { EditorAgentContext, EditorAgentContextSemantics, EditorAgentSource, SpatialMarkerGraph, SpatialMarkerTypeDefinition, SpatialRelationTypeDefinition } from '@fps-games/editor-protocol';
|
|
2
|
-
import type { LocalEditorHarnessHierarchyOperationRegistration } from './local-editor-harness.js';
|
|
3
|
-
export interface LocalEditorAgentSceneObjectSemanticsInput<TDocument> {
|
|
4
|
-
document: TDocument;
|
|
5
|
-
objectId: string;
|
|
6
|
-
targetIds: string[];
|
|
7
|
-
activeId: string | null;
|
|
8
|
-
contextNodeId: string | null;
|
|
9
|
-
hierarchyItem: unknown | null;
|
|
10
|
-
hierarchyItems: readonly unknown[];
|
|
11
|
-
projectionNode: unknown | null | undefined;
|
|
12
|
-
}
|
|
13
|
-
export interface LocalEditorAgentSceneObjectSetSemanticsInput<TDocument> {
|
|
14
|
-
document: TDocument;
|
|
15
|
-
objectIds: string[];
|
|
16
|
-
activeId: string | null;
|
|
17
|
-
hierarchyItems: readonly unknown[];
|
|
18
|
-
projectionNodes: Record<string, unknown | null | undefined>;
|
|
19
|
-
}
|
|
20
|
-
export interface LocalEditorAgentRegionBindingSemanticsInput<TDocument> extends LocalEditorAgentSceneObjectSetSemanticsInput<TDocument> {
|
|
21
|
-
relationshipType: 'selection-region';
|
|
22
|
-
}
|
|
23
|
-
export interface LocalEditorAgentHierarchyActionOptions<TDocument> {
|
|
24
|
-
sendContext(context: EditorAgentContext): void | boolean | Promise<unknown>;
|
|
25
|
-
getProjectionNode(document: TDocument, id: string): unknown | null | undefined;
|
|
26
|
-
getMarkerGraph?(document: TDocument): SpatialMarkerGraph | null;
|
|
27
|
-
getMarkerTypeCatalog?(document: TDocument): SpatialMarkerTypeDefinition[];
|
|
28
|
-
getRelationTypeCatalog?(document: TDocument): SpatialRelationTypeDefinition[];
|
|
29
|
-
describeSceneObject?(input: LocalEditorAgentSceneObjectSemanticsInput<TDocument>): EditorAgentContextSemantics | null | undefined;
|
|
30
|
-
describeSceneObjectSet?(input: LocalEditorAgentSceneObjectSetSemanticsInput<TDocument>): EditorAgentContextSemantics | null | undefined;
|
|
31
|
-
describeRegionBinding?(input: LocalEditorAgentRegionBindingSemanticsInput<TDocument>): EditorAgentContextSemantics | null | undefined;
|
|
32
|
-
source?: Partial<EditorAgentSource>;
|
|
33
|
-
reportError?(error: unknown): void;
|
|
34
|
-
}
|
|
35
|
-
export declare const LOCAL_EDITOR_AGENT_ACTION_ID: {
|
|
36
|
-
readonly SEND_OBJECT: "agent.send-object";
|
|
37
|
-
readonly SEND_SELECTION: "agent.send-selection";
|
|
38
|
-
readonly SEND_SELECTION_AS_REGION: "agent.send-selection-as-region";
|
|
39
|
-
readonly SEND_MARKER: "agent.send-marker";
|
|
40
|
-
readonly SEND_MARKER_GRAPH: "agent.send-marker-graph";
|
|
41
|
-
};
|
|
42
|
-
export declare function createLocalEditorAgentHierarchyOperations<TDocument>(options: LocalEditorAgentHierarchyActionOptions<TDocument>): LocalEditorHarnessHierarchyOperationRegistration<TDocument>[];
|
|
43
|
-
//# sourceMappingURL=local-editor-agent-actions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"local-editor-agent-actions.d.ts","sourceRoot":"","sources":["../src/local-editor-agent-actions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,2BAA2B,EAC3B,iBAAiB,EACjB,kBAAkB,EAClB,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,4BAA4B,CAAC;AAiBpC,OAAO,KAAK,EAEV,gDAAgD,EACjD,MAAM,2BAA2B,CAAC;AAQnC,MAAM,WAAW,yCAAyC,CAAC,SAAS;IAClE,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,cAAc,EAAE,SAAS,OAAO,EAAE,CAAC;IACnC,cAAc,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;CAC5C;AAED,MAAM,WAAW,4CAA4C,CAAC,SAAS;IACrE,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,SAAS,OAAO,EAAE,CAAC;IACnC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,2CAA2C,CAAC,SAAS,CACpE,SAAQ,4CAA4C,CAAC,SAAS,CAAC;IAC/D,gBAAgB,EAAE,kBAAkB,CAAC;CACtC;AAED,MAAM,WAAW,sCAAsC,CAAC,SAAS;IAC/D,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5E,iBAAiB,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/E,cAAc,CAAC,CAAC,QAAQ,EAAE,SAAS,GAAG,kBAAkB,GAAG,IAAI,CAAC;IAChE,oBAAoB,CAAC,CAAC,QAAQ,EAAE,SAAS,GAAG,2BAA2B,EAAE,CAAC;IAC1E,sBAAsB,CAAC,CAAC,QAAQ,EAAE,SAAS,GAAG,6BAA6B,EAAE,CAAC;IAC9E,mBAAmB,CAAC,CAAC,KAAK,EAAE,yCAAyC,CAAC,SAAS,CAAC,GAAG,2BAA2B,GAAG,IAAI,GAAG,SAAS,CAAC;IAClI,sBAAsB,CAAC,CAAC,KAAK,EAAE,4CAA4C,CAAC,SAAS,CAAC,GAAG,2BAA2B,GAAG,IAAI,GAAG,SAAS,CAAC;IACxI,qBAAqB,CAAC,CAAC,KAAK,EAAE,2CAA2C,CAAC,SAAS,CAAC,GAAG,2BAA2B,GAAG,IAAI,GAAG,SAAS,CAAC;IACtI,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpC,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CACpC;AAED,eAAO,MAAM,4BAA4B;;;;;;CAM/B,CAAC;AAEX,wBAAgB,yCAAyC,CAAC,SAAS,EACjE,OAAO,EAAE,sCAAsC,CAAC,SAAS,CAAC,GACzD,gDAAgD,CAAC,SAAS,CAAC,EAAE,CAyK/D"}
|
|
@@ -1,321 +0,0 @@
|
|
|
1
|
-
import { createLocalEditorRegionBindingAgentContext, createLocalEditorSceneObjectAgentContext, createLocalEditorSceneObjectSetAgentContext, createLocalEditorSpatialMarkerAgentContext, createLocalEditorSpatialRelationGraphAgentContext, } from './local-editor-agent-context.js';
|
|
2
|
-
import { findSpatialMarkerById, getSpatialMarkerDirectRelations, getSpatialRelationRelatedIds, isMarkerGraphHierarchyRootRowId, readMarkerGraphHierarchyMarkerIdForGraph, readSpatialMarkerIdFromHierarchySelection, resolveSpatialMarkerGraph, } from './local-editor-marker-graph.js';
|
|
3
|
-
import { createAgentBridgeSafeSceneReadModel, getAgentBridgeSafeHierarchyTargetByRowId, } from './agent-bridge/shared.js';
|
|
4
|
-
export const LOCAL_EDITOR_AGENT_ACTION_ID = {
|
|
5
|
-
SEND_OBJECT: 'agent.send-object',
|
|
6
|
-
SEND_SELECTION: 'agent.send-selection',
|
|
7
|
-
SEND_SELECTION_AS_REGION: 'agent.send-selection-as-region',
|
|
8
|
-
SEND_MARKER: 'agent.send-marker',
|
|
9
|
-
SEND_MARKER_GRAPH: 'agent.send-marker-graph',
|
|
10
|
-
};
|
|
11
|
-
export function createLocalEditorAgentHierarchyOperations(options) {
|
|
12
|
-
return [
|
|
13
|
-
{
|
|
14
|
-
id: LOCAL_EDITOR_AGENT_ACTION_ID.SEND_OBJECT,
|
|
15
|
-
label: 'Send to Agent',
|
|
16
|
-
menu: { path: [{ id: 'agent', label: 'Agent', order: 80 }], group: 'agent', order: 0 },
|
|
17
|
-
visible: context => context.contextNodeId !== null && resolvePrimarySceneObjectId(context, options) !== null,
|
|
18
|
-
disabled(context) {
|
|
19
|
-
return resolvePrimarySceneObjectId(context, options) ? false : 'Select a scene object to send to Agent.';
|
|
20
|
-
},
|
|
21
|
-
run(context) {
|
|
22
|
-
const objectId = resolvePrimarySceneObjectId(context, options);
|
|
23
|
-
if (!objectId)
|
|
24
|
-
return false;
|
|
25
|
-
const hierarchyItems = getSafeSceneAgentHierarchyItems(context);
|
|
26
|
-
const projectionNode = options.getProjectionNode(context.document, objectId);
|
|
27
|
-
const agentContext = createLocalEditorSceneObjectAgentContext({
|
|
28
|
-
document: context.document,
|
|
29
|
-
objectId,
|
|
30
|
-
hierarchyItems,
|
|
31
|
-
projectionNode,
|
|
32
|
-
source: options.source,
|
|
33
|
-
semantics: options.describeSceneObject?.({
|
|
34
|
-
document: context.document,
|
|
35
|
-
objectId,
|
|
36
|
-
targetIds: resolveSceneObjectSelectionIds(context, options),
|
|
37
|
-
activeId: context.activeId ? resolveSafeSceneObjectId(context, context.activeId) : null,
|
|
38
|
-
contextNodeId: context.contextNodeId ? resolveSafeSceneObjectId(context, context.contextNodeId) : null,
|
|
39
|
-
hierarchyItem: hierarchyItems.find(item => item.id === objectId) ?? null,
|
|
40
|
-
hierarchyItems,
|
|
41
|
-
projectionNode,
|
|
42
|
-
}),
|
|
43
|
-
});
|
|
44
|
-
return sendAgentContext(agentContext, options);
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
id: LOCAL_EDITOR_AGENT_ACTION_ID.SEND_SELECTION,
|
|
49
|
-
label: 'Send Selection to Agent',
|
|
50
|
-
menu: { path: [{ id: 'agent', label: 'Agent', order: 80 }], group: 'agent', order: 0 },
|
|
51
|
-
visible: context => resolveSceneObjectSelectionIds(context, options).length > 1,
|
|
52
|
-
disabled(context) {
|
|
53
|
-
return resolveSceneObjectSelectionIds(context, options).length > 1
|
|
54
|
-
? false
|
|
55
|
-
: 'Select multiple scene objects to send selection to Agent.';
|
|
56
|
-
},
|
|
57
|
-
run(context) {
|
|
58
|
-
const targetIds = resolveSceneObjectSelectionIds(context, options);
|
|
59
|
-
if (targetIds.length === 0)
|
|
60
|
-
return false;
|
|
61
|
-
const hierarchyItems = getSafeSceneAgentHierarchyItems(context);
|
|
62
|
-
const projectionNodes = createProjectionNodeMap(context.document, targetIds, options);
|
|
63
|
-
const agentContext = createLocalEditorSceneObjectSetAgentContext({
|
|
64
|
-
document: context.document,
|
|
65
|
-
objectIds: targetIds,
|
|
66
|
-
hierarchyItems,
|
|
67
|
-
projectionNodes,
|
|
68
|
-
source: options.source,
|
|
69
|
-
semantics: options.describeSceneObjectSet?.({
|
|
70
|
-
document: context.document,
|
|
71
|
-
objectIds: targetIds,
|
|
72
|
-
activeId: context.activeId ? resolveSafeSceneObjectId(context, context.activeId) : null,
|
|
73
|
-
hierarchyItems,
|
|
74
|
-
projectionNodes,
|
|
75
|
-
}),
|
|
76
|
-
});
|
|
77
|
-
return sendAgentContext(agentContext, options);
|
|
78
|
-
},
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
id: LOCAL_EDITOR_AGENT_ACTION_ID.SEND_SELECTION_AS_REGION,
|
|
82
|
-
label: 'Send Selection as Region',
|
|
83
|
-
menu: { path: [{ id: 'agent', label: 'Agent', order: 80 }], group: 'agent', order: 0 },
|
|
84
|
-
visible: context => resolveSceneObjectSelectionIds(context, options).length > 1,
|
|
85
|
-
disabled(context) {
|
|
86
|
-
return resolveSceneObjectSelectionIds(context, options).length > 1
|
|
87
|
-
? false
|
|
88
|
-
: 'Select multiple scene objects to describe a region to Agent.';
|
|
89
|
-
},
|
|
90
|
-
run(context) {
|
|
91
|
-
const targetIds = resolveSceneObjectSelectionIds(context, options);
|
|
92
|
-
if (targetIds.length < 2)
|
|
93
|
-
return false;
|
|
94
|
-
const hierarchyItems = getSafeSceneAgentHierarchyItems(context);
|
|
95
|
-
const projectionNodes = createProjectionNodeMap(context.document, targetIds, options);
|
|
96
|
-
const agentContext = createLocalEditorRegionBindingAgentContext({
|
|
97
|
-
document: context.document,
|
|
98
|
-
objectIds: targetIds,
|
|
99
|
-
hierarchyItems,
|
|
100
|
-
projectionNodes,
|
|
101
|
-
source: options.source,
|
|
102
|
-
semantics: options.describeRegionBinding?.({
|
|
103
|
-
document: context.document,
|
|
104
|
-
objectIds: targetIds,
|
|
105
|
-
activeId: context.activeId ? resolveSafeSceneObjectId(context, context.activeId) : null,
|
|
106
|
-
hierarchyItems,
|
|
107
|
-
projectionNodes,
|
|
108
|
-
relationshipType: 'selection-region',
|
|
109
|
-
}),
|
|
110
|
-
});
|
|
111
|
-
return sendAgentContext(agentContext, options);
|
|
112
|
-
},
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
id: LOCAL_EDITOR_AGENT_ACTION_ID.SEND_MARKER,
|
|
116
|
-
label: 'Send Marker to Agent',
|
|
117
|
-
menu: { path: [{ id: 'agent', label: 'Agent', order: 80 }], group: 'agent', order: 0 },
|
|
118
|
-
visible: context => resolveContextMarkerId(context, options) !== null,
|
|
119
|
-
disabled(context) {
|
|
120
|
-
const resolved = resolveContextMarker(context, options);
|
|
121
|
-
if (!resolved.marker)
|
|
122
|
-
return 'Select a spatial marker to send to Agent.';
|
|
123
|
-
if (resolved.marker.spatial.status !== 'resolved') {
|
|
124
|
-
return resolved.marker.spatial.unresolvedReason
|
|
125
|
-
? `Marker spatial facts unresolved: ${resolved.marker.spatial.unresolvedReason}`
|
|
126
|
-
: 'Marker spatial facts are unresolved.';
|
|
127
|
-
}
|
|
128
|
-
return false;
|
|
129
|
-
},
|
|
130
|
-
run(context) {
|
|
131
|
-
const resolved = resolveContextMarker(context, options);
|
|
132
|
-
if (!resolved.graph || !resolved.marker)
|
|
133
|
-
return false;
|
|
134
|
-
const directRelations = getSpatialMarkerDirectRelations(resolved.graph, resolved.marker.id);
|
|
135
|
-
const relatedIds = getSpatialRelationRelatedIds(directRelations, resolved.marker.id);
|
|
136
|
-
const agentContext = createLocalEditorSpatialMarkerAgentContext({
|
|
137
|
-
document: context.document,
|
|
138
|
-
marker: resolved.marker,
|
|
139
|
-
graph: resolved.graph,
|
|
140
|
-
directRelations,
|
|
141
|
-
relatedMarkerIds: relatedIds.markerIds,
|
|
142
|
-
relatedObjectIds: relatedIds.objectIds,
|
|
143
|
-
hierarchyItems: getSafeSceneAgentHierarchyItems(context),
|
|
144
|
-
markerTypes: options.getMarkerTypeCatalog?.(context.document) ?? [],
|
|
145
|
-
relationTypes: options.getRelationTypeCatalog?.(context.document) ?? [],
|
|
146
|
-
source: options.source,
|
|
147
|
-
});
|
|
148
|
-
return sendAgentContext(agentContext, options);
|
|
149
|
-
},
|
|
150
|
-
},
|
|
151
|
-
{
|
|
152
|
-
id: LOCAL_EDITOR_AGENT_ACTION_ID.SEND_MARKER_GRAPH,
|
|
153
|
-
label: 'Send Marker Graph to Agent',
|
|
154
|
-
menu: { path: [{ id: 'agent', label: 'Agent', order: 80 }], group: 'agent', order: 0 },
|
|
155
|
-
visible: context => isMarkerGraphContext(context, options),
|
|
156
|
-
disabled(context) {
|
|
157
|
-
const graph = resolveContextMarkerGraph(context, options);
|
|
158
|
-
if (!graph || graph.markers.length === 0)
|
|
159
|
-
return 'No marker graph is available.';
|
|
160
|
-
const unresolved = graph.markers.filter(marker => marker.spatial.status !== 'resolved');
|
|
161
|
-
if (unresolved.length > 0) {
|
|
162
|
-
const labels = unresolved.map(marker => marker.label || marker.id).join(', ');
|
|
163
|
-
return `Marker graph has unresolved spatial facts: ${labels}.`;
|
|
164
|
-
}
|
|
165
|
-
return false;
|
|
166
|
-
},
|
|
167
|
-
run(context) {
|
|
168
|
-
const graph = resolveContextMarkerGraph(context, options);
|
|
169
|
-
if (!graph)
|
|
170
|
-
return false;
|
|
171
|
-
const focusMarkerIds = collectContextMarkerIds(context, options);
|
|
172
|
-
const focusObjectIds = collectRelatedObjectIdsForMarkers(graph, focusMarkerIds);
|
|
173
|
-
const agentContext = createLocalEditorSpatialRelationGraphAgentContext({
|
|
174
|
-
document: context.document,
|
|
175
|
-
graph,
|
|
176
|
-
focusMarkerIds,
|
|
177
|
-
focusObjectIds,
|
|
178
|
-
hierarchyItems: getSafeSceneAgentHierarchyItems(context),
|
|
179
|
-
markerTypes: options.getMarkerTypeCatalog?.(context.document) ?? [],
|
|
180
|
-
relationTypes: options.getRelationTypeCatalog?.(context.document) ?? [],
|
|
181
|
-
source: options.source,
|
|
182
|
-
});
|
|
183
|
-
return sendAgentContext(agentContext, options);
|
|
184
|
-
},
|
|
185
|
-
},
|
|
186
|
-
];
|
|
187
|
-
}
|
|
188
|
-
function getSafeSceneAgentHierarchyItems(context) {
|
|
189
|
-
return isSceneHierarchyOperationContext(context)
|
|
190
|
-
? [...createAgentBridgeSafeSceneReadModel(createHierarchyActionReadModel(context)).hierarchy]
|
|
191
|
-
: [];
|
|
192
|
-
}
|
|
193
|
-
function resolvePrimarySceneObjectId(context, options) {
|
|
194
|
-
if (!isSceneHierarchyOperationContext(context))
|
|
195
|
-
return null;
|
|
196
|
-
const rowId = context.contextNodeId ?? context.activeId ?? context.targetIds[0] ?? null;
|
|
197
|
-
if (!rowId)
|
|
198
|
-
return null;
|
|
199
|
-
const id = resolveSafeSceneObjectId(context, rowId);
|
|
200
|
-
if (!id)
|
|
201
|
-
return null;
|
|
202
|
-
const graph = options.getMarkerGraph?.(context.document) ?? null;
|
|
203
|
-
if (!graph)
|
|
204
|
-
return id;
|
|
205
|
-
const hierarchyItems = getSafeSceneAgentHierarchyItems(context);
|
|
206
|
-
if (isMarkerGraphHierarchyRootRowId(graph, rowId, hierarchyItems))
|
|
207
|
-
return null;
|
|
208
|
-
return readSpatialMarkerIdFromHierarchySelection(graph, id, hierarchyItems) ? null : id;
|
|
209
|
-
}
|
|
210
|
-
function resolveSceneObjectSelectionIds(context, options) {
|
|
211
|
-
if (!isSceneHierarchyOperationContext(context))
|
|
212
|
-
return [];
|
|
213
|
-
const ids = normalizeActionIds(context.targetIds.map(rowId => resolveSafeSceneObjectId(context, rowId)));
|
|
214
|
-
const graph = options.getMarkerGraph?.(context.document) ?? null;
|
|
215
|
-
if (!graph)
|
|
216
|
-
return ids;
|
|
217
|
-
const hierarchyItems = getSafeSceneAgentHierarchyItems(context);
|
|
218
|
-
return ids.filter(id => (!isMarkerGraphHierarchyRootRowId(graph, id, hierarchyItems)
|
|
219
|
-
&& !readSpatialMarkerIdFromHierarchySelection(graph, id, hierarchyItems)));
|
|
220
|
-
}
|
|
221
|
-
function createProjectionNodeMap(document, objectIds, options) {
|
|
222
|
-
const nodes = {};
|
|
223
|
-
for (const objectId of objectIds)
|
|
224
|
-
nodes[objectId] = options.getProjectionNode(document, objectId);
|
|
225
|
-
return nodes;
|
|
226
|
-
}
|
|
227
|
-
function sendAgentContext(context, options) {
|
|
228
|
-
if (!context)
|
|
229
|
-
return false;
|
|
230
|
-
try {
|
|
231
|
-
void Promise.resolve(options.sendContext(context)).catch(error => options.reportError?.(error));
|
|
232
|
-
return true;
|
|
233
|
-
}
|
|
234
|
-
catch (error) {
|
|
235
|
-
options.reportError?.(error);
|
|
236
|
-
return false;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
function resolveContextMarkerId(context, options) {
|
|
240
|
-
if (!isSceneHierarchyOperationContext(context))
|
|
241
|
-
return null;
|
|
242
|
-
const graph = options.getMarkerGraph?.(context.document) ?? null;
|
|
243
|
-
if (!graph)
|
|
244
|
-
return null;
|
|
245
|
-
const hierarchyItems = getSafeSceneAgentHierarchyItems(context);
|
|
246
|
-
const candidateIds = [
|
|
247
|
-
context.contextNodeId,
|
|
248
|
-
context.activeId,
|
|
249
|
-
...context.targetIds,
|
|
250
|
-
];
|
|
251
|
-
for (const candidateRowId of candidateIds) {
|
|
252
|
-
const candidateId = candidateRowId ? resolveSafeSceneObjectId(context, candidateRowId) ?? candidateRowId : null;
|
|
253
|
-
const markerId = readSpatialMarkerIdFromHierarchySelection(graph, candidateId, hierarchyItems);
|
|
254
|
-
if (markerId)
|
|
255
|
-
return markerId;
|
|
256
|
-
}
|
|
257
|
-
return null;
|
|
258
|
-
}
|
|
259
|
-
function resolveContextMarker(context, options) {
|
|
260
|
-
const graph = resolveContextMarkerGraph(context, options);
|
|
261
|
-
const markerId = resolveContextMarkerId(context, options);
|
|
262
|
-
return {
|
|
263
|
-
graph,
|
|
264
|
-
marker: graph && markerId ? findSpatialMarkerById(graph, markerId) : null,
|
|
265
|
-
};
|
|
266
|
-
}
|
|
267
|
-
function resolveContextMarkerGraph(context, options) {
|
|
268
|
-
return resolveSpatialMarkerGraph(options.getMarkerGraph?.(context.document) ?? null);
|
|
269
|
-
}
|
|
270
|
-
function isMarkerGraphContext(context, options) {
|
|
271
|
-
if (!isSceneHierarchyOperationContext(context))
|
|
272
|
-
return false;
|
|
273
|
-
const graph = options.getMarkerGraph?.(context.document) ?? null;
|
|
274
|
-
if (!graph || graph.markers.length === 0)
|
|
275
|
-
return false;
|
|
276
|
-
const hierarchyItems = getSafeSceneAgentHierarchyItems(context);
|
|
277
|
-
if (isMarkerGraphHierarchyRootRowId(graph, context.contextNodeId, hierarchyItems))
|
|
278
|
-
return true;
|
|
279
|
-
return collectContextMarkerIds(context, options).length > 0;
|
|
280
|
-
}
|
|
281
|
-
function collectContextMarkerIds(context, options) {
|
|
282
|
-
const graph = options.getMarkerGraph?.(context.document) ?? null;
|
|
283
|
-
if (!graph)
|
|
284
|
-
return [];
|
|
285
|
-
const hierarchyItems = getSafeSceneAgentHierarchyItems(context);
|
|
286
|
-
const markerIds = new Set();
|
|
287
|
-
for (const candidateRowId of [context.contextNodeId, context.activeId, ...context.targetIds]) {
|
|
288
|
-
const candidateId = candidateRowId ? resolveSafeSceneObjectId(context, candidateRowId) ?? candidateRowId : null;
|
|
289
|
-
const markerId = readSpatialMarkerIdFromHierarchySelection(graph, candidateId, hierarchyItems);
|
|
290
|
-
if (markerId)
|
|
291
|
-
markerIds.add(markerId);
|
|
292
|
-
}
|
|
293
|
-
return [...markerIds];
|
|
294
|
-
}
|
|
295
|
-
function collectRelatedObjectIdsForMarkers(graph, markerIds) {
|
|
296
|
-
const objectIds = new Set();
|
|
297
|
-
for (const markerId of markerIds) {
|
|
298
|
-
const relatedIds = getSpatialRelationRelatedIds(getSpatialMarkerDirectRelations(graph, markerId), markerId);
|
|
299
|
-
for (const objectId of relatedIds.objectIds)
|
|
300
|
-
objectIds.add(objectId);
|
|
301
|
-
}
|
|
302
|
-
return [...objectIds];
|
|
303
|
-
}
|
|
304
|
-
function normalizeActionIds(values) {
|
|
305
|
-
return [...new Set(values.map(value => value?.trim()).filter((value) => !!value))];
|
|
306
|
-
}
|
|
307
|
-
function createHierarchyActionReadModel(context) {
|
|
308
|
-
return {
|
|
309
|
-
authorityToken: 0,
|
|
310
|
-
snapshot: context.scope,
|
|
311
|
-
resolveTarget: rowId => context.resolveTarget(rowId),
|
|
312
|
-
};
|
|
313
|
-
}
|
|
314
|
-
function resolveSafeSceneObjectId(context, rowId) {
|
|
315
|
-
return getAgentBridgeSafeHierarchyTargetByRowId(createHierarchyActionReadModel(context), 'scene-object', rowId)?.authoredId ?? null;
|
|
316
|
-
}
|
|
317
|
-
function isSceneHierarchyOperationContext(context) {
|
|
318
|
-
const scopeType = context.scope?.scopeType;
|
|
319
|
-
return scopeType === undefined || scopeType === 'scene';
|
|
320
|
-
}
|
|
321
|
-
//# sourceMappingURL=local-editor-agent-actions.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"local-editor-agent-actions.js","sourceRoot":"","sources":["../src/local-editor-agent-actions.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n EditorAgentContext,\n EditorAgentContextSemantics,\n EditorAgentSource,\n SpatialMarkerGraph,\n SpatialMarkerTypeDefinition,\n SpatialRelationTypeDefinition,\n} from '@fps-games/editor-protocol';\nimport {\n createLocalEditorRegionBindingAgentContext,\n createLocalEditorSceneObjectAgentContext,\n createLocalEditorSceneObjectSetAgentContext,\n createLocalEditorSpatialMarkerAgentContext,\n createLocalEditorSpatialRelationGraphAgentContext,\n} from './local-editor-agent-context.js';\nimport {\n findSpatialMarkerById,\n getSpatialMarkerDirectRelations,\n getSpatialRelationRelatedIds,\n isMarkerGraphHierarchyRootRowId,\n readMarkerGraphHierarchyMarkerIdForGraph,\n readSpatialMarkerIdFromHierarchySelection,\n resolveSpatialMarkerGraph,\n} from './local-editor-marker-graph.js';\nimport type {\n LocalEditorHarnessHierarchyOperationContext,\n LocalEditorHarnessHierarchyOperationRegistration,\n} from './local-editor-harness.js';\nimport type { SceneGraphTreeItem } from '@fps-games/editor-core';\nimport {\n createAgentBridgeSafeSceneReadModel,\n getAgentBridgeSafeHierarchyTargetByRowId,\n type LocalEditorAgentBridgeHierarchyReadModel,\n} from './agent-bridge/shared.js';\n\nexport interface LocalEditorAgentSceneObjectSemanticsInput<TDocument> {\n document: TDocument;\n objectId: string;\n targetIds: string[];\n activeId: string | null;\n contextNodeId: string | null;\n hierarchyItem: unknown | null;\n hierarchyItems: readonly unknown[];\n projectionNode: unknown | null | undefined;\n}\n\nexport interface LocalEditorAgentSceneObjectSetSemanticsInput<TDocument> {\n document: TDocument;\n objectIds: string[];\n activeId: string | null;\n hierarchyItems: readonly unknown[];\n projectionNodes: Record<string, unknown | null | undefined>;\n}\n\nexport interface LocalEditorAgentRegionBindingSemanticsInput<TDocument>\n extends LocalEditorAgentSceneObjectSetSemanticsInput<TDocument> {\n relationshipType: 'selection-region';\n}\n\nexport interface LocalEditorAgentHierarchyActionOptions<TDocument> {\n sendContext(context: EditorAgentContext): void | boolean | Promise<unknown>;\n getProjectionNode(document: TDocument, id: string): unknown | null | undefined;\n getMarkerGraph?(document: TDocument): SpatialMarkerGraph | null;\n getMarkerTypeCatalog?(document: TDocument): SpatialMarkerTypeDefinition[];\n getRelationTypeCatalog?(document: TDocument): SpatialRelationTypeDefinition[];\n describeSceneObject?(input: LocalEditorAgentSceneObjectSemanticsInput<TDocument>): EditorAgentContextSemantics | null | undefined;\n describeSceneObjectSet?(input: LocalEditorAgentSceneObjectSetSemanticsInput<TDocument>): EditorAgentContextSemantics | null | undefined;\n describeRegionBinding?(input: LocalEditorAgentRegionBindingSemanticsInput<TDocument>): EditorAgentContextSemantics | null | undefined;\n source?: Partial<EditorAgentSource>;\n reportError?(error: unknown): void;\n}\n\nexport const LOCAL_EDITOR_AGENT_ACTION_ID = {\n SEND_OBJECT: 'agent.send-object',\n SEND_SELECTION: 'agent.send-selection',\n SEND_SELECTION_AS_REGION: 'agent.send-selection-as-region',\n SEND_MARKER: 'agent.send-marker',\n SEND_MARKER_GRAPH: 'agent.send-marker-graph',\n} as const;\n\nexport function createLocalEditorAgentHierarchyOperations<TDocument>(\n options: LocalEditorAgentHierarchyActionOptions<TDocument>,\n): LocalEditorHarnessHierarchyOperationRegistration<TDocument>[] {\n return [\n {\n id: LOCAL_EDITOR_AGENT_ACTION_ID.SEND_OBJECT,\n label: 'Send to Agent',\n menu: { path: [{ id: 'agent', label: 'Agent', order: 80 }], group: 'agent', order: 0 },\n visible: context => context.contextNodeId !== null && resolvePrimarySceneObjectId(context, options) !== null,\n disabled(context) {\n return resolvePrimarySceneObjectId(context, options) ? false : 'Select a scene object to send to Agent.';\n },\n run(context) {\n const objectId = resolvePrimarySceneObjectId(context, options);\n if (!objectId) return false;\n const hierarchyItems = getSafeSceneAgentHierarchyItems(context);\n const projectionNode = options.getProjectionNode(context.document, objectId);\n const agentContext = createLocalEditorSceneObjectAgentContext({\n document: context.document,\n objectId,\n hierarchyItems,\n projectionNode,\n source: options.source,\n semantics: options.describeSceneObject?.({\n document: context.document,\n objectId,\n targetIds: resolveSceneObjectSelectionIds(context, options),\n activeId: context.activeId ? resolveSafeSceneObjectId(context, context.activeId) : null,\n contextNodeId: context.contextNodeId ? resolveSafeSceneObjectId(context, context.contextNodeId) : null,\n hierarchyItem: hierarchyItems.find(item => item.id === objectId) ?? null,\n hierarchyItems,\n projectionNode,\n }),\n });\n return sendAgentContext(agentContext, options);\n },\n },\n {\n id: LOCAL_EDITOR_AGENT_ACTION_ID.SEND_SELECTION,\n label: 'Send Selection to Agent',\n menu: { path: [{ id: 'agent', label: 'Agent', order: 80 }], group: 'agent', order: 0 },\n visible: context => resolveSceneObjectSelectionIds(context, options).length > 1,\n disabled(context) {\n return resolveSceneObjectSelectionIds(context, options).length > 1\n ? false\n : 'Select multiple scene objects to send selection to Agent.';\n },\n run(context) {\n const targetIds = resolveSceneObjectSelectionIds(context, options);\n if (targetIds.length === 0) return false;\n const hierarchyItems = getSafeSceneAgentHierarchyItems(context);\n const projectionNodes = createProjectionNodeMap(context.document, targetIds, options);\n const agentContext = createLocalEditorSceneObjectSetAgentContext({\n document: context.document,\n objectIds: targetIds,\n hierarchyItems,\n projectionNodes,\n source: options.source,\n semantics: options.describeSceneObjectSet?.({\n document: context.document,\n objectIds: targetIds,\n activeId: context.activeId ? resolveSafeSceneObjectId(context, context.activeId) : null,\n hierarchyItems,\n projectionNodes,\n }),\n });\n return sendAgentContext(agentContext, options);\n },\n },\n {\n id: LOCAL_EDITOR_AGENT_ACTION_ID.SEND_SELECTION_AS_REGION,\n label: 'Send Selection as Region',\n menu: { path: [{ id: 'agent', label: 'Agent', order: 80 }], group: 'agent', order: 0 },\n visible: context => resolveSceneObjectSelectionIds(context, options).length > 1,\n disabled(context) {\n return resolveSceneObjectSelectionIds(context, options).length > 1\n ? false\n : 'Select multiple scene objects to describe a region to Agent.';\n },\n run(context) {\n const targetIds = resolveSceneObjectSelectionIds(context, options);\n if (targetIds.length < 2) return false;\n const hierarchyItems = getSafeSceneAgentHierarchyItems(context);\n const projectionNodes = createProjectionNodeMap(context.document, targetIds, options);\n const agentContext = createLocalEditorRegionBindingAgentContext({\n document: context.document,\n objectIds: targetIds,\n hierarchyItems,\n projectionNodes,\n source: options.source,\n semantics: options.describeRegionBinding?.({\n document: context.document,\n objectIds: targetIds,\n activeId: context.activeId ? resolveSafeSceneObjectId(context, context.activeId) : null,\n hierarchyItems,\n projectionNodes,\n relationshipType: 'selection-region',\n }),\n });\n return sendAgentContext(agentContext, options);\n },\n },\n {\n id: LOCAL_EDITOR_AGENT_ACTION_ID.SEND_MARKER,\n label: 'Send Marker to Agent',\n menu: { path: [{ id: 'agent', label: 'Agent', order: 80 }], group: 'agent', order: 0 },\n visible: context => resolveContextMarkerId(context, options) !== null,\n disabled(context) {\n const resolved = resolveContextMarker(context, options);\n if (!resolved.marker) return 'Select a spatial marker to send to Agent.';\n if (resolved.marker.spatial.status !== 'resolved') {\n return resolved.marker.spatial.unresolvedReason\n ? `Marker spatial facts unresolved: ${resolved.marker.spatial.unresolvedReason}`\n : 'Marker spatial facts are unresolved.';\n }\n return false;\n },\n run(context) {\n const resolved = resolveContextMarker(context, options);\n if (!resolved.graph || !resolved.marker) return false;\n const directRelations = getSpatialMarkerDirectRelations(resolved.graph, resolved.marker.id);\n const relatedIds = getSpatialRelationRelatedIds(directRelations, resolved.marker.id);\n const agentContext = createLocalEditorSpatialMarkerAgentContext({\n document: context.document,\n marker: resolved.marker,\n graph: resolved.graph,\n directRelations,\n relatedMarkerIds: relatedIds.markerIds,\n relatedObjectIds: relatedIds.objectIds,\n hierarchyItems: getSafeSceneAgentHierarchyItems(context),\n markerTypes: options.getMarkerTypeCatalog?.(context.document) ?? [],\n relationTypes: options.getRelationTypeCatalog?.(context.document) ?? [],\n source: options.source,\n });\n return sendAgentContext(agentContext, options);\n },\n },\n {\n id: LOCAL_EDITOR_AGENT_ACTION_ID.SEND_MARKER_GRAPH,\n label: 'Send Marker Graph to Agent',\n menu: { path: [{ id: 'agent', label: 'Agent', order: 80 }], group: 'agent', order: 0 },\n visible: context => isMarkerGraphContext(context, options),\n disabled(context) {\n const graph = resolveContextMarkerGraph(context, options);\n if (!graph || graph.markers.length === 0) return 'No marker graph is available.';\n const unresolved = graph.markers.filter(marker => marker.spatial.status !== 'resolved');\n if (unresolved.length > 0) {\n const labels = unresolved.map(marker => marker.label || marker.id).join(', ');\n return `Marker graph has unresolved spatial facts: ${labels}.`;\n }\n return false;\n },\n run(context) {\n const graph = resolveContextMarkerGraph(context, options);\n if (!graph) return false;\n const focusMarkerIds = collectContextMarkerIds(context, options);\n const focusObjectIds = collectRelatedObjectIdsForMarkers(graph, focusMarkerIds);\n const agentContext = createLocalEditorSpatialRelationGraphAgentContext({\n document: context.document,\n graph,\n focusMarkerIds,\n focusObjectIds,\n hierarchyItems: getSafeSceneAgentHierarchyItems(context),\n markerTypes: options.getMarkerTypeCatalog?.(context.document) ?? [],\n relationTypes: options.getRelationTypeCatalog?.(context.document) ?? [],\n source: options.source,\n });\n return sendAgentContext(agentContext, options);\n },\n },\n ];\n}\n\nfunction getSafeSceneAgentHierarchyItems<TDocument>(\n context: LocalEditorHarnessHierarchyOperationContext<TDocument>,\n): SceneGraphTreeItem[] {\n return isSceneHierarchyOperationContext(context)\n ? [...createAgentBridgeSafeSceneReadModel(createHierarchyActionReadModel(context)).hierarchy]\n : [];\n}\n\nfunction resolvePrimarySceneObjectId<TDocument>(\n context: LocalEditorHarnessHierarchyOperationContext<TDocument>,\n options: Pick<LocalEditorAgentHierarchyActionOptions<TDocument>, 'getMarkerGraph'>,\n): string | null {\n if (!isSceneHierarchyOperationContext(context)) return null;\n const rowId = context.contextNodeId ?? context.activeId ?? context.targetIds[0] ?? null;\n if (!rowId) return null;\n const id = resolveSafeSceneObjectId(context, rowId);\n if (!id) return null;\n const graph = options.getMarkerGraph?.(context.document) ?? null;\n if (!graph) return id;\n const hierarchyItems = getSafeSceneAgentHierarchyItems(context);\n if (isMarkerGraphHierarchyRootRowId(graph, rowId, hierarchyItems)) return null;\n return readSpatialMarkerIdFromHierarchySelection(graph, id, hierarchyItems) ? null : id;\n}\n\nfunction resolveSceneObjectSelectionIds<TDocument>(\n context: LocalEditorHarnessHierarchyOperationContext<TDocument>,\n options: Pick<LocalEditorAgentHierarchyActionOptions<TDocument>, 'getMarkerGraph'>,\n): string[] {\n if (!isSceneHierarchyOperationContext(context)) return [];\n const ids = normalizeActionIds(context.targetIds.map(rowId => resolveSafeSceneObjectId(context, rowId)));\n const graph = options.getMarkerGraph?.(context.document) ?? null;\n if (!graph) return ids;\n const hierarchyItems = getSafeSceneAgentHierarchyItems(context);\n return ids.filter(id => (\n !isMarkerGraphHierarchyRootRowId(graph, id, hierarchyItems)\n && !readSpatialMarkerIdFromHierarchySelection(graph, id, hierarchyItems)\n ));\n}\n\nfunction createProjectionNodeMap<TDocument>(\n document: TDocument,\n objectIds: readonly string[],\n options: Pick<LocalEditorAgentHierarchyActionOptions<TDocument>, 'getProjectionNode'>,\n): Record<string, unknown | null | undefined> {\n const nodes: Record<string, unknown | null | undefined> = {};\n for (const objectId of objectIds) nodes[objectId] = options.getProjectionNode(document, objectId);\n return nodes;\n}\n\nfunction sendAgentContext<TDocument>(\n context: EditorAgentContext | null,\n options: Pick<LocalEditorAgentHierarchyActionOptions<TDocument>, 'sendContext' | 'reportError'>,\n): boolean {\n if (!context) return false;\n try {\n void Promise.resolve(options.sendContext(context)).catch(error => options.reportError?.(error));\n return true;\n } catch (error) {\n options.reportError?.(error);\n return false;\n }\n}\n\nfunction resolveContextMarkerId<TDocument>(\n context: LocalEditorHarnessHierarchyOperationContext<TDocument>,\n options: Pick<LocalEditorAgentHierarchyActionOptions<TDocument>, 'getMarkerGraph'>,\n): string | null {\n if (!isSceneHierarchyOperationContext(context)) return null;\n const graph = options.getMarkerGraph?.(context.document) ?? null;\n if (!graph) return null;\n const hierarchyItems = getSafeSceneAgentHierarchyItems(context);\n const candidateIds = [\n context.contextNodeId,\n context.activeId,\n ...context.targetIds,\n ];\n for (const candidateRowId of candidateIds) {\n const candidateId = candidateRowId ? resolveSafeSceneObjectId(context, candidateRowId) ?? candidateRowId : null;\n const markerId = readSpatialMarkerIdFromHierarchySelection(graph, candidateId, hierarchyItems);\n if (markerId) return markerId;\n }\n return null;\n}\n\nfunction resolveContextMarker<TDocument>(\n context: LocalEditorHarnessHierarchyOperationContext<TDocument>,\n options: Pick<LocalEditorAgentHierarchyActionOptions<TDocument>, 'getMarkerGraph'>,\n) {\n const graph = resolveContextMarkerGraph(context, options);\n const markerId = resolveContextMarkerId(context, options);\n return {\n graph,\n marker: graph && markerId ? findSpatialMarkerById(graph, markerId) : null,\n };\n}\n\nfunction resolveContextMarkerGraph<TDocument>(\n context: LocalEditorHarnessHierarchyOperationContext<TDocument>,\n options: Pick<LocalEditorAgentHierarchyActionOptions<TDocument>, 'getMarkerGraph'>,\n) {\n return resolveSpatialMarkerGraph(options.getMarkerGraph?.(context.document) ?? null);\n}\n\nfunction isMarkerGraphContext<TDocument>(\n context: LocalEditorHarnessHierarchyOperationContext<TDocument>,\n options: Pick<LocalEditorAgentHierarchyActionOptions<TDocument>, 'getMarkerGraph'>,\n): boolean {\n if (!isSceneHierarchyOperationContext(context)) return false;\n const graph = options.getMarkerGraph?.(context.document) ?? null;\n if (!graph || graph.markers.length === 0) return false;\n const hierarchyItems = getSafeSceneAgentHierarchyItems(context);\n if (isMarkerGraphHierarchyRootRowId(graph, context.contextNodeId, hierarchyItems)) return true;\n return collectContextMarkerIds(context, options).length > 0;\n}\n\nfunction collectContextMarkerIds<TDocument>(\n context: LocalEditorHarnessHierarchyOperationContext<TDocument>,\n options: Pick<LocalEditorAgentHierarchyActionOptions<TDocument>, 'getMarkerGraph'>,\n): string[] {\n const graph = options.getMarkerGraph?.(context.document) ?? null;\n if (!graph) return [];\n const hierarchyItems = getSafeSceneAgentHierarchyItems(context);\n const markerIds = new Set<string>();\n for (const candidateRowId of [context.contextNodeId, context.activeId, ...context.targetIds]) {\n const candidateId = candidateRowId ? resolveSafeSceneObjectId(context, candidateRowId) ?? candidateRowId : null;\n const markerId = readSpatialMarkerIdFromHierarchySelection(graph, candidateId, hierarchyItems);\n if (markerId) markerIds.add(markerId);\n }\n return [...markerIds];\n}\n\nfunction collectRelatedObjectIdsForMarkers(\n graph: { relations: SpatialMarkerGraph['relations'] },\n markerIds: readonly string[],\n): string[] {\n const objectIds = new Set<string>();\n for (const markerId of markerIds) {\n const relatedIds = getSpatialRelationRelatedIds(getSpatialMarkerDirectRelations(graph, markerId), markerId);\n for (const objectId of relatedIds.objectIds) objectIds.add(objectId);\n }\n return [...objectIds];\n}\n\nfunction normalizeActionIds(values: readonly (string | null | undefined)[]): string[] {\n return [...new Set(values.map(value => value?.trim()).filter((value): value is string => !!value))];\n}\n\nfunction createHierarchyActionReadModel<TDocument>(\n context: LocalEditorHarnessHierarchyOperationContext<TDocument>,\n): LocalEditorAgentBridgeHierarchyReadModel {\n return {\n authorityToken: 0,\n snapshot: context.scope,\n resolveTarget: rowId => context.resolveTarget(rowId),\n };\n}\n\nfunction resolveSafeSceneObjectId<TDocument>(\n context: LocalEditorHarnessHierarchyOperationContext<TDocument>,\n rowId: string,\n): string | null {\n return getAgentBridgeSafeHierarchyTargetByRowId(\n createHierarchyActionReadModel(context),\n 'scene-object',\n rowId,\n )?.authoredId ?? null;\n}\n\nfunction isSceneHierarchyOperationContext<TDocument>(\n context: LocalEditorHarnessHierarchyOperationContext<TDocument>,\n): boolean {\n const scopeType = (context as { scope?: { scopeType?: string } }).scope?.scopeType;\n return scopeType === undefined || scopeType === 'scene';\n}\n"]}
|