@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,5 +0,0 @@
|
|
|
1
|
-
import type { LocalEditorAgentBridgeTransformSource } from '../source-types.js';
|
|
2
|
-
import { type LocalEditorAgentBridgeCapabilitySourceOperations, type LocalEditorAgentBridgeHarnessState } from '../shared.js';
|
|
3
|
-
import type { LocalEditorHarnessOptions } from '../../local-editor-harness.js';
|
|
4
|
-
export declare function createLocalEditorAgentBridgeTransformSource<TDocument, TPatch, TAsset>(state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>, options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>, renderUi: () => void, operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>): LocalEditorAgentBridgeTransformSource;
|
|
5
|
-
//# sourceMappingURL=transform.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/agent-bridge/capabilities/transform.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAKL,KAAK,gDAAgD,EACrD,KAAK,kCAAkC,EACxC,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE/E,wBAAgB,2CAA2C,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EACnF,KAAK,EAAE,kCAAkC,CAAC,SAAS,EAAE,MAAM,CAAC,EAC5D,OAAO,EAAE,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAC7D,QAAQ,EAAE,MAAM,IAAI,EACpB,UAAU,EAAE,gDAAgD,CAAC,SAAS,CAAC,GACtE,qCAAqC,CASvC"}
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import { isEditorTransformTrsSnapshot, } from '@fps-games/editor-core';
|
|
2
|
-
import { EDITOR_AGENT_BRIDGE_CAPABILITY_ID, } from '@fps-games/editor-protocol';
|
|
3
|
-
import { cloneVec3, createLocalEditorAgentBridgeFailure, editorTransformSnapshotToAgentTransform, isLocalEditorAgentBridgeVec3, } from '../diagnostics.js';
|
|
4
|
-
import { cloneAgentBridgeSelection, getAgentBridgeSafeSceneSelection, isAgentBridgeDocumentNodeSelectable, isAgentBridgeSafeSceneObjectId, } from '../shared.js';
|
|
5
|
-
export function createLocalEditorAgentBridgeTransformSource(state, options, renderUi, operations) {
|
|
6
|
-
return {
|
|
7
|
-
move(input) {
|
|
8
|
-
return moveAgentBridgeObject(state, options, input, renderUi, operations);
|
|
9
|
-
},
|
|
10
|
-
set(input) {
|
|
11
|
-
return setAgentBridgeObjectTransform(state, options, input, renderUi, operations);
|
|
12
|
-
},
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
function moveAgentBridgeObject(state, options, input, renderUi, operations) {
|
|
16
|
-
const objectId = typeof input?.objectId === 'string' ? input.objectId.trim() : '';
|
|
17
|
-
if (!objectId) {
|
|
18
|
-
return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE, 'transform.move requires objectId.', { code: 'transform.invalidInput' });
|
|
19
|
-
}
|
|
20
|
-
const hasPosition = input.position !== undefined;
|
|
21
|
-
const hasOffset = input.offset !== undefined;
|
|
22
|
-
if (hasPosition === hasOffset) {
|
|
23
|
-
return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE, 'transform.move requires exactly one of position or offset.', { code: 'transform.invalidInput', objectId });
|
|
24
|
-
}
|
|
25
|
-
const movePosition = hasPosition && isLocalEditorAgentBridgeVec3(input.position) ? input.position : null;
|
|
26
|
-
const moveOffset = hasOffset && isLocalEditorAgentBridgeVec3(input.offset) ? input.offset : null;
|
|
27
|
-
if ((hasPosition && !movePosition) || (hasOffset && !moveOffset)) {
|
|
28
|
-
return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE, 'transform.move position or offset must be a finite Vec3.', { code: 'transform.invalidVec3', objectId });
|
|
29
|
-
}
|
|
30
|
-
if (state.mode !== 'editor' || !state.session) {
|
|
31
|
-
return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE, 'Editor is not in edit mode.', { code: 'editor.notReady', objectId });
|
|
32
|
-
}
|
|
33
|
-
const document = state.session.getState({ cloneDocuments: false }).workingDocument;
|
|
34
|
-
if (!isAgentBridgeSafeSceneObjectId(operations, objectId)
|
|
35
|
-
|| !isAgentBridgeDocumentNodeSelectable(options, document, objectId)) {
|
|
36
|
-
return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE, `Object is not movable: ${objectId}`, { code: 'transform.notSelectable', objectId });
|
|
37
|
-
}
|
|
38
|
-
const before = state.projection?.readNodeTransform(objectId) ?? null;
|
|
39
|
-
if (!before || !isEditorTransformTrsSnapshot(before)) {
|
|
40
|
-
return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE, `Object does not have an editable TRS transform: ${objectId}`, { code: 'transform.unsupported', objectId });
|
|
41
|
-
}
|
|
42
|
-
const after = operations.cloneTransformSnapshot(before);
|
|
43
|
-
if (!isEditorTransformTrsSnapshot(after)) {
|
|
44
|
-
return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE, `Object does not have an editable TRS transform: ${objectId}`, { code: 'transform.unsupported', objectId });
|
|
45
|
-
}
|
|
46
|
-
after.position = movePosition
|
|
47
|
-
? cloneVec3(movePosition)
|
|
48
|
-
: addAgentBridgeVec3(after.position, moveOffset);
|
|
49
|
-
return dispatchAgentBridgeTransformPatch(state, options, {
|
|
50
|
-
capabilityId: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE,
|
|
51
|
-
objectId,
|
|
52
|
-
before,
|
|
53
|
-
after,
|
|
54
|
-
tool: 'move',
|
|
55
|
-
label: `Agent move ${objectId}`,
|
|
56
|
-
}, renderUi, operations);
|
|
57
|
-
}
|
|
58
|
-
function setAgentBridgeObjectTransform(state, options, input, renderUi, operations) {
|
|
59
|
-
const objectId = typeof input?.objectId === 'string' ? input.objectId.trim() : '';
|
|
60
|
-
if (!objectId) {
|
|
61
|
-
return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET, 'transform.set requires objectId.', { code: 'transform.invalidInput' });
|
|
62
|
-
}
|
|
63
|
-
const hasPosition = input.position !== undefined;
|
|
64
|
-
const hasRotation = input.rotation !== undefined;
|
|
65
|
-
const hasScale = input.scale !== undefined;
|
|
66
|
-
if (!hasPosition && !hasRotation && !hasScale) {
|
|
67
|
-
return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET, 'transform.set requires at least one of position, rotation, or scale.', { code: 'transform.invalidInput', objectId });
|
|
68
|
-
}
|
|
69
|
-
const position = hasPosition && isLocalEditorAgentBridgeVec3(input.position) ? input.position : null;
|
|
70
|
-
const rotation = hasRotation && isLocalEditorAgentBridgeVec3(input.rotation) ? input.rotation : null;
|
|
71
|
-
const scale = hasScale && isLocalEditorAgentBridgeVec3(input.scale) ? input.scale : null;
|
|
72
|
-
if ((hasPosition && !position) || (hasRotation && !rotation) || (hasScale && !scale)) {
|
|
73
|
-
return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET, 'transform.set position, rotation, and scale must be finite Vec3 values when provided.', { code: 'transform.invalidVec3', objectId });
|
|
74
|
-
}
|
|
75
|
-
if (state.mode !== 'editor' || !state.session) {
|
|
76
|
-
return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET, 'Editor is not in edit mode.', { code: 'editor.notReady', objectId });
|
|
77
|
-
}
|
|
78
|
-
const document = state.session.getState({ cloneDocuments: false }).workingDocument;
|
|
79
|
-
if (!isAgentBridgeSafeSceneObjectId(operations, objectId)
|
|
80
|
-
|| !isAgentBridgeDocumentNodeSelectable(options, document, objectId)) {
|
|
81
|
-
return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET, `Object is not transformable: ${objectId}`, { code: 'transform.notSelectable', objectId });
|
|
82
|
-
}
|
|
83
|
-
const before = state.projection?.readNodeTransform(objectId) ?? null;
|
|
84
|
-
if (!before || !isEditorTransformTrsSnapshot(before)) {
|
|
85
|
-
return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET, `Object does not have an editable TRS transform: ${objectId}`, { code: 'transform.unsupported', objectId });
|
|
86
|
-
}
|
|
87
|
-
const after = operations.cloneTransformSnapshot(before);
|
|
88
|
-
if (!isEditorTransformTrsSnapshot(after)) {
|
|
89
|
-
return createLocalEditorAgentBridgeFailure(EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET, `Object does not have an editable TRS transform: ${objectId}`, { code: 'transform.unsupported', objectId });
|
|
90
|
-
}
|
|
91
|
-
if (position)
|
|
92
|
-
after.position = cloneVec3(position);
|
|
93
|
-
if (rotation)
|
|
94
|
-
after.rotation = cloneVec3(rotation);
|
|
95
|
-
if (scale)
|
|
96
|
-
after.scale = cloneVec3(scale);
|
|
97
|
-
return dispatchAgentBridgeTransformPatch(state, options, {
|
|
98
|
-
capabilityId: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET,
|
|
99
|
-
objectId,
|
|
100
|
-
before,
|
|
101
|
-
after,
|
|
102
|
-
tool: position ? 'move' : rotation ? 'rotate' : 'scale',
|
|
103
|
-
label: `Agent set transform ${objectId}`,
|
|
104
|
-
}, renderUi, operations);
|
|
105
|
-
}
|
|
106
|
-
function dispatchAgentBridgeTransformPatch(state, options, input, renderUi, operations) {
|
|
107
|
-
const { capabilityId, objectId, before, after, tool, label } = input;
|
|
108
|
-
if (state.mode !== 'editor' || !state.session) {
|
|
109
|
-
return createLocalEditorAgentBridgeFailure(capabilityId, 'Editor is not in edit mode.', { code: 'editor.notReady', objectId });
|
|
110
|
-
}
|
|
111
|
-
const document = state.session.getState({ cloneDocuments: false }).workingDocument;
|
|
112
|
-
const patch = options.documentAdapter.createTransformPatch?.({
|
|
113
|
-
document,
|
|
114
|
-
targetId: objectId,
|
|
115
|
-
tool,
|
|
116
|
-
space: 'world',
|
|
117
|
-
constraint: 'free',
|
|
118
|
-
before,
|
|
119
|
-
after,
|
|
120
|
-
});
|
|
121
|
-
if (!patch) {
|
|
122
|
-
return createLocalEditorAgentBridgeFailure(capabilityId, `Transform patch was not created for object: ${objectId}`, { code: 'transform.patchUnavailable', objectId });
|
|
123
|
-
}
|
|
124
|
-
const result = state.session.dispatch({
|
|
125
|
-
type: 'document.patch',
|
|
126
|
-
label: patch.label ?? `Agent move ${objectId}`,
|
|
127
|
-
patch: patch.patch,
|
|
128
|
-
targetId: objectId,
|
|
129
|
-
...operations.withProjectionImpact(operations.resolveProjectionImpact(patch, patch.reprojectIds?.length
|
|
130
|
-
? operations.createReprojectProjectionImpact(patch.reprojectIds)
|
|
131
|
-
: operations.createTransformProjectionImpact([patch.changedId ?? objectId]))),
|
|
132
|
-
});
|
|
133
|
-
if (!result.documentChanged) {
|
|
134
|
-
return createLocalEditorAgentBridgeFailure(capabilityId, `Transform was unchanged for object: ${objectId}`, { code: 'transform.unchanged', objectId });
|
|
135
|
-
}
|
|
136
|
-
if (patch.reprojectIds?.length)
|
|
137
|
-
operations.reprojectProjectionForChangedIds(result.workingDocument, patch.reprojectIds);
|
|
138
|
-
else
|
|
139
|
-
operations.syncProjectionForChangedIds(result.workingDocument, [patch.changedId ?? objectId]);
|
|
140
|
-
state.summary = operations.summarizeDocument(result.workingDocument, state.session.getSource());
|
|
141
|
-
state.status = patch.label ?? label;
|
|
142
|
-
operations.dispatchSelectionCommand({
|
|
143
|
-
type: 'selection.replace',
|
|
144
|
-
selectedIds: [objectId],
|
|
145
|
-
activeId: objectId,
|
|
146
|
-
label,
|
|
147
|
-
});
|
|
148
|
-
renderUi();
|
|
149
|
-
const updated = state.projection?.readNodeTransform(objectId) ?? after;
|
|
150
|
-
return {
|
|
151
|
-
objectId,
|
|
152
|
-
before: editorTransformSnapshotToAgentTransform(before) ?? {},
|
|
153
|
-
after: editorTransformSnapshotToAgentTransform(updated) ?? {},
|
|
154
|
-
selection: cloneAgentBridgeSelection(getAgentBridgeSafeSceneSelection(operations)),
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
function addAgentBridgeVec3(left, right) {
|
|
158
|
-
return {
|
|
159
|
-
x: left.x + right.x,
|
|
160
|
-
y: left.y + right.y,
|
|
161
|
-
z: left.z + right.z,
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
//# sourceMappingURL=transform.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/agent-bridge/capabilities/transform.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n type EditorTransformSnapshot,\n type EditorTransformTool,\n isEditorTransformTrsSnapshot,\n} from '@fps-games/editor-core';\nimport {\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID,\n type EditorAgentBridgeTransformMoveOutput,\n type EditorAgentBridgeVec3,\n} from '@fps-games/editor-protocol';\nimport {\n cloneVec3,\n createLocalEditorAgentBridgeFailure,\n editorTransformSnapshotToAgentTransform,\n isLocalEditorAgentBridgeVec3,\n} from '../diagnostics.js';\nimport type { LocalEditorAgentBridgeTransformSource } from '../source-types.js';\nimport {\n cloneAgentBridgeSelection,\n getAgentBridgeSafeSceneSelection,\n isAgentBridgeDocumentNodeSelectable,\n isAgentBridgeSafeSceneObjectId,\n type LocalEditorAgentBridgeCapabilitySourceOperations,\n type LocalEditorAgentBridgeHarnessState,\n} from '../shared.js';\nimport type { LocalEditorHarnessOptions } from '../../local-editor-harness.js';\n\nexport function createLocalEditorAgentBridgeTransformSource<TDocument, TPatch, TAsset>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): LocalEditorAgentBridgeTransformSource {\n return {\n move(input) {\n return moveAgentBridgeObject(state, options, input, renderUi, operations);\n },\n set(input) {\n return setAgentBridgeObjectTransform(state, options, input, renderUi, operations);\n },\n };\n}\n\nfunction moveAgentBridgeObject<TDocument, TPatch, TAsset>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: { objectId?: string; position?: unknown; offset?: unknown },\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): ReturnType<LocalEditorAgentBridgeTransformSource['move']> {\n const objectId = typeof input?.objectId === 'string' ? input.objectId.trim() : '';\n if (!objectId) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE,\n 'transform.move requires objectId.',\n { code: 'transform.invalidInput' },\n );\n }\n const hasPosition = input.position !== undefined;\n const hasOffset = input.offset !== undefined;\n if (hasPosition === hasOffset) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE,\n 'transform.move requires exactly one of position or offset.',\n { code: 'transform.invalidInput', objectId },\n );\n }\n const movePosition = hasPosition && isLocalEditorAgentBridgeVec3(input.position) ? input.position : null;\n const moveOffset = hasOffset && isLocalEditorAgentBridgeVec3(input.offset) ? input.offset : null;\n if ((hasPosition && !movePosition) || (hasOffset && !moveOffset)) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE,\n 'transform.move position or offset must be a finite Vec3.',\n { code: 'transform.invalidVec3', objectId },\n );\n }\n if (state.mode !== 'editor' || !state.session) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE,\n 'Editor is not in edit mode.',\n { code: 'editor.notReady', objectId },\n );\n }\n const document = state.session.getState({ cloneDocuments: false }).workingDocument;\n if (!isAgentBridgeSafeSceneObjectId(operations, objectId)\n || !isAgentBridgeDocumentNodeSelectable(options, document, objectId)) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE,\n `Object is not movable: ${objectId}`,\n { code: 'transform.notSelectable', objectId },\n );\n }\n const before = state.projection?.readNodeTransform(objectId) ?? null;\n if (!before || !isEditorTransformTrsSnapshot(before)) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE,\n `Object does not have an editable TRS transform: ${objectId}`,\n { code: 'transform.unsupported', objectId },\n );\n }\n const after = operations.cloneTransformSnapshot(before);\n if (!isEditorTransformTrsSnapshot(after)) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE,\n `Object does not have an editable TRS transform: ${objectId}`,\n { code: 'transform.unsupported', objectId },\n );\n }\n after.position = movePosition\n ? cloneVec3(movePosition)\n : addAgentBridgeVec3(after.position, moveOffset!);\n return dispatchAgentBridgeTransformPatch(\n state,\n options,\n {\n capabilityId: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE,\n objectId,\n before,\n after,\n tool: 'move',\n label: `Agent move ${objectId}`,\n },\n renderUi,\n operations,\n );\n}\n\nfunction setAgentBridgeObjectTransform<TDocument, TPatch, TAsset>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: { objectId?: string; position?: unknown; rotation?: unknown; scale?: unknown },\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): ReturnType<LocalEditorAgentBridgeTransformSource['set']> {\n const objectId = typeof input?.objectId === 'string' ? input.objectId.trim() : '';\n if (!objectId) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET,\n 'transform.set requires objectId.',\n { code: 'transform.invalidInput' },\n );\n }\n const hasPosition = input.position !== undefined;\n const hasRotation = input.rotation !== undefined;\n const hasScale = input.scale !== undefined;\n if (!hasPosition && !hasRotation && !hasScale) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET,\n 'transform.set requires at least one of position, rotation, or scale.',\n { code: 'transform.invalidInput', objectId },\n );\n }\n const position = hasPosition && isLocalEditorAgentBridgeVec3(input.position) ? input.position : null;\n const rotation = hasRotation && isLocalEditorAgentBridgeVec3(input.rotation) ? input.rotation : null;\n const scale = hasScale && isLocalEditorAgentBridgeVec3(input.scale) ? input.scale : null;\n if ((hasPosition && !position) || (hasRotation && !rotation) || (hasScale && !scale)) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET,\n 'transform.set position, rotation, and scale must be finite Vec3 values when provided.',\n { code: 'transform.invalidVec3', objectId },\n );\n }\n if (state.mode !== 'editor' || !state.session) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET,\n 'Editor is not in edit mode.',\n { code: 'editor.notReady', objectId },\n );\n }\n const document = state.session.getState({ cloneDocuments: false }).workingDocument;\n if (!isAgentBridgeSafeSceneObjectId(operations, objectId)\n || !isAgentBridgeDocumentNodeSelectable(options, document, objectId)) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET,\n `Object is not transformable: ${objectId}`,\n { code: 'transform.notSelectable', objectId },\n );\n }\n const before = state.projection?.readNodeTransform(objectId) ?? null;\n if (!before || !isEditorTransformTrsSnapshot(before)) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET,\n `Object does not have an editable TRS transform: ${objectId}`,\n { code: 'transform.unsupported', objectId },\n );\n }\n const after = operations.cloneTransformSnapshot(before);\n if (!isEditorTransformTrsSnapshot(after)) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET,\n `Object does not have an editable TRS transform: ${objectId}`,\n { code: 'transform.unsupported', objectId },\n );\n }\n if (position) after.position = cloneVec3(position);\n if (rotation) after.rotation = cloneVec3(rotation);\n if (scale) after.scale = cloneVec3(scale);\n return dispatchAgentBridgeTransformPatch(\n state,\n options,\n {\n capabilityId: EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET,\n objectId,\n before,\n after,\n tool: position ? 'move' : rotation ? 'rotate' : 'scale',\n label: `Agent set transform ${objectId}`,\n },\n renderUi,\n operations,\n );\n}\n\nfunction dispatchAgentBridgeTransformPatch<TDocument, TPatch, TAsset>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: {\n capabilityId: string;\n objectId: string;\n before: EditorTransformSnapshot;\n after: EditorTransformSnapshot;\n tool: Exclude<EditorTransformTool, 'select'>;\n label: string;\n },\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): EditorAgentBridgeTransformMoveOutput | ReturnType<typeof createLocalEditorAgentBridgeFailure> {\n const { capabilityId, objectId, before, after, tool, label } = input;\n if (state.mode !== 'editor' || !state.session) {\n return createLocalEditorAgentBridgeFailure(\n capabilityId,\n 'Editor is not in edit mode.',\n { code: 'editor.notReady', objectId },\n );\n }\n const document = state.session.getState({ cloneDocuments: false }).workingDocument;\n const patch = options.documentAdapter.createTransformPatch?.({\n document,\n targetId: objectId,\n tool,\n space: 'world',\n constraint: 'free',\n before,\n after,\n });\n if (!patch) {\n return createLocalEditorAgentBridgeFailure(\n capabilityId,\n `Transform patch was not created for object: ${objectId}`,\n { code: 'transform.patchUnavailable', objectId },\n );\n }\n const result = state.session.dispatch({\n type: 'document.patch',\n label: patch.label ?? `Agent move ${objectId}`,\n patch: patch.patch,\n targetId: objectId,\n ...operations.withProjectionImpact(operations.resolveProjectionImpact(\n patch,\n patch.reprojectIds?.length\n ? operations.createReprojectProjectionImpact(patch.reprojectIds)\n : operations.createTransformProjectionImpact([patch.changedId ?? objectId]),\n )),\n });\n if (!result.documentChanged) {\n return createLocalEditorAgentBridgeFailure(\n capabilityId,\n `Transform was unchanged for object: ${objectId}`,\n { code: 'transform.unchanged', objectId },\n );\n }\n if (patch.reprojectIds?.length) operations.reprojectProjectionForChangedIds(result.workingDocument, patch.reprojectIds);\n else operations.syncProjectionForChangedIds(result.workingDocument, [patch.changedId ?? objectId]);\n state.summary = operations.summarizeDocument(result.workingDocument, state.session.getSource());\n state.status = patch.label ?? label;\n operations.dispatchSelectionCommand({\n type: 'selection.replace',\n selectedIds: [objectId],\n activeId: objectId,\n label,\n });\n renderUi();\n const updated = state.projection?.readNodeTransform(objectId) ?? after;\n return {\n objectId,\n before: editorTransformSnapshotToAgentTransform(before) ?? {},\n after: editorTransformSnapshotToAgentTransform(updated) ?? {},\n selection: cloneAgentBridgeSelection(getAgentBridgeSafeSceneSelection(operations)),\n } satisfies EditorAgentBridgeTransformMoveOutput;\n}\n\nfunction addAgentBridgeVec3(left: EditorAgentBridgeVec3, right: EditorAgentBridgeVec3): EditorAgentBridgeVec3 {\n return {\n x: left.x + right.x,\n y: left.y + right.y,\n z: left.z + right.z,\n };\n}\n"]}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { LocalEditorAgentBridgeUiSource } from '../source-types.js';
|
|
2
|
-
import type { LocalEditorAgentBridgeHarnessState } from '../shared.js';
|
|
3
|
-
export declare function createLocalEditorAgentBridgeUiSource<TDocument, TPatch>(state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>): LocalEditorAgentBridgeUiSource;
|
|
4
|
-
//# sourceMappingURL=ui-regions.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ui-regions.d.ts","sourceRoot":"","sources":["../../../src/agent-bridge/capabilities/ui-regions.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,cAAc,CAAC;AAoKvE,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,MAAM,EACpE,KAAK,EAAE,kCAAkC,CAAC,SAAS,EAAE,MAAM,CAAC,GAC3D,8BAA8B,CAMhC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ui-regions.js","sourceRoot":"","sources":["../../../src/agent-bridge/capabilities/ui-regions.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID,\n type EditorAgentBridgeUiRegionsGetOutput,\n type EditorAgentBridgeWorkspaceRegion,\n} from '@fps-games/editor-protocol';\nimport type { LocalEditorAgentBridgeUiSource } from '../source-types.js';\nimport type { LocalEditorAgentBridgeHarnessState } from '../shared.js';\n\nconst AGENT_BRIDGE_WORKSPACE_REGIONS: readonly EditorAgentBridgeWorkspaceRegion[] = Object.freeze([\n {\n id: 'top-toolbar',\n label: 'Top Toolbar',\n location: 'top',\n purpose: 'Mode, transform tool, viewport utility, save/history, and Agent Bridge status controls.',\n primaryCapabilities: [\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.HOST_MODE_GET,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.HOST_EDITOR_ENTER,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.HOST_EDITOR_WAIT_READY,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_STATE_GET,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_DIAGNOSTICS_LIST,\n ],\n fallbackTools: ['playwright', 'chrome'],\n notes: [\n 'Use host.editor.enter instead of clicking the editor entry UI.',\n 'Use editor.diagnostics.list for the same revision-aware snapshot shown in the Validation Center.',\n ],\n },\n {\n id: 'left-hierarchy',\n label: 'Hierarchy',\n location: 'left',\n purpose: 'Scene object tree, selection context, protected/locked object visibility, and hierarchy actions.',\n primaryCapabilities: [\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SCENE_OBJECTS_LIST,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.OBJECT_RESOLVE,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SELECTION_SET,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.OBJECT_CREATE_PRIMITIVE,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.OBJECT_DELETE,\n ],\n fallbackTools: ['playwright', 'chrome'],\n notes: [\n 'Prefer object ids from scene.objects.list or object.resolve over clicking hierarchy rows.',\n 'Creation and deletion must go through editor scene graph capabilities, not manual scene JSON edits.',\n ],\n },\n {\n id: 'center-preview',\n label: 'Preview / Scene View',\n location: 'center',\n purpose: 'Rendered scene viewport, selection focus, transform gizmo, camera framing, and visual inspection.',\n primaryCapabilities: [\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_FOCUS_OBJECT,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_FRAME_SELECTION,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_GET,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_SET_PRESET,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_ORBIT,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_MOVE,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET,\n ],\n fallbackTools: ['playwright', 'chrome', 'computer-use'],\n notes: [\n 'Use viewport.camera.setPreset before L0 screenshots so visual evidence has a stable semantic view.',\n 'Use transform capabilities instead of dragging the gizmo when a structured transform target is known.',\n ],\n },\n {\n id: 'right-inspector',\n label: 'Inspector',\n location: 'right',\n purpose: 'Selected object properties, Transform fields, project adapter sections, and editable component data.',\n primaryCapabilities: [\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_STATE_GET,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_DIAGNOSTICS_LIST,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_SNAPSHOT_GET,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.TRANSFORM_SET,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.SELECTION_SET,\n ],\n fallbackTools: ['playwright', 'chrome'],\n notes: [\n 'Prefer semantic capabilities for known fields; use Inspector UI only when a field has no capability yet.',\n 'Future material, shadow, and rendering property work should add focused capabilities before relying on form automation.',\n ],\n },\n {\n id: 'right-render-tabs',\n label: 'Render / Diagnostics Tabs',\n location: 'right',\n purpose: 'Rendering-oriented panels, diagnostics, and project-specific inspector tabs when present.',\n primaryCapabilities: [\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_STATE_GET,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_SNAPSHOT_GET,\n ],\n fallbackTools: ['playwright', 'chrome'],\n notes: [\n 'Treat render tab UI as fallback until rendering/shadow capabilities are added.',\n 'Capture tab screenshots as trace artifacts when using L0 fallback for visual diagnostics.',\n ],\n },\n {\n id: 'bottom-assets',\n label: 'Asset Library',\n location: 'bottom',\n purpose: 'Project asset browsing, asset analysis, and asset placement into the scene.',\n primaryCapabilities: [\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.ASSET_LIBRARY_LIST,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.ASSET_INFO_GET,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.ASSET_ANALYSIS_GET,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_RESOLVE,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_STAGE_OPEN,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.PREFAB_STAGE_EXIT,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.OBJECT_CREATE_FROM_ASSET,\n ],\n fallbackTools: ['playwright', 'chrome'],\n notes: [\n 'Use asset.library.list and asset.analysis.get before object.createFromAsset.',\n 'Double-clicking a prefab asset opens the Prefab stage for users; agents should call prefab.resolve then prefab.stage.open.',\n 'Do not drag assets in the browser or hand-edit generated catalogs as the primary placement path.',\n ],\n },\n {\n id: 'bottom-console',\n label: 'Editor Console',\n location: 'bottom-global',\n purpose: 'Session-scoped structured output for editor save, import, compile, run, plugin, and capability operations.',\n primaryCapabilities: [\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_DIAGNOSTICS_LIST,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_STATE_GET,\n ],\n fallbackTools: ['playwright', 'chrome'],\n notes: [\n 'This Console is Editor-owned operation output and does not intercept browser console.* calls.',\n 'Validation Center remains the revision-aware diagnostics surface and Save/Run gate.',\n 'Agent Bridge Console remains a separate external observability plane.',\n ],\n },\n {\n id: 'agent-console',\n label: 'Agent Bridge Console',\n location: 'external-localhost',\n purpose: 'Readonly observability for MCP health, editor sessions, capabilities, recent calls, logs, traces, diagnostics, and L0 artifacts.',\n primaryCapabilities: [\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.EDITOR_STATE_GET,\n ],\n fallbackTools: ['browser', 'playwright', 'chrome'],\n notes: [\n 'The console is an observability plane, not an editing UI.',\n 'Write L0 screenshot paths and console/page errors to /api/traces/events instead of embedding binary payloads.',\n ],\n },\n]);\n\nconst RECOMMENDED_OPERATION_ORDER = Object.freeze([\n 'get_bridge_health',\n 'list_editor_sessions',\n 'list_editor_capabilities',\n 'call_editor_capability(editor.ui.regions.get)',\n 'call_editor_capability(host.editor.enter)',\n 'call_editor_capability(host.editor.waitReady when needed)',\n 'L2 semantic capability for the target region',\n 'L0 browser automation only for missing capability, disconnected bridge, page load, or screenshot evidence',\n]);\n\nconst L0_FALLBACK_RULES = Object.freeze([\n 'Do not click Hierarchy rows when selection.set or object.resolve can provide the same semantic result.',\n 'Do not drag the Preview gizmo when transform.move or transform.set can express the edit.',\n 'Do not use browser screenshots for camera setup before trying viewport.camera.setPreset or viewport.camera.orbit.',\n 'Do not drag assets from the bottom panel when object.createFromAsset can place a standard asset.',\n 'When L0 fallback is required, record screenshot paths and console/page errors through Agent Operation Trace.',\n]);\n\nexport function createLocalEditorAgentBridgeUiSource<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n): LocalEditorAgentBridgeUiSource {\n return {\n getRegions() {\n return createAgentBridgeUiRegions(state);\n },\n };\n}\n\nfunction createAgentBridgeUiRegions<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n): EditorAgentBridgeUiRegionsGetOutput {\n return {\n mode: state.mode,\n editorReady: state.mode === 'editor' && !!state.session && !state.busy,\n sessionActive: !!state.session,\n regions: AGENT_BRIDGE_WORKSPACE_REGIONS.map(cloneRegion),\n recommendedOperationOrder: [...RECOMMENDED_OPERATION_ORDER],\n l0FallbackRules: [...L0_FALLBACK_RULES],\n };\n}\n\nfunction cloneRegion(region: EditorAgentBridgeWorkspaceRegion): EditorAgentBridgeWorkspaceRegion {\n return {\n ...region,\n primaryCapabilities: [...region.primaryCapabilities],\n ...(region.fallbackTools ? { fallbackTools: [...region.fallbackTools] } : {}),\n ...(region.notes ? { notes: [...region.notes] } : {}),\n };\n}\n"]}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { LocalEditorAgentBridgeViewportSource } from '../source-types.js';
|
|
2
|
-
import { type LocalEditorAgentBridgeCapabilitySourceOperations, type LocalEditorAgentBridgeHarnessState } from '../shared.js';
|
|
3
|
-
import type { LocalEditorHarnessOptions } from '../../local-editor-harness.js';
|
|
4
|
-
export declare function createLocalEditorAgentBridgeViewportSource<TDocument, TPatch, TAsset>(state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>, options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>, renderUi: () => void, operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>): LocalEditorAgentBridgeViewportSource;
|
|
5
|
-
//# sourceMappingURL=viewport.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../../../src/agent-bridge/capabilities/viewport.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EASL,KAAK,gDAAgD,EACrD,KAAK,kCAAkC,EACxC,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE/E,wBAAgB,0CAA0C,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAClF,KAAK,EAAE,kCAAkC,CAAC,SAAS,EAAE,MAAM,CAAC,EAC5D,OAAO,EAAE,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAC7D,QAAQ,EAAE,MAAM,IAAI,EACpB,UAAU,EAAE,gDAAgD,CAAC,SAAS,CAAC,GACtE,oCAAoC,CA2FtC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"viewport.js","sourceRoot":"","sources":["../../../src/agent-bridge/capabilities/viewport.ts"],"names":[],"mappings":"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","sourcesContent":["import type { EditorSelectionState, EditorViewportViewPreset } from '@fps-games/editor-core';\nimport {\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID,\n type EditorAgentBridgeVec3,\n type EditorAgentBridgeViewportCameraOrbitInput,\n type EditorAgentBridgeViewportCameraPreset,\n type EditorAgentBridgeViewportCameraSetPresetInput,\n type EditorAgentBridgeViewportCameraSetPresetOutput,\n type EditorAgentBridgeViewportCameraState,\n type EditorAgentBridgeViewportCameraTarget,\n type EditorAgentBridgeViewportIsolationEnterInput,\n type EditorAgentBridgeViewportIsolationEnterOutput,\n type EditorAgentBridgeViewportVisibilityEntry,\n type EditorAgentBridgeViewportVisibilityMutationOutput,\n type EditorAgentBridgeViewportVisibilitySetInput,\n type EditorAgentBridgeViewportVisibilitySnapshotOutput,\n} from '@fps-games/editor-protocol';\nimport {\n cloneVec3,\n createLocalEditorAgentBridgeFailure,\n isLocalEditorAgentBridgeVec3,\n} from '../diagnostics.js';\nimport type { LocalEditorAgentBridgeViewportSource } from '../source-types.js';\nimport {\n cloneAgentBridgeSelection,\n getAgentBridgeSafeSceneHierarchy,\n getAgentBridgeSafeSceneReadModel,\n hasAgentBridgeSafeSceneScope,\n isAgentBridgeHierarchyObjectSelectable,\n normalizeAgentBridgeIdList,\n normalizeAgentBridgeString,\n type LocalEditorAgentBridgePreviewVisibilityEntry,\n type LocalEditorAgentBridgeCapabilitySourceOperations,\n type LocalEditorAgentBridgeHarnessState,\n} from '../shared.js';\nimport type { LocalEditorHarnessOptions } from '../../local-editor-harness.js';\n\nexport function createLocalEditorAgentBridgeViewportSource<TDocument, TPatch, TAsset>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): LocalEditorAgentBridgeViewportSource {\n return {\n focusObject(input) {\n const objectId = typeof input?.objectId === 'string' ? input.objectId.trim() : '';\n if (!objectId) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_FOCUS_OBJECT,\n 'viewport.focusObject requires objectId.',\n { code: 'viewport.invalidInput' },\n );\n }\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n const hierarchy = document ? getAgentBridgeSafeSceneHierarchy(operations) : [];\n if (!document || !isAgentBridgeHierarchyObjectSelectable(options, document, objectId, hierarchy)) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_FOCUS_OBJECT,\n `Viewport object was not found: ${objectId}`,\n { code: 'viewport.targetNotFound', objectId },\n );\n }\n const focused = operations.focusProjectionNode(objectId);\n renderUi();\n return { objectId, focused };\n },\n frameSelection() {\n const scopedSelection = getAgentBridgeViewportSelection(operations);\n const selection = scopedSelection.selection;\n const focused = selection.activeId\n ? scopedSelection.scene\n ? operations.focusProjectionNode(selection.activeId)\n : operations.focusPreviewSelection()\n : false;\n renderUi();\n return {\n focused,\n selection: cloneAgentBridgeSelection(selection),\n };\n },\n getCamera() {\n return createAgentBridgeViewportCameraState(state, operations);\n },\n setCameraPreset(input) {\n return setAgentBridgeViewportCameraPreset(state, options, input, renderUi, operations);\n },\n orbitCamera(input) {\n return orbitAgentBridgeViewportCamera(state, options, input, renderUi, operations);\n },\n getVisibilitySnapshot() {\n return createAgentBridgeViewportVisibilitySnapshot(state, operations);\n },\n setVisibility(input) {\n const result = setAgentBridgeViewportVisibility(state, options, input, operations);\n if ('ok' in result && result.ok === false) return result;\n operations.refreshShadowPreview?.();\n operations.requestSceneFrame('agent-viewport-visibility-set');\n renderUi();\n return result;\n },\n clearVisibility() {\n if (!hasAgentBridgeSafeSceneScope(operations)) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_VISIBILITY_CLEAR,\n 'Scene viewport visibility is unavailable outside the Scene Hierarchy scope.',\n { code: 'viewport.sceneScopeRequired' },\n );\n }\n const previousCount = Object.keys(state.previewVisibility.overrides).length;\n const wasIsolated = state.previewVisibility.isolatedObjectIds.length > 0;\n state.previewVisibility.overrides = {};\n state.previewVisibility.isolatedObjectIds = [];\n delete state.previewVisibility.protectedObjectIds;\n delete state.previewVisibility.protectedReceiverIds;\n delete state.previewVisibility.reason;\n state.projection?.clearPreviewVisibilityOverrides?.();\n operations.refreshShadowPreview?.();\n operations.requestSceneFrame('agent-viewport-visibility-clear');\n renderUi();\n return {\n changed: previousCount > 0 || wasIsolated,\n snapshot: createAgentBridgeViewportVisibilitySnapshot(state, operations),\n };\n },\n enterIsolation(input) {\n const result = enterAgentBridgeViewportIsolation(state, options, input, operations);\n if ('ok' in result && result.ok === false) return result;\n operations.refreshShadowPreview?.();\n operations.requestSceneFrame('agent-viewport-isolation-enter');\n renderUi();\n return result;\n },\n };\n}\n\nfunction setAgentBridgeViewportVisibility<TDocument, TPatch, TAsset>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: EditorAgentBridgeViewportVisibilitySetInput,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): EditorAgentBridgeViewportVisibilityMutationOutput | ReturnType<typeof createLocalEditorAgentBridgeFailure> {\n const ids = normalizeAgentBridgeIdList(Array.isArray(input.objectIds) ? input.objectIds : []);\n if (ids.length === 0) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_VISIBILITY_SET,\n 'viewport.visibility.set requires at least one objectId.',\n { code: 'viewport.visibility.invalidInput' },\n );\n }\n if (typeof input.visible !== 'boolean') {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_VISIBILITY_SET,\n 'viewport.visibility.set requires visible to be boolean.',\n { code: 'viewport.visibility.invalidInput' },\n );\n }\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n const hierarchy = document ? getAgentBridgeSafeSceneHierarchy(operations) : [];\n const invalidId = ids.find(id => !document || !isAgentBridgeHierarchyObjectSelectable(options, document, id, hierarchy));\n if (invalidId) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_VISIBILITY_SET,\n `Viewport object was not found: ${invalidId}`,\n { code: 'viewport.targetNotFound', objectId: invalidId },\n );\n }\n const previous = JSON.stringify(state.previewVisibility.overrides);\n const safeIds = new Set(hierarchy.map(item => item.id));\n const nextOverrides = Object.fromEntries(\n Object.entries(state.previewVisibility.overrides).filter(([id]) => safeIds.has(id)),\n );\n const protectedIds = new Set([\n ...(state.previewVisibility.protectedObjectIds ?? []),\n ...(state.previewVisibility.protectedReceiverIds ?? []),\n ]);\n const blockedIds: string[] = [];\n for (const id of ids) {\n if (input.visible === false && protectedIds.has(id)) {\n nextOverrides[id] = true;\n blockedIds.push(id);\n continue;\n }\n nextOverrides[id] = input.visible;\n }\n state.previewVisibility.overrides = nextOverrides;\n if (blockedIds.length === 0) {\n state.previewVisibility.isolatedObjectIds = [];\n } else {\n state.previewVisibility.isolatedObjectIds = state.previewVisibility.isolatedObjectIds.filter(id => safeIds.has(id));\n }\n state.previewVisibility.reason = normalizeAgentBridgeString(input.reason) || undefined;\n state.projection?.clearPreviewVisibilityOverrides?.();\n const entries = state.projection?.setPreviewVisibilityOverrides?.(nextOverrides) ?? [];\n const diagnostics = blockedIds.length > 0\n ? [{\n code: 'shadow.receiverProtectedInDebugContext',\n message: 'One or more objects are protected by the active Shadow Debug Context and were kept visible. Clear shadow.debug.context before hiding protected receivers.',\n source: 'editor' as const,\n severity: 'warning' as const,\n details: { objectIds: blockedIds },\n }]\n : undefined;\n return {\n changed: previous !== JSON.stringify(state.previewVisibility.overrides),\n snapshot: createAgentBridgeViewportVisibilitySnapshot(state, operations, entries, diagnostics),\n ...(diagnostics ? { diagnostics } : {}),\n };\n}\n\nfunction enterAgentBridgeViewportIsolation<TDocument, TPatch, TAsset>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: EditorAgentBridgeViewportIsolationEnterInput,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): EditorAgentBridgeViewportIsolationEnterOutput | ReturnType<typeof createLocalEditorAgentBridgeFailure> {\n const targetIds = normalizeAgentBridgeIdList(Array.isArray(input.objectIds) ? input.objectIds : []);\n if (targetIds.length === 0) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_ISOLATION_ENTER,\n 'viewport.isolation.enter requires at least one objectId.',\n { code: 'viewport.isolation.invalidInput' },\n );\n }\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n const hierarchy = document ? getAgentBridgeSafeSceneHierarchy(operations) : [];\n const invalidId = targetIds.find(id => !document || !isAgentBridgeHierarchyObjectSelectable(options, document, id, hierarchy));\n if (invalidId) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_ISOLATION_ENTER,\n `Viewport object was not found: ${invalidId}`,\n { code: 'viewport.targetNotFound', objectId: invalidId },\n );\n }\n const objectIds = createAgentBridgeViewportObjectIds(state, operations);\n if (objectIds.length === 0) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_ISOLATION_ENTER,\n 'Viewport projection is unavailable or has no visible objects to isolate.',\n { code: 'viewport.projectionUnavailable' },\n );\n }\n const keep = new Set(targetIds);\n for (const targetId of targetIds) {\n for (const parentId of state.projection?.getProjectionParentIds?.(targetId) ?? []) {\n if (hierarchy.some(item => item.id === parentId)) keep.add(parentId);\n }\n }\n const nextOverrides: Record<string, boolean> = {};\n for (const id of objectIds) nextOverrides[id] = keep.has(id);\n const previous = JSON.stringify(state.previewVisibility);\n state.previewVisibility.overrides = nextOverrides;\n state.previewVisibility.isolatedObjectIds = [...keep];\n delete state.previewVisibility.protectedObjectIds;\n delete state.previewVisibility.protectedReceiverIds;\n state.previewVisibility.reason = normalizeAgentBridgeString(input.reason) || undefined;\n state.projection?.clearPreviewVisibilityOverrides?.();\n const entries = state.projection?.setPreviewVisibilityOverrides?.(nextOverrides) ?? [];\n const diagnostics = input.includeShadowDependencies\n ? [{\n code: 'viewport.isolation.shadowDependenciesPending',\n message: 'Shadow dependency expansion will be resolved by shadow debug capabilities; this isolation kept the requested objectIds and required transform ancestors.',\n source: 'editor' as const,\n severity: 'info' as const,\n }]\n : undefined;\n return {\n changed: previous !== JSON.stringify(state.previewVisibility),\n snapshot: createAgentBridgeViewportVisibilitySnapshot(state, operations, entries, diagnostics),\n ...(diagnostics ? { diagnostics } : {}),\n };\n}\n\nfunction createAgentBridgeViewportVisibilitySnapshot<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n entries?: readonly LocalEditorAgentBridgePreviewVisibilityEntry[],\n diagnostics?: EditorAgentBridgeViewportVisibilityEntry['diagnostics'],\n): EditorAgentBridgeViewportVisibilitySnapshotOutput {\n const projectionEntries = entries ?? state.projection?.getPreviewVisibilityOverrides?.() ?? [];\n const safeIds = new Set(getAgentBridgeSafeSceneHierarchy(operations).map(item => item.id));\n const safeProjectionEntries = projectionEntries.filter(entry => safeIds.has(entry.nodeId));\n const entryById = new Map(safeProjectionEntries.map(entry => [entry.nodeId, entry]));\n const objectIds = new Set<string>([\n ...Object.keys(state.previewVisibility.overrides).filter(id => safeIds.has(id)),\n ...safeProjectionEntries.map(entry => entry.nodeId),\n ...state.previewVisibility.isolatedObjectIds.filter(id => safeIds.has(id)),\n ]);\n const isolatedIds = new Set(state.previewVisibility.isolatedObjectIds.filter(id => safeIds.has(id)));\n const normalizedEntries = [...objectIds].sort().map((objectId): EditorAgentBridgeViewportVisibilityEntry => {\n const projectionEntry = entryById.get(objectId);\n const overrideVisible = state.previewVisibility.overrides[objectId];\n const authoredVisible = projectionEntry?.authoredActive ?? true;\n return {\n objectId,\n authoredVisible,\n previewVisible: projectionEntry?.effectiveVisible ?? (authoredVisible && overrideVisible !== false),\n ...(typeof overrideVisible === 'boolean' ? { overrideVisible } : {}),\n isolated: isolatedIds.has(objectId),\n };\n });\n return {\n isolated: isolatedIds.size > 0,\n isolatedObjectIds: [...isolatedIds],\n entries: normalizedEntries,\n ...(state.previewVisibility.reason ? { reason: state.previewVisibility.reason } : {}),\n ...(diagnostics?.length ? { diagnostics } : {}),\n };\n}\n\nfunction createAgentBridgeViewportObjectIds<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): string[] {\n const fromOverrides = Object.keys(state.previewVisibility.overrides);\n const fromProjectedNodes = state.projection?.getProjectedNodeIds?.() ?? [];\n const fromProjection = state.projection?.getPreviewVisibilityOverrides?.().map(entry => entry.nodeId) ?? [];\n const safeScene = getAgentBridgeSafeSceneReadModel(operations);\n const sessionIds = safeScene.selection.selectedIds;\n const ids = new Set([...fromProjectedNodes, ...fromOverrides, ...fromProjection, ...sessionIds]);\n const safeIds = new Set(safeScene.hierarchy.map(item => item.id));\n if (ids.size > 0) return [...ids].filter(id => safeIds.has(id));\n return [];\n}\n\nfunction createAgentBridgeViewportCameraState<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): EditorAgentBridgeViewportCameraState {\n const cameraState = state.sceneViewCamera?.getState();\n const selection = getAgentBridgeViewportSelection(operations).selection;\n const alpha = cameraState?.alpha;\n const beta = cameraState?.beta;\n const radius = cameraState?.radius;\n return {\n viewPreset: (cameraState?.viewPreset ?? state.viewportTools.viewPreset) as EditorAgentBridgeViewportCameraPreset,\n projectionMode: cameraState?.projectionMode ?? state.viewportTools.projectionMode,\n ...(cameraState?.target ? { target: cloneVec3(cameraState.target) } : {}),\n ...(cameraState?.position ? { position: cloneVec3(cameraState.position) } : {}),\n ...(typeof alpha === 'number' && Number.isFinite(alpha) ? { alpha } : {}),\n ...(typeof beta === 'number' && Number.isFinite(beta) ? { beta } : {}),\n ...(typeof radius === 'number' && Number.isFinite(radius) ? { radius } : {}),\n selection: cloneAgentBridgeSelection(selection),\n };\n}\n\nfunction setAgentBridgeViewportCameraPreset<TDocument, TPatch, TAsset>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: EditorAgentBridgeViewportCameraSetPresetInput,\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): EditorAgentBridgeViewportCameraSetPresetOutput | ReturnType<typeof createLocalEditorAgentBridgeFailure> {\n if (state.mode !== 'editor' || !state.session) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_SET_PRESET,\n 'Editor is not in edit mode.',\n { code: 'editor.notReady' },\n );\n }\n if (state.sceneCameraPreviewEnabled) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_SET_PRESET,\n 'Viewport camera presets are unavailable during Scene Camera preview.',\n { code: 'viewport.camera.previewActive' },\n );\n }\n if (!state.sceneViewCamera) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_SET_PRESET,\n 'Viewport camera is unavailable.',\n { code: 'viewport.camera.unavailable' },\n );\n }\n const target = resolveAgentBridgeViewportCameraTarget(\n state,\n options,\n input.target,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_SET_PRESET,\n operations,\n );\n if (!target.ok) return target.result;\n const preset = normalizeAgentBridgeViewportCameraPreset(input.preset);\n if (!preset) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_SET_PRESET,\n 'viewport.camera.setPreset requires a supported preset.',\n { code: 'viewport.camera.invalidPreset' },\n );\n }\n const radius = normalizeAgentBridgePositiveNumber(input.radius, null);\n const distanceScale = normalizeAgentBridgePositiveNumber(input.distanceScale, 1);\n const baseRadius = target.radius ?? createAgentBridgeViewportCameraState(state, operations).radius ?? undefined;\n const scaledRadius = baseRadius && distanceScale ? baseRadius * distanceScale : baseRadius;\n const changed = state.sceneViewCamera.setViewPreset(preset, {\n target: target.target,\n radius: radius ?? scaledRadius,\n });\n operations.syncViewportCameraState();\n state.status = `Viewport camera: ${preset}`;\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n if (changed) operations.requestSceneFrame('agent-viewport-camera-set-preset');\n renderUi();\n return createAgentBridgeViewportCameraMutationOutput(state, changed, operations);\n}\n\nfunction orbitAgentBridgeViewportCamera<TDocument, TPatch, TAsset>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: EditorAgentBridgeViewportCameraOrbitInput,\n renderUi: () => void,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): EditorAgentBridgeViewportCameraSetPresetOutput | ReturnType<typeof createLocalEditorAgentBridgeFailure> {\n if (state.mode !== 'editor' || !state.session) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_ORBIT,\n 'Editor is not in edit mode.',\n { code: 'editor.notReady' },\n );\n }\n if (state.sceneCameraPreviewEnabled) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_ORBIT,\n 'Viewport camera orbit is unavailable during Scene Camera preview.',\n { code: 'viewport.camera.previewActive' },\n );\n }\n if (!state.sceneViewCamera) {\n return createLocalEditorAgentBridgeFailure(\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_ORBIT,\n 'Viewport camera is unavailable.',\n { code: 'viewport.camera.unavailable' },\n );\n }\n const target = resolveAgentBridgeViewportCameraTarget(\n state,\n options,\n input.target,\n EDITOR_AGENT_BRIDGE_CAPABILITY_ID.VIEWPORT_CAMERA_ORBIT,\n operations,\n );\n if (!target.ok) return target.result;\n const changed = state.sceneViewCamera.orbit({\n target: target.target ?? undefined,\n yawDeltaDeg: normalizeAgentBridgeFiniteNumber(input.yawDeltaDeg, 0),\n pitchDeltaDeg: normalizeAgentBridgeFiniteNumber(input.pitchDeltaDeg, 0),\n distanceScale: normalizeAgentBridgePositiveNumber(input.distanceScale, 1) ?? undefined,\n });\n operations.syncViewportCameraState();\n state.status = 'Viewport camera: orbit';\n state.statusTone = 'default';\n state.statusToneStatus = state.status;\n state.statusDetails = '';\n if (changed) operations.requestSceneFrame('agent-viewport-camera-orbit');\n renderUi();\n return createAgentBridgeViewportCameraMutationOutput(state, changed, operations);\n}\n\nfunction createAgentBridgeViewportCameraMutationOutput<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n changed: boolean,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): EditorAgentBridgeViewportCameraSetPresetOutput {\n const cameraState = createAgentBridgeViewportCameraState(state, operations);\n return {\n changed,\n viewPreset: cameraState.viewPreset,\n projectionMode: cameraState.projectionMode,\n ...(cameraState.target ? { target: cameraState.target } : {}),\n ...(cameraState.radius !== undefined ? { radius: cameraState.radius } : {}),\n selection: cameraState.selection,\n };\n}\n\nfunction resolveAgentBridgeViewportCameraTarget<TDocument, TPatch, TAsset>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n input: EditorAgentBridgeViewportCameraTarget | undefined,\n capabilityId: string,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): { ok: true; target: EditorAgentBridgeVec3 | null; radius?: number } | { ok: false; result: ReturnType<typeof createLocalEditorAgentBridgeFailure> } {\n const target = input ?? createDefaultAgentBridgeViewportCameraTarget(operations);\n if (target.kind === 'point') {\n if (!isLocalEditorAgentBridgeVec3(target.point)) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(\n capabilityId,\n 'Camera point target requires a finite Vec3 point.',\n { code: 'viewport.camera.invalidTarget' },\n ),\n };\n }\n return { ok: true, target: cloneVec3(target.point) };\n }\n if (target.kind === 'scene') return resolveAgentBridgeSceneCameraTarget(state, options, operations);\n if (target.kind === 'selection') return resolveAgentBridgeSelectionCameraTarget(state, capabilityId, operations);\n if (target.kind === 'object') {\n const objectId = normalizeAgentBridgeString(target.objectId);\n if (!objectId) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(\n capabilityId,\n 'Camera object target requires objectId.',\n { code: 'viewport.camera.invalidTarget' },\n ),\n };\n }\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n const hierarchy = document ? getAgentBridgeSafeSceneHierarchy(operations) : [];\n if (!document || !isAgentBridgeHierarchyObjectSelectable(options, document, objectId, hierarchy)) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(\n capabilityId,\n `Camera target object was not found: ${objectId}`,\n { code: 'viewport.camera.targetNotFound', objectId },\n ),\n };\n }\n return resolveAgentBridgeObjectCameraTarget(state, objectId, capabilityId);\n }\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(\n capabilityId,\n 'Unsupported camera target.',\n { code: 'viewport.camera.invalidTarget' },\n ),\n };\n}\n\nfunction createDefaultAgentBridgeViewportCameraTarget<TDocument>(\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): EditorAgentBridgeViewportCameraTarget {\n const selection = getAgentBridgeViewportSelection(operations).selection;\n return selection.activeId ? { kind: 'selection' } : { kind: 'scene' };\n}\n\nfunction resolveAgentBridgeSelectionCameraTarget<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n capabilityId: string,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): { ok: true; target: EditorAgentBridgeVec3 | null; radius?: number } | { ok: false; result: ReturnType<typeof createLocalEditorAgentBridgeFailure> } {\n const selection = getAgentBridgeViewportSelection(operations).selection;\n const selectedIds = selection.selectedIds.length > 0\n ? selection.selectedIds\n : selection.activeId ? [selection.activeId] : [];\n if (selectedIds.length === 0) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(\n capabilityId,\n 'Camera target selection is empty.',\n { code: 'viewport.camera.emptySelection' },\n ),\n };\n }\n const bounds = state.projection?.getSelectionBounds(selectedIds) ?? null;\n if (!bounds) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(\n capabilityId,\n 'Camera target selection has no projection bounds.',\n { code: 'viewport.camera.missingBounds', objectId: selection.activeId ?? undefined },\n ),\n };\n }\n return {\n ok: true,\n target: cloneVec3(bounds.center),\n radius: createAgentBridgeCameraRadiusFromBounds(bounds),\n };\n}\n\nfunction resolveAgentBridgeSceneCameraTarget<TDocument, TPatch, TAsset>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): { ok: true; target: EditorAgentBridgeVec3 | null; radius?: number } {\n const document = state.session?.getState({ cloneDocuments: false }).workingDocument ?? null;\n if (!document) return { ok: true, target: null };\n const hierarchy = getAgentBridgeSafeSceneHierarchy(operations);\n const objectIds = hierarchy\n .map(item => item.id)\n .filter(objectId => isAgentBridgeHierarchyObjectSelectable(options, document, objectId, hierarchy));\n if (objectIds.length === 0) return { ok: true, target: null };\n const bounds = state.projection?.getSelectionBounds(objectIds) ?? null;\n if (!bounds) return { ok: true, target: null };\n return {\n ok: true,\n target: cloneVec3(bounds.center),\n radius: createAgentBridgeCameraRadiusFromBounds(bounds),\n };\n}\n\nfunction getAgentBridgeViewportSelection<TDocument>(\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): { selection: EditorSelectionState; scene: boolean } {\n const safeScene = getAgentBridgeSafeSceneReadModel(operations);\n return safeScene.scopeType === 'scene'\n ? { selection: safeScene.selection, scene: true }\n : { selection: operations.getPreviewSelection(), scene: false };\n}\n\nfunction resolveAgentBridgeObjectCameraTarget<TDocument, TPatch>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n objectId: string,\n capabilityId: string,\n): { ok: true; target: EditorAgentBridgeVec3 | null; radius?: number } | { ok: false; result: ReturnType<typeof createLocalEditorAgentBridgeFailure> } {\n const bounds = state.projection?.getSelectionBounds([objectId]) ?? null;\n if (!bounds) {\n return {\n ok: false,\n result: createLocalEditorAgentBridgeFailure(\n capabilityId,\n `Camera target object has no projection bounds: ${objectId}`,\n { code: 'viewport.camera.missingBounds', objectId },\n ),\n };\n }\n return {\n ok: true,\n target: cloneVec3(bounds.center),\n radius: createAgentBridgeCameraRadiusFromBounds(bounds),\n };\n}\n\nfunction createAgentBridgeCameraRadiusFromBounds(bounds: { size: EditorAgentBridgeVec3 }): number | undefined {\n const radius = Math.hypot(bounds.size.x, bounds.size.y, bounds.size.z);\n return Number.isFinite(radius) && radius > 0 ? Math.max(radius * 1.5, 2) : undefined;\n}\n\nfunction normalizeAgentBridgeViewportCameraPreset(value: unknown): EditorViewportViewPreset | null {\n const preset = value === 'perspective'\n || value === 'top'\n || value === 'bottom'\n || value === 'front'\n || value === 'back'\n || value === 'left'\n || value === 'right'\n || value === 'iso'\n || value === 'threeQuarterTop'\n ? value\n : null;\n return preset as EditorViewportViewPreset | null;\n}\n\nfunction normalizeAgentBridgeFiniteNumber(value: unknown, fallback: number): number {\n return typeof value === 'number' && Number.isFinite(value) ? value : fallback;\n}\n\nfunction normalizeAgentBridgePositiveNumber(value: unknown, fallback: number | null): number | null {\n return typeof value === 'number' && Number.isFinite(value) && value > 0 ? value : fallback;\n}\n"]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { LocalEditorHarnessOptions } from '../local-editor-harness.js';
|
|
2
|
-
import type { EditorAgentBridgeCallContext } from '@fps-games/editor-core';
|
|
3
|
-
import type { LocalEditorAgentBridgeCapabilitySources } from './source-types.js';
|
|
4
|
-
import type { LocalEditorAgentBridgeCapabilitySourceOperations, LocalEditorAgentBridgeHarnessState } from './shared.js';
|
|
5
|
-
export * from './shared.js';
|
|
6
|
-
export declare function createLocalEditorAgentBridgeCapabilitySources<TDocument, TPatch, TAsset>(state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>, options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>, renderUi: () => void, enterEditor: (context?: EditorAgentBridgeCallContext) => Promise<void>, saveAndRun: (context?: EditorAgentBridgeCallContext) => Promise<boolean>, discardAndRun: (context?: EditorAgentBridgeCallContext) => Promise<boolean>, operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>): LocalEditorAgentBridgeCapabilitySources;
|
|
7
|
-
//# sourceMappingURL=capability-sources.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"capability-sources.d.ts","sourceRoot":"","sources":["../../src/agent-bridge/capability-sources.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AAY3E,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,KAAK,EACV,gDAAgD,EAChD,kCAAkC,EACnC,MAAM,aAAa,CAAC;AAErB,cAAc,aAAa,CAAC;AAE5B,wBAAgB,6CAA6C,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EACrF,KAAK,EAAE,kCAAkC,CAAC,SAAS,EAAE,MAAM,CAAC,EAC5D,OAAO,EAAE,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAC7D,QAAQ,EAAE,MAAM,IAAI,EACpB,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,4BAA4B,KAAK,OAAO,CAAC,IAAI,CAAC,EACtE,UAAU,EAAE,CAAC,OAAO,CAAC,EAAE,4BAA4B,KAAK,OAAO,CAAC,OAAO,CAAC,EACxE,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE,4BAA4B,KAAK,OAAO,CAAC,OAAO,CAAC,EAC3E,UAAU,EAAE,gDAAgD,CAAC,SAAS,CAAC,GACtE,uCAAuC,CAoBzC"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { createLocalEditorAgentBridgeAssetSource } from './capabilities/assets.js';
|
|
2
|
-
import { createLocalEditorAgentBridgeStateSource } from './capabilities/editor-state.js';
|
|
3
|
-
import { createLocalEditorAgentBridgeHostSource } from './capabilities/host-lifecycle.js';
|
|
4
|
-
import { createLocalEditorAgentBridgeHierarchySource } from './capabilities/hierarchy.js';
|
|
5
|
-
import { createLocalEditorAgentBridgePrefabSource } from './capabilities/prefabs.js';
|
|
6
|
-
import { createLocalEditorAgentBridgeObjectSource } from './capabilities/scene-objects.js';
|
|
7
|
-
import { createLocalEditorAgentBridgeSelectionSource } from './capabilities/selection.js';
|
|
8
|
-
import { createLocalEditorAgentBridgeShadowSource } from './capabilities/shadows.js';
|
|
9
|
-
import { createLocalEditorAgentBridgeTransformSource } from './capabilities/transform.js';
|
|
10
|
-
import { createLocalEditorAgentBridgeUiSource } from './capabilities/ui-regions.js';
|
|
11
|
-
import { createLocalEditorAgentBridgeViewportSource } from './capabilities/viewport.js';
|
|
12
|
-
export * from './shared.js';
|
|
13
|
-
export function createLocalEditorAgentBridgeCapabilitySources(state, options, renderUi, enterEditor, saveAndRun, discardAndRun, operations) {
|
|
14
|
-
return {
|
|
15
|
-
assets: createLocalEditorAgentBridgeAssetSource(state, options),
|
|
16
|
-
host: createLocalEditorAgentBridgeHostSource(state, enterEditor, async () => {
|
|
17
|
-
state.assets = await options.persistenceAdapter.loadAssets();
|
|
18
|
-
renderUi();
|
|
19
|
-
}, saveAndRun, discardAndRun, {
|
|
20
|
-
getLifecycleSnapshot: () => state.lifecycle?.getSnapshot() ?? null,
|
|
21
|
-
getRecentDiagnostics: () => options.pluginHost?.inspect().diagnostics ?? [],
|
|
22
|
-
}),
|
|
23
|
-
hierarchy: createLocalEditorAgentBridgeHierarchySource(operations),
|
|
24
|
-
objects: createLocalEditorAgentBridgeObjectSource(state, options, renderUi, operations),
|
|
25
|
-
prefabs: createLocalEditorAgentBridgePrefabSource(state, options, renderUi, operations),
|
|
26
|
-
selection: createLocalEditorAgentBridgeSelectionSource(state, options, operations),
|
|
27
|
-
shadows: createLocalEditorAgentBridgeShadowSource(state, options, renderUi, operations),
|
|
28
|
-
transform: createLocalEditorAgentBridgeTransformSource(state, options, renderUi, operations),
|
|
29
|
-
viewport: createLocalEditorAgentBridgeViewportSource(state, options, renderUi, operations),
|
|
30
|
-
state: createLocalEditorAgentBridgeStateSource(state, options, operations),
|
|
31
|
-
ui: createLocalEditorAgentBridgeUiSource(state),
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=capability-sources.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"capability-sources.js","sourceRoot":"","sources":["../../src/agent-bridge/capability-sources.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uCAAuC,EAAE,MAAM,0BAA0B,CAAC;AACnF,OAAO,EAAE,uCAAuC,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,sCAAsC,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,2CAA2C,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,wCAAwC,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,wCAAwC,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,2CAA2C,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,wCAAwC,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,EAAE,2CAA2C,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,oCAAoC,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,0CAA0C,EAAE,MAAM,4BAA4B,CAAC;AAOxF,cAAc,aAAa,CAAC;AAE5B,MAAM,UAAU,6CAA6C,CAC3D,KAA4D,EAC5D,OAA6D,EAC7D,QAAoB,EACpB,WAAsE,EACtE,UAAwE,EACxE,aAA2E,EAC3E,UAAuE;IAEvE,OAAO;QACL,MAAM,EAAE,uCAAuC,CAAC,KAAK,EAAE,OAAO,CAAC;QAC/D,IAAI,EAAE,sCAAsC,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE;YAC1E,KAAK,CAAC,MAAM,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC;YAC7D,QAAQ,EAAE,CAAC;QACb,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE;YAC5B,oBAAoB,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,IAAI;YAClE,oBAAoB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,CAAC,WAAW,IAAI,EAAE;SAC5E,CAAC;QACF,SAAS,EAAE,2CAA2C,CAAC,UAAU,CAAC;QAClE,OAAO,EAAE,wCAAwC,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;QACvF,OAAO,EAAE,wCAAwC,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;QACvF,SAAS,EAAE,2CAA2C,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;QAClF,OAAO,EAAE,wCAAwC,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;QACvF,SAAS,EAAE,2CAA2C,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;QAC5F,QAAQ,EAAE,0CAA0C,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC;QAC1F,KAAK,EAAE,uCAAuC,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;QAC1E,EAAE,EAAE,oCAAoC,CAAC,KAAK,CAAC;KAChD,CAAC;AACJ,CAAC","sourcesContent":["import type { LocalEditorHarnessOptions } from '../local-editor-harness.js';\nimport type { EditorAgentBridgeCallContext } from '@fps-games/editor-core';\nimport { createLocalEditorAgentBridgeAssetSource } from './capabilities/assets.js';\nimport { createLocalEditorAgentBridgeStateSource } from './capabilities/editor-state.js';\nimport { createLocalEditorAgentBridgeHostSource } from './capabilities/host-lifecycle.js';\nimport { createLocalEditorAgentBridgeHierarchySource } from './capabilities/hierarchy.js';\nimport { createLocalEditorAgentBridgePrefabSource } from './capabilities/prefabs.js';\nimport { createLocalEditorAgentBridgeObjectSource } from './capabilities/scene-objects.js';\nimport { createLocalEditorAgentBridgeSelectionSource } from './capabilities/selection.js';\nimport { createLocalEditorAgentBridgeShadowSource } from './capabilities/shadows.js';\nimport { createLocalEditorAgentBridgeTransformSource } from './capabilities/transform.js';\nimport { createLocalEditorAgentBridgeUiSource } from './capabilities/ui-regions.js';\nimport { createLocalEditorAgentBridgeViewportSource } from './capabilities/viewport.js';\nimport type { LocalEditorAgentBridgeCapabilitySources } from './source-types.js';\nimport type {\n LocalEditorAgentBridgeCapabilitySourceOperations,\n LocalEditorAgentBridgeHarnessState,\n} from './shared.js';\n\nexport * from './shared.js';\n\nexport function createLocalEditorAgentBridgeCapabilitySources<TDocument, TPatch, TAsset>(\n state: LocalEditorAgentBridgeHarnessState<TDocument, TPatch>,\n options: LocalEditorHarnessOptions<TDocument, TPatch, TAsset>,\n renderUi: () => void,\n enterEditor: (context?: EditorAgentBridgeCallContext) => Promise<void>,\n saveAndRun: (context?: EditorAgentBridgeCallContext) => Promise<boolean>,\n discardAndRun: (context?: EditorAgentBridgeCallContext) => Promise<boolean>,\n operations: LocalEditorAgentBridgeCapabilitySourceOperations<TDocument>,\n): LocalEditorAgentBridgeCapabilitySources {\n return {\n assets: createLocalEditorAgentBridgeAssetSource(state, options),\n host: createLocalEditorAgentBridgeHostSource(state, enterEditor, async () => {\n state.assets = await options.persistenceAdapter.loadAssets();\n renderUi();\n }, saveAndRun, discardAndRun, {\n getLifecycleSnapshot: () => state.lifecycle?.getSnapshot() ?? null,\n getRecentDiagnostics: () => options.pluginHost?.inspect().diagnostics ?? [],\n }),\n hierarchy: createLocalEditorAgentBridgeHierarchySource(operations),\n objects: createLocalEditorAgentBridgeObjectSource(state, options, renderUi, operations),\n prefabs: createLocalEditorAgentBridgePrefabSource(state, options, renderUi, operations),\n selection: createLocalEditorAgentBridgeSelectionSource(state, options, operations),\n shadows: createLocalEditorAgentBridgeShadowSource(state, options, renderUi, operations),\n transform: createLocalEditorAgentBridgeTransformSource(state, options, renderUi, operations),\n viewport: createLocalEditorAgentBridgeViewportSource(state, options, renderUi, operations),\n state: createLocalEditorAgentBridgeStateSource(state, options, operations),\n ui: createLocalEditorAgentBridgeUiSource(state),\n };\n}\n"]}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { EditorAgentBridgeCallResult, EditorAgentBridgeDiagnostic, EditorAgentBridgeTransform, EditorAgentBridgeVec3 } from '@fps-games/editor-protocol';
|
|
2
|
-
import type { EditorTransformSnapshot } from '@fps-games/editor-core';
|
|
3
|
-
export declare function createLocalEditorAgentBridgeFailure(capabilityId: string, message: string, options?: {
|
|
4
|
-
code?: string;
|
|
5
|
-
source?: EditorAgentBridgeDiagnostic['source'];
|
|
6
|
-
objectId?: string;
|
|
7
|
-
details?: EditorAgentBridgeDiagnostic['details'];
|
|
8
|
-
}): EditorAgentBridgeCallResult<never>;
|
|
9
|
-
export declare function isLocalEditorAgentBridgeVec3(value: unknown): value is EditorAgentBridgeVec3;
|
|
10
|
-
export declare function editorTransformSnapshotToAgentTransform(transform: EditorTransformSnapshot | null | undefined): EditorAgentBridgeTransform | undefined;
|
|
11
|
-
export declare function cloneVec3(vec3: EditorAgentBridgeVec3): EditorAgentBridgeVec3;
|
|
12
|
-
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/agent-bridge/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,wBAAgB,mCAAmC,CACjD,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;CAC7C,GACL,2BAA2B,CAAC,KAAK,CAAC,CAapC;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,qBAAqB,CAI3F;AAED,wBAAgB,uCAAuC,CACrD,SAAS,EAAE,uBAAuB,GAAG,IAAI,GAAG,SAAS,GACpD,0BAA0B,GAAG,SAAS,CAgBxC;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,qBAAqB,GAAG,qBAAqB,CAE5E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/agent-bridge/diagnostics.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,mCAAmC,CACjD,YAAoB,EACpB,OAAe,EACf,UAKI,EAAE;IAEN,OAAO;QACL,EAAE,EAAE,KAAK;QACT,YAAY;QACZ,WAAW,EAAE,CAAC;gBACZ,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,QAAQ;gBAClC,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,OAAO;gBACP,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzD,CAAC;KACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAc;IACzD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,MAAM,GAAG,KAAuC,CAAC;IACvD,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,uCAAuC,CACrD,SAAqD;IAErD,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IACjC,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;QAC1B,OAAO;YACL,QAAQ,EAAE;gBACR,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;aACxB;SACF,CAAC;IACJ,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;QACvC,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC;QACvC,KAAK,EAAE,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC;KAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAA2B;IACnD,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC7D,CAAC","sourcesContent":["import type {\n EditorAgentBridgeCallResult,\n EditorAgentBridgeDiagnostic,\n EditorAgentBridgeTransform,\n EditorAgentBridgeVec3,\n} from '@fps-games/editor-protocol';\nimport type { EditorTransformSnapshot } from '@fps-games/editor-core';\n\nexport function createLocalEditorAgentBridgeFailure(\n capabilityId: string,\n message: string,\n options: {\n code?: string;\n source?: EditorAgentBridgeDiagnostic['source'];\n objectId?: string;\n details?: EditorAgentBridgeDiagnostic['details'];\n } = {},\n): EditorAgentBridgeCallResult<never> {\n return {\n ok: false,\n capabilityId,\n diagnostics: [{\n severity: 'error',\n source: options.source ?? 'editor',\n code: options.code,\n message,\n objectId: options.objectId,\n ...(options.details ? { details: options.details } : {}),\n }],\n };\n}\n\nexport function isLocalEditorAgentBridgeVec3(value: unknown): value is EditorAgentBridgeVec3 {\n if (!value || typeof value !== 'object') return false;\n const record = value as Partial<EditorAgentBridgeVec3>;\n return isFiniteNumber(record.x) && isFiniteNumber(record.y) && isFiniteNumber(record.z);\n}\n\nexport function editorTransformSnapshotToAgentTransform(\n transform: EditorTransformSnapshot | null | undefined,\n): EditorAgentBridgeTransform | undefined {\n if (!transform) return undefined;\n if ('matrix' in transform) {\n return {\n position: {\n x: transform.matrix[12],\n y: transform.matrix[13],\n z: transform.matrix[14],\n },\n };\n }\n return {\n position: cloneVec3(transform.position),\n rotation: cloneVec3(transform.rotation),\n scale: cloneVec3(transform.scale),\n };\n}\n\nexport function cloneVec3(vec3: EditorAgentBridgeVec3): EditorAgentBridgeVec3 {\n return { x: vec3.x, y: vec3.y, z: vec3.z };\n}\n\nfunction isFiniteNumber(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value);\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent-bridge/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-bridge/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC","sourcesContent":["export * from './capability-sources.js';\nexport * from './diagnostics.js';\nexport * from './register.js';\nexport * from './source-types.js';\n"]}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { EditorAgentBridge } from '@fps-games/editor-core';
|
|
2
|
-
import type { LocalEditorAgentBridgeCapabilitySources } from './source-types.js';
|
|
3
|
-
export declare function registerLocalEditorAgentBridgeCapabilities(bridge: EditorAgentBridge, sources: LocalEditorAgentBridgeCapabilitySources): () => void;
|
|
4
|
-
//# sourceMappingURL=register.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/agent-bridge/register.ts"],"names":[],"mappings":"AAoIA,OAAO,KAAK,EACV,iBAAiB,EAElB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,uCAAuC,EAAE,MAAM,mBAAmB,CAAC;AAKjF,wBAAgB,0CAA0C,CACxD,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,uCAAuC,GAC/C,MAAM,IAAI,CA6wCZ"}
|