unreal-engine-mcp-server 0.6.0-beta-e → 0.6.0
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/CHANGELOG.md +185 -0
- package/README.md +41 -58
- package/dist/cli.js +3 -13
- package/dist/constants.js +0 -15
- package/dist/proxy/native-proxy.js +49 -8
- package/package.json +13 -17
- package/server.json +10 -55
- package/dist/automation/bridge-client.d.ts +0 -36
- package/dist/automation/bridge-client.js +0 -194
- package/dist/automation/bridge-config.d.ts +0 -25
- package/dist/automation/bridge-config.js +0 -182
- package/dist/automation/bridge-request-dispatcher.d.ts +0 -28
- package/dist/automation/bridge-request-dispatcher.js +0 -152
- package/dist/automation/bridge-state.d.ts +0 -18
- package/dist/automation/bridge-state.js +0 -2
- package/dist/automation/bridge-status.d.ts +0 -15
- package/dist/automation/bridge-status.js +0 -47
- package/dist/automation/bridge.d.ts +0 -48
- package/dist/automation/bridge.js +0 -152
- package/dist/automation/capability-token-provider.d.ts +0 -11
- package/dist/automation/capability-token-provider.js +0 -62
- package/dist/automation/connection-lifecycle.d.ts +0 -19
- package/dist/automation/connection-lifecycle.js +0 -109
- package/dist/automation/connection-manager.d.ts +0 -40
- package/dist/automation/connection-manager.js +0 -127
- package/dist/automation/diagnostics-snapshot-reader.d.ts +0 -76
- package/dist/automation/diagnostics-snapshot-reader.js +0 -86
- package/dist/automation/dispatcher.test-support.d.ts +0 -9
- package/dist/automation/dispatcher.test-support.js +0 -26
- package/dist/automation/handshake.d.ts +0 -11
- package/dist/automation/handshake.js +0 -132
- package/dist/automation/index.d.ts +0 -6
- package/dist/automation/index.js +0 -4
- package/dist/automation/log-redaction.d.ts +0 -11
- package/dist/automation/log-redaction.js +0 -165
- package/dist/automation/message-handler.d.ts +0 -15
- package/dist/automation/message-handler.js +0 -103
- package/dist/automation/message-schema.d.ts +0 -128
- package/dist/automation/message-schema.js +0 -92
- package/dist/automation/request-cancellation-error.d.ts +0 -7
- package/dist/automation/request-cancellation-error.js +0 -11
- package/dist/automation/request-context.d.ts +0 -8
- package/dist/automation/request-context.js +0 -12
- package/dist/automation/request-correlation.d.ts +0 -22
- package/dist/automation/request-correlation.js +0 -79
- package/dist/automation/request-tracker.d.ts +0 -32
- package/dist/automation/request-tracker.js +0 -139
- package/dist/automation/socket.test-support.d.ts +0 -9
- package/dist/automation/socket.test-support.js +0 -55
- package/dist/automation/types.d.ts +0 -198
- package/dist/automation/types.js +0 -2
- package/dist/cli.d.ts +0 -3
- package/dist/config.d.ts +0 -38
- package/dist/config.js +0 -106
- package/dist/constants.d.ts +0 -20
- package/dist/gateway/gateway-manifest-types.d.ts +0 -36
- package/dist/gateway/gateway-manifest-types.js +0 -16
- package/dist/gateway/gateway-manifest.d.ts +0 -10
- package/dist/gateway/gateway-manifest.generated.json +0 -17865
- package/dist/gateway/gateway-manifest.js +0 -19
- package/dist/handlers/resource-handlers.d.ts +0 -46
- package/dist/handlers/resource-handlers.js +0 -177
- package/dist/index.d.ts +0 -4
- package/dist/index.js +0 -5
- package/dist/proxy/native-proxy.d.ts +0 -12
- package/dist/resources/actors.d.ts +0 -3
- package/dist/resources/actors.js +0 -20
- package/dist/resources/assets.d.ts +0 -7
- package/dist/resources/assets.js +0 -58
- package/dist/resources/capability-resources.d.ts +0 -37
- package/dist/resources/capability-resources.js +0 -86
- package/dist/resources/editor-state-resources.d.ts +0 -65
- package/dist/resources/editor-state-resources.js +0 -129
- package/dist/resources/knowledge-resources.d.ts +0 -22
- package/dist/resources/knowledge-resources.js +0 -59
- package/dist/resources/resource-catalog.d.ts +0 -15
- package/dist/resources/resource-catalog.js +0 -54
- package/dist/resources/resource-errors.d.ts +0 -17
- package/dist/resources/resource-errors.js +0 -76
- package/dist/resources/resource-read-router.d.ts +0 -19
- package/dist/resources/resource-read-router.js +0 -56
- package/dist/resources/resources.test-support.d.ts +0 -5
- package/dist/resources/resources.test-support.js +0 -7
- package/dist/server/gateway/direct-call-migration.d.ts +0 -26
- package/dist/server/gateway/direct-call-migration.js +0 -46
- package/dist/server/gateway/gateway-availability.d.ts +0 -10
- package/dist/server/gateway/gateway-availability.js +0 -15
- package/dist/server/gateway/gateway-capability-index.d.ts +0 -45
- package/dist/server/gateway/gateway-capability-index.js +0 -148
- package/dist/server/gateway/gateway-capability-view.d.ts +0 -20
- package/dist/server/gateway/gateway-capability-view.js +0 -144
- package/dist/server/gateway/gateway-describe-browse.d.ts +0 -14
- package/dist/server/gateway/gateway-describe-browse.js +0 -110
- package/dist/server/gateway/gateway-describe-capability.d.ts +0 -6
- package/dist/server/gateway/gateway-describe-capability.js +0 -74
- package/dist/server/gateway/gateway-describe.d.ts +0 -2
- package/dist/server/gateway/gateway-describe.js +0 -109
- package/dist/server/gateway/gateway-dispatch-by.d.ts +0 -17
- package/dist/server/gateway/gateway-dispatch-by.js +0 -67
- package/dist/server/gateway/gateway-execute-dispatch.d.ts +0 -24
- package/dist/server/gateway/gateway-execute-dispatch.js +0 -204
- package/dist/server/gateway/gateway-execute-envelope.d.ts +0 -48
- package/dist/server/gateway/gateway-execute-envelope.js +0 -194
- package/dist/server/gateway/gateway-execute-idempotency.d.ts +0 -19
- package/dist/server/gateway/gateway-execute-idempotency.js +0 -64
- package/dist/server/gateway/gateway-execute-lookup.d.ts +0 -11
- package/dist/server/gateway/gateway-execute-lookup.js +0 -122
- package/dist/server/gateway/gateway-execute-policy.d.ts +0 -9
- package/dist/server/gateway/gateway-execute-policy.js +0 -93
- package/dist/server/gateway/gateway-execute-resolve.d.ts +0 -28
- package/dist/server/gateway/gateway-execute-resolve.js +0 -2
- package/dist/server/gateway/gateway-execute-static-check.d.ts +0 -13
- package/dist/server/gateway/gateway-execute-static-check.js +0 -127
- package/dist/server/gateway/gateway-execute.d.ts +0 -6
- package/dist/server/gateway/gateway-execute.js +0 -145
- package/dist/server/gateway/gateway-guidance.d.ts +0 -15
- package/dist/server/gateway/gateway-guidance.js +0 -78
- package/dist/server/gateway/gateway-option-validate.d.ts +0 -10
- package/dist/server/gateway/gateway-option-validate.js +0 -73
- package/dist/server/gateway/gateway-receipt-context.d.ts +0 -21
- package/dist/server/gateway/gateway-receipt-context.js +0 -36
- package/dist/server/gateway/gateway-schema-validate.d.ts +0 -14
- package/dist/server/gateway/gateway-schema-validate.js +0 -316
- package/dist/server/gateway/gateway-search-filters.d.ts +0 -19
- package/dist/server/gateway/gateway-search-filters.js +0 -107
- package/dist/server/gateway/gateway-search.d.ts +0 -2
- package/dist/server/gateway/gateway-search.js +0 -106
- package/dist/server/gateway/gateway-shared.d.ts +0 -20
- package/dist/server/gateway/gateway-shared.js +0 -52
- package/dist/server/gateway/gateway-task-results.d.ts +0 -6
- package/dist/server/gateway/gateway-task-results.js +0 -40
- package/dist/server/gateway/idempotency-ledger.d.ts +0 -42
- package/dist/server/gateway/idempotency-ledger.js +0 -102
- package/dist/server/mcp-primitives/completions.d.ts +0 -11
- package/dist/server/mcp-primitives/completions.js +0 -103
- package/dist/server/mcp-primitives/primitive-wiring.d.ts +0 -12
- package/dist/server/mcp-primitives/primitive-wiring.js +0 -31
- package/dist/server/mcp-primitives/progress/progress-reporter.d.ts +0 -33
- package/dist/server/mcp-primitives/progress/progress-reporter.js +0 -50
- package/dist/server/mcp-primitives/progress/progress-sink-registry.d.ts +0 -17
- package/dist/server/mcp-primitives/progress/progress-sink-registry.js +0 -35
- package/dist/server/mcp-primitives/progress/progress-token.d.ts +0 -3
- package/dist/server/mcp-primitives/progress/progress-token.js +0 -12
- package/dist/server/mcp-primitives/prompts.d.ts +0 -43
- package/dist/server/mcp-primitives/prompts.js +0 -142
- package/dist/server/mcp-primitives/resource-revision.d.ts +0 -15
- package/dist/server/mcp-primitives/resource-revision.js +0 -11
- package/dist/server/server-factory.d.ts +0 -47
- package/dist/server/server-factory.js +0 -84
- package/dist/server/stdio-lifecycle.d.ts +0 -2
- package/dist/server/stdio-lifecycle.js +0 -57
- package/dist/server/tool-registry-gateway.d.ts +0 -4
- package/dist/server/tool-registry-gateway.js +0 -80
- package/dist/server/tool-registry-manage-tools.d.ts +0 -2
- package/dist/server/tool-registry-manage-tools.js +0 -160
- package/dist/server/tool-registry.d.ts +0 -15
- package/dist/server/tool-registry.js +0 -110
- package/dist/server-setup.d.ts +0 -21
- package/dist/server-setup.js +0 -60
- package/dist/services/health-monitor.d.ts +0 -42
- package/dist/services/health-monitor.js +0 -103
- package/dist/services/readiness.d.ts +0 -35
- package/dist/services/readiness.js +0 -77
- package/dist/services/telemetry/prometheus-exposition.d.ts +0 -11
- package/dist/services/telemetry/prometheus-exposition.js +0 -80
- package/dist/services/telemetry-observation.d.ts +0 -4
- package/dist/services/telemetry-observation.js +0 -65
- package/dist/services/telemetry-registry.d.ts +0 -69
- package/dist/services/telemetry-registry.js +0 -128
- package/dist/services/telemetry-schema.d.ts +0 -36
- package/dist/services/telemetry-schema.js +0 -64
- package/dist/tools/catalog/capabilities/capability-record.test-support.d.ts +0 -158
- package/dist/tools/catalog/capabilities/capability-record.test-support.js +0 -94
- package/dist/tools/catalog/capabilities/catalog-schema.d.ts +0 -114
- package/dist/tools/catalog/capabilities/catalog-schema.js +0 -82
- package/dist/tools/catalog/capabilities/constants.d.ts +0 -12
- package/dist/tools/catalog/capabilities/constants.js +0 -12
- package/dist/tools/catalog/capabilities/generated/canonical-registry.generated.d.ts +0 -6
- package/dist/tools/catalog/capabilities/generated/canonical-registry.generated.js +0 -6
- package/dist/tools/catalog/capabilities/generated/canonical-registry.generated.json +0 -96681
- package/dist/tools/catalog/capabilities/generated/capability-cost-index.generated.d.ts +0 -3
- package/dist/tools/catalog/capabilities/generated/capability-cost-index.generated.js +0 -1547
- package/dist/tools/catalog/capabilities/generated/parent-tool-definitions.generated.d.ts +0 -3
- package/dist/tools/catalog/capabilities/generated/parent-tool-definitions.generated.js +0 -23483
- package/dist/tools/catalog/capabilities/hashing.d.ts +0 -14
- package/dist/tools/catalog/capabilities/hashing.js +0 -80
- package/dist/tools/catalog/capabilities/identifiers.d.ts +0 -21
- package/dist/tools/catalog/capabilities/identifiers.js +0 -47
- package/dist/tools/catalog/capabilities/json-schema.d.ts +0 -12
- package/dist/tools/catalog/capabilities/json-schema.js +0 -71
- package/dist/tools/catalog/capabilities/model.d.ts +0 -100
- package/dist/tools/catalog/capabilities/model.js +0 -2
- package/dist/tools/catalog/capabilities/parser.d.ts +0 -5
- package/dist/tools/catalog/capabilities/parser.js +0 -41
- package/dist/tools/catalog/capabilities/record-fields.d.ts +0 -114
- package/dist/tools/catalog/capabilities/record-fields.js +0 -91
- package/dist/tools/catalog/capabilities/record-folding.d.ts +0 -3
- package/dist/tools/catalog/capabilities/record-folding.js +0 -136
- package/dist/tools/catalog/capabilities/record-hashing.d.ts +0 -3
- package/dist/tools/catalog/capabilities/record-hashing.js +0 -33
- package/dist/tools/catalog/capabilities/record-schema.d.ts +0 -221
- package/dist/tools/catalog/capabilities/record-schema.js +0 -22
- package/dist/tools/catalog/capabilities/records/aggregate.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/aggregate.js +0 -60
- package/dist/tools/catalog/capabilities/records/build-environment/atmosphere.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/build-environment/atmosphere.data.js +0 -124
- package/dist/tools/catalog/capabilities/records/build-environment/foliage.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/build-environment/foliage.data.js +0 -162
- package/dist/tools/catalog/capabilities/records/build-environment/helpers.d.ts +0 -9
- package/dist/tools/catalog/capabilities/records/build-environment/helpers.js +0 -3
- package/dist/tools/catalog/capabilities/records/build-environment/index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/build-environment/index.js +0 -28
- package/dist/tools/catalog/capabilities/records/build-environment/landscape.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/build-environment/landscape.data.js +0 -166
- package/dist/tools/catalog/capabilities/records/build-environment/lighting.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/build-environment/lighting.data.js +0 -183
- package/dist/tools/catalog/capabilities/records/build-environment/procedural.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/build-environment/procedural.data.js +0 -72
- package/dist/tools/catalog/capabilities/records/build-environment/properties.d.ts +0 -166
- package/dist/tools/catalog/capabilities/records/build-environment/properties.js +0 -212
- package/dist/tools/catalog/capabilities/records/build-environment/render-postprocess.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/build-environment/render-postprocess.data.js +0 -40
- package/dist/tools/catalog/capabilities/records/build-environment/render-raytrace.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/build-environment/render-raytrace.data.js +0 -39
- package/dist/tools/catalog/capabilities/records/build-environment/render-screen.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/build-environment/render-screen.data.js +0 -36
- package/dist/tools/catalog/capabilities/records/build-environment/spline.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/build-environment/spline.data.js +0 -200
- package/dist/tools/catalog/capabilities/records/build-environment/water.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/build-environment/water.data.js +0 -83
- package/dist/tools/catalog/capabilities/records/build-environment/weather.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/build-environment/weather.data.js +0 -52
- package/dist/tools/catalog/capabilities/records/compensation.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/compensation.js +0 -15
- package/dist/tools/catalog/capabilities/records/control-actor/advanced-records.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/control-actor/advanced-records.js +0 -135
- package/dist/tools/catalog/capabilities/records/control-actor/component-records.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/control-actor/component-records.js +0 -107
- package/dist/tools/catalog/capabilities/records/control-actor/index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/control-actor/index.js +0 -18
- package/dist/tools/catalog/capabilities/records/control-actor/properties.d.ts +0 -103
- package/dist/tools/catalog/capabilities/records/control-actor/properties.js +0 -94
- package/dist/tools/catalog/capabilities/records/control-actor/search-records.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/control-actor/search-records.js +0 -322
- package/dist/tools/catalog/capabilities/records/control-actor/spawn-records.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/control-actor/spawn-records.js +0 -305
- package/dist/tools/catalog/capabilities/records/control-actor/state-records.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/control-actor/state-records.js +0 -129
- package/dist/tools/catalog/capabilities/records/control-actor/transform-records.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/control-actor/transform-records.js +0 -280
- package/dist/tools/catalog/capabilities/records/control-editor/asset.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/control-editor/asset.js +0 -134
- package/dist/tools/catalog/capabilities/records/control-editor/bookmark.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/control-editor/bookmark.js +0 -27
- package/dist/tools/catalog/capabilities/records/control-editor/camera.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/control-editor/camera.js +0 -65
- package/dist/tools/catalog/capabilities/records/control-editor/command.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/control-editor/command.js +0 -251
- package/dist/tools/catalog/capabilities/records/control-editor/history.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/control-editor/history.js +0 -27
- package/dist/tools/catalog/capabilities/records/control-editor/index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/control-editor/index.js +0 -28
- package/dist/tools/catalog/capabilities/records/control-editor/input.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/control-editor/input.js +0 -50
- package/dist/tools/catalog/capabilities/records/control-editor/properties.d.ts +0 -77
- package/dist/tools/catalog/capabilities/records/control-editor/properties.js +0 -70
- package/dist/tools/catalog/capabilities/records/control-editor/recording.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/control-editor/recording.js +0 -31
- package/dist/tools/catalog/capabilities/records/control-editor/screenshot.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/control-editor/screenshot.js +0 -76
- package/dist/tools/catalog/capabilities/records/control-editor/session.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/control-editor/session.js +0 -137
- package/dist/tools/catalog/capabilities/records/control-editor/timing.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/control-editor/timing.js +0 -59
- package/dist/tools/catalog/capabilities/records/control-editor/viewport.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/control-editor/viewport.js +0 -91
- package/dist/tools/catalog/capabilities/records/core/builder.d.ts +0 -35
- package/dist/tools/catalog/capabilities/records/core/builder.js +0 -46
- package/dist/tools/catalog/capabilities/records/folds/animation-physics.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/animation-physics.folds.js +0 -113
- package/dist/tools/catalog/capabilities/records/folds/build-environment.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/build-environment.folds.js +0 -165
- package/dist/tools/catalog/capabilities/records/folds/control-actor.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/control-actor.folds.js +0 -61
- package/dist/tools/catalog/capabilities/records/folds/control-editor.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/control-editor.folds.js +0 -52
- package/dist/tools/catalog/capabilities/records/folds/inspect.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/inspect.folds.js +0 -50
- package/dist/tools/catalog/capabilities/records/folds/manage-ai.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/manage-ai.folds.js +0 -96
- package/dist/tools/catalog/capabilities/records/folds/manage-asset.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/manage-asset.folds.js +0 -226
- package/dist/tools/catalog/capabilities/records/folds/manage-audio.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/manage-audio.folds.js +0 -70
- package/dist/tools/catalog/capabilities/records/folds/manage-blueprint.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/manage-blueprint.folds.js +0 -137
- package/dist/tools/catalog/capabilities/records/folds/manage-character.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/manage-character.folds.js +0 -19
- package/dist/tools/catalog/capabilities/records/folds/manage-combat.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/manage-combat.folds.js +0 -37
- package/dist/tools/catalog/capabilities/records/folds/manage-effect.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/manage-effect.folds.js +0 -59
- package/dist/tools/catalog/capabilities/records/folds/manage-gas.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/manage-gas.folds.js +0 -42
- package/dist/tools/catalog/capabilities/records/folds/manage-geometry.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/manage-geometry.folds.js +0 -69
- package/dist/tools/catalog/capabilities/records/folds/manage-interaction.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/manage-interaction.folds.js +0 -17
- package/dist/tools/catalog/capabilities/records/folds/manage-inventory.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/manage-inventory.folds.js +0 -27
- package/dist/tools/catalog/capabilities/records/folds/manage-level-structure.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/manage-level-structure.folds.js +0 -30
- package/dist/tools/catalog/capabilities/records/folds/manage-level.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/manage-level.folds.js +0 -28
- package/dist/tools/catalog/capabilities/records/folds/manage-networking.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/manage-networking.folds.js +0 -86
- package/dist/tools/catalog/capabilities/records/folds/manage-pcg.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/manage-pcg.folds.js +0 -22
- package/dist/tools/catalog/capabilities/records/folds/manage-sequence.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/manage-sequence.folds.js +0 -106
- package/dist/tools/catalog/capabilities/records/folds/system-control.folds.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/folds/system-control.folds.js +0 -62
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/animation-properties.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/animation-properties.js +0 -82
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/authoring-1.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/authoring-1.data.js +0 -224
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/authoring-2.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/authoring-2.data.js +0 -179
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/authoring-3.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/authoring-3.data.js +0 -123
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/index.js +0 -14
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/skeleton-bone.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/skeleton-bone.data.js +0 -52
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/skeleton-physics-morph.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/skeleton-physics-morph.data.js +0 -97
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/skeleton-read-alias.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/skeleton-read-alias.data.js +0 -141
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/skeleton-socket-weight.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/skeleton-socket-weight.data.js +0 -80
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/skeleton.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/animation-physics/skeleton.data.js +0 -11
- package/dist/tools/catalog/capabilities/records/gameplay/helpers.d.ts +0 -10
- package/dist/tools/catalog/capabilities/records/gameplay/helpers.js +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/manage-ai/add-actions.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/manage-ai/add-actions.data.js +0 -200
- package/dist/tools/catalog/capabilities/records/gameplay/manage-ai/builder.d.ts +0 -24
- package/dist/tools/catalog/capabilities/records/gameplay/manage-ai/builder.js +0 -34
- package/dist/tools/catalog/capabilities/records/gameplay/manage-ai/configure-actions.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/manage-ai/configure-actions.data.js +0 -203
- package/dist/tools/catalog/capabilities/records/gameplay/manage-ai/create-read-actions.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/manage-ai/create-read-actions.data.js +0 -233
- package/dist/tools/catalog/capabilities/records/gameplay/manage-ai/properties-navigation.d.ts +0 -32
- package/dist/tools/catalog/capabilities/records/gameplay/manage-ai/properties-navigation.js +0 -34
- package/dist/tools/catalog/capabilities/records/gameplay/manage-ai/properties.d.ts +0 -74
- package/dist/tools/catalog/capabilities/records/gameplay/manage-ai/properties.js +0 -112
- package/dist/tools/catalog/capabilities/records/gameplay/manage-ai/records.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/gameplay/manage-ai/records.js +0 -14
- package/dist/tools/catalog/capabilities/records/gameplay/manage-ai/set-actions.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/manage-ai/set-actions.data.js +0 -203
- package/dist/tools/catalog/capabilities/records/gameplay/manage-character/character-1.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/manage-character/character-1.data.js +0 -81
- package/dist/tools/catalog/capabilities/records/gameplay/manage-character/character-2.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/manage-character/character-2.data.js +0 -46
- package/dist/tools/catalog/capabilities/records/gameplay/manage-character/character-3.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/manage-character/character-3.data.js +0 -73
- package/dist/tools/catalog/capabilities/records/gameplay/manage-character/character.props.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/manage-character/character.props.js +0 -83
- package/dist/tools/catalog/capabilities/records/gameplay/manage-character/index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/gameplay/manage-character/index.js +0 -12
- package/dist/tools/catalog/capabilities/records/gameplay/manage-combat/combat-properties.d.ts +0 -88
- package/dist/tools/catalog/capabilities/records/gameplay/manage-combat/combat-properties.js +0 -70
- package/dist/tools/catalog/capabilities/records/gameplay/manage-combat/combat.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/manage-combat/combat.data.js +0 -92
- package/dist/tools/catalog/capabilities/records/gameplay/manage-combat/index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/gameplay/manage-combat/index.js +0 -8
- package/dist/tools/catalog/capabilities/records/gameplay/manage-effect/effect-properties.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/manage-effect/effect-properties.js +0 -67
- package/dist/tools/catalog/capabilities/records/gameplay/manage-effect/effect.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/manage-effect/effect.data.js +0 -345
- package/dist/tools/catalog/capabilities/records/gameplay/manage-effect/index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/gameplay/manage-effect/index.js +0 -8
- package/dist/tools/catalog/capabilities/records/gameplay/manage-gas/gas.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/manage-gas/gas.data.js +0 -146
- package/dist/tools/catalog/capabilities/records/gameplay/manage-gas/gas.props.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/manage-gas/gas.props.js +0 -62
- package/dist/tools/catalog/capabilities/records/gameplay/manage-gas/index.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/manage-gas/index.js +0 -5
- package/dist/tools/catalog/capabilities/records/gameplay/manage-interaction/index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/gameplay/manage-interaction/index.js +0 -8
- package/dist/tools/catalog/capabilities/records/gameplay/manage-interaction/interaction.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/manage-interaction/interaction.data.js +0 -253
- package/dist/tools/catalog/capabilities/records/gameplay/manage-interaction/schema.d.ts +0 -18
- package/dist/tools/catalog/capabilities/records/gameplay/manage-interaction/schema.js +0 -52
- package/dist/tools/catalog/capabilities/records/gameplay/manage-inventory/index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/gameplay/manage-inventory/index.js +0 -8
- package/dist/tools/catalog/capabilities/records/gameplay/manage-inventory/inventory.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/gameplay/manage-inventory/inventory.data.js +0 -331
- package/dist/tools/catalog/capabilities/records/gameplay/manage-inventory/schema.d.ts +0 -19
- package/dist/tools/catalog/capabilities/records/gameplay/manage-inventory/schema.js +0 -71
- package/dist/tools/catalog/capabilities/records/gameplay/properties.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/gameplay/properties.js +0 -94
- package/dist/tools/catalog/capabilities/records/inspect/component-actor.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/inspect/component-actor.data.js +0 -182
- package/dist/tools/catalog/capabilities/records/inspect/global.data.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/inspect/global.data.js +0 -121
- package/dist/tools/catalog/capabilities/records/inspect/index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/inspect/index.js +0 -17
- package/dist/tools/catalog/capabilities/records/inspect/inspect-records.shared.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/inspect/inspect-records.shared.js +0 -9
- package/dist/tools/catalog/capabilities/records/inspect/object-property.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/inspect/object-property.data.js +0 -481
- package/dist/tools/catalog/capabilities/records/inspect/properties.d.ts +0 -31
- package/dist/tools/catalog/capabilities/records/inspect/properties.js +0 -30
- package/dist/tools/catalog/capabilities/records/inspect/runtime.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/inspect/runtime.data.js +0 -37
- package/dist/tools/catalog/capabilities/records/inspect/stats.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/inspect/stats.data.js +0 -91
- package/dist/tools/catalog/capabilities/records/manage-asset/asset-advanced.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-asset/asset-advanced.js +0 -185
- package/dist/tools/catalog/capabilities/records/manage-asset/asset-lifecycle.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-asset/asset-lifecycle.js +0 -136
- package/dist/tools/catalog/capabilities/records/manage-asset/asset-query.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-asset/asset-query.js +0 -95
- package/dist/tools/catalog/capabilities/records/manage-asset/builder.d.ts +0 -54
- package/dist/tools/catalog/capabilities/records/manage-asset/builder.js +0 -91
- package/dist/tools/catalog/capabilities/records/manage-asset/content-sources.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-asset/content-sources.js +0 -314
- package/dist/tools/catalog/capabilities/records/manage-asset/datatable-records.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-asset/datatable-records.js +0 -51
- package/dist/tools/catalog/capabilities/records/manage-asset/enum-records.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-asset/enum-records.js +0 -38
- package/dist/tools/catalog/capabilities/records/manage-asset/index.d.ts +0 -6
- package/dist/tools/catalog/capabilities/records/manage-asset/index.js +0 -27
- package/dist/tools/catalog/capabilities/records/manage-asset/material-create.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-asset/material-create.js +0 -57
- package/dist/tools/catalog/capabilities/records/manage-asset/material-graph.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-asset/material-graph.js +0 -152
- package/dist/tools/catalog/capabilities/records/manage-asset/material-nodes.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-asset/material-nodes.js +0 -77
- package/dist/tools/catalog/capabilities/records/manage-asset/material-params.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-asset/material-params.js +0 -88
- package/dist/tools/catalog/capabilities/records/manage-asset/struct-records.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-asset/struct-records.js +0 -82
- package/dist/tools/catalog/capabilities/records/manage-asset/texture-adjust.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-asset/texture-adjust.js +0 -42
- package/dist/tools/catalog/capabilities/records/manage-asset/texture-config.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-asset/texture-config.js +0 -26
- package/dist/tools/catalog/capabilities/records/manage-asset/texture-create.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-asset/texture-create.js +0 -28
- package/dist/tools/catalog/capabilities/records/manage-audio/authoring.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-audio/authoring.data.js +0 -121
- package/dist/tools/catalog/capabilities/records/manage-audio/index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/manage-audio/index.js +0 -10
- package/dist/tools/catalog/capabilities/records/manage-audio/runtime.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-audio/runtime.data.js +0 -30
- package/dist/tools/catalog/capabilities/records/manage-blueprint/blueprint-lifecycle.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-blueprint/blueprint-lifecycle.js +0 -152
- package/dist/tools/catalog/capabilities/records/manage-blueprint/functions-events.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-blueprint/functions-events.js +0 -103
- package/dist/tools/catalog/capabilities/records/manage-blueprint/graph-batch.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-blueprint/graph-batch.js +0 -80
- package/dist/tools/catalog/capabilities/records/manage-blueprint/graph-nodes.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-blueprint/graph-nodes.js +0 -274
- package/dist/tools/catalog/capabilities/records/manage-blueprint/graph-pins.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-blueprint/graph-pins.js +0 -153
- package/dist/tools/catalog/capabilities/records/manage-blueprint/helpers.d.ts +0 -11
- package/dist/tools/catalog/capabilities/records/manage-blueprint/helpers.js +0 -5
- package/dist/tools/catalog/capabilities/records/manage-blueprint/index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/manage-blueprint/index.js +0 -40
- package/dist/tools/catalog/capabilities/records/manage-blueprint/probe.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-blueprint/probe.js +0 -30
- package/dist/tools/catalog/capabilities/records/manage-blueprint/properties.d.ts +0 -417
- package/dist/tools/catalog/capabilities/records/manage-blueprint/properties.js +0 -237
- package/dist/tools/catalog/capabilities/records/manage-blueprint/scs-components.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-blueprint/scs-components.js +0 -203
- package/dist/tools/catalog/capabilities/records/manage-blueprint/variables-metadata.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-blueprint/variables-metadata.js +0 -140
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-animation.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-animation.js +0 -124
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-bindings.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-bindings.js +0 -108
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-content.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-content.js +0 -113
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-game-ui.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-game-ui.js +0 -56
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-info.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-info.js +0 -107
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-layout.d.ts +0 -24
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-layout.js +0 -45
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-lifecycle.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-lifecycle.js +0 -189
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-panels.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-panels.js +0 -153
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-templates.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-blueprint/widget-templates.js +0 -47
- package/dist/tools/catalog/capabilities/records/manage-level/index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/manage-level/index.js +0 -7
- package/dist/tools/catalog/capabilities/records/manage-level/lifecycle.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-level/lifecycle.data.js +0 -132
- package/dist/tools/catalog/capabilities/records/manage-level/operations-io.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-level/operations-io.data.js +0 -32
- package/dist/tools/catalog/capabilities/records/manage-level/operations-power.data.d.ts +0 -5
- package/dist/tools/catalog/capabilities/records/manage-level/operations-power.data.js +0 -178
- package/dist/tools/catalog/capabilities/records/manage-level/operations.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-level/operations.data.js +0 -88
- package/dist/tools/catalog/capabilities/records/manage-level/properties.d.ts +0 -45
- package/dist/tools/catalog/capabilities/records/manage-level/properties.js +0 -45
- package/dist/tools/catalog/capabilities/records/manage-networking/framework.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-networking/framework.data.js +0 -45
- package/dist/tools/catalog/capabilities/records/manage-networking/index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/manage-networking/index.js +0 -15
- package/dist/tools/catalog/capabilities/records/manage-networking/input.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-networking/input.data.js +0 -24
- package/dist/tools/catalog/capabilities/records/manage-networking/replication.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-networking/replication.data.js +0 -60
- package/dist/tools/catalog/capabilities/records/manage-networking/session.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-networking/session.data.js +0 -26
- package/dist/tools/catalog/capabilities/records/manage-sequence/alias-props.d.ts +0 -49
- package/dist/tools/catalog/capabilities/records/manage-sequence/alias-props.js +0 -78
- package/dist/tools/catalog/capabilities/records/manage-sequence/cinematic.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-sequence/cinematic.js +0 -166
- package/dist/tools/catalog/capabilities/records/manage-sequence/helpers.d.ts +0 -119
- package/dist/tools/catalog/capabilities/records/manage-sequence/helpers.js +0 -108
- package/dist/tools/catalog/capabilities/records/manage-sequence/index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/manage-sequence/index.js +0 -28
- package/dist/tools/catalog/capabilities/records/manage-sequence/media.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-sequence/media.js +0 -119
- package/dist/tools/catalog/capabilities/records/manage-sequence/metadata.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-sequence/metadata.js +0 -41
- package/dist/tools/catalog/capabilities/records/manage-sequence/mrq.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-sequence/mrq.js +0 -146
- package/dist/tools/catalog/capabilities/records/manage-sequence/replay.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-sequence/replay.js +0 -103
- package/dist/tools/catalog/capabilities/records/manage-sequence/take.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-sequence/take.js +0 -59
- package/dist/tools/catalog/capabilities/records/manage-sequence/timeline-bindings.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-sequence/timeline-bindings.js +0 -88
- package/dist/tools/catalog/capabilities/records/manage-sequence/timeline-lifecycle.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-sequence/timeline-lifecycle.js +0 -132
- package/dist/tools/catalog/capabilities/records/manage-sequence/timeline-playback.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-sequence/timeline-playback.js +0 -81
- package/dist/tools/catalog/capabilities/records/manage-sequence/timeline-state-ranges.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-sequence/timeline-state-ranges.js +0 -95
- package/dist/tools/catalog/capabilities/records/manage-sequence/timeline-tracks.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-sequence/timeline-tracks.js +0 -147
- package/dist/tools/catalog/capabilities/records/manage-tools/index.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/manage-tools/index.js +0 -276
- package/dist/tools/catalog/capabilities/records/parent-metadata.d.ts +0 -8
- package/dist/tools/catalog/capabilities/records/parent-metadata.js +0 -103
- package/dist/tools/catalog/capabilities/records/shared/fold-build.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/shared/fold-build.js +0 -175
- package/dist/tools/catalog/capabilities/records/shared/fold-members.d.ts +0 -5
- package/dist/tools/catalog/capabilities/records/shared/fold-members.js +0 -63
- package/dist/tools/catalog/capabilities/records/shared/fold-spec.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/shared/fold-spec.js +0 -10
- package/dist/tools/catalog/capabilities/records/shared/fold-support.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/shared/fold-support.js +0 -4
- package/dist/tools/catalog/capabilities/records/shared/fold-types.d.ts +0 -16
- package/dist/tools/catalog/capabilities/records/shared/fold-types.js +0 -2
- package/dist/tools/catalog/capabilities/records/shared/fold-widen.d.ts +0 -5
- package/dist/tools/catalog/capabilities/records/shared/fold-widen.js +0 -104
- package/dist/tools/catalog/capabilities/records/shared/fold.d.ts +0 -6
- package/dist/tools/catalog/capabilities/records/shared/fold.js +0 -37
- package/dist/tools/catalog/capabilities/records/shared/light-text.d.ts +0 -13
- package/dist/tools/catalog/capabilities/records/shared/light-text.js +0 -37
- package/dist/tools/catalog/capabilities/records/shared/record-presets.d.ts +0 -11
- package/dist/tools/catalog/capabilities/records/shared/record-presets.js +0 -41
- package/dist/tools/catalog/capabilities/records/shared/schema-props.d.ts +0 -8
- package/dist/tools/catalog/capabilities/records/shared/schema-props.js +0 -13
- package/dist/tools/catalog/capabilities/records/system-control/console.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/system-control/console.js +0 -149
- package/dist/tools/catalog/capabilities/records/system-control/index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/system-control/index.js +0 -18
- package/dist/tools/catalog/capabilities/records/system-control/insights.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/system-control/insights.js +0 -194
- package/dist/tools/catalog/capabilities/records/system-control/performance.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/system-control/performance.js +0 -336
- package/dist/tools/catalog/capabilities/records/system-control/plugins.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/system-control/plugins.js +0 -101
- package/dist/tools/catalog/capabilities/records/system-control/system-ops.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/system-control/system-ops.js +0 -523
- package/dist/tools/catalog/capabilities/records/system-control/widget-audio-viewport.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/system-control/widget-audio-viewport.js +0 -115
- package/dist/tools/catalog/capabilities/records/unfolded.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/unfolded.js +0 -51
- package/dist/tools/catalog/capabilities/records/utility/example-values.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/utility/example-values.js +0 -195
- package/dist/tools/catalog/capabilities/records/utility/output-glossary.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/utility/output-glossary.js +0 -120
- package/dist/tools/catalog/capabilities/records/utility/utility-output-schema.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/utility/utility-output-schema.js +0 -16
- package/dist/tools/catalog/capabilities/records/utility/utility-record-builders.d.ts +0 -29
- package/dist/tools/catalog/capabilities/records/utility/utility-record-builders.js +0 -61
- package/dist/tools/catalog/capabilities/records/utility/utility-schema-pins.d.ts +0 -9
- package/dist/tools/catalog/capabilities/records/utility/utility-schema-pins.js +0 -294
- package/dist/tools/catalog/capabilities/records/world/builder.d.ts +0 -19
- package/dist/tools/catalog/capabilities/records/world/builder.js +0 -21
- package/dist/tools/catalog/capabilities/records/world/manage-geometry.deform.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/world/manage-geometry.deform.data.js +0 -74
- package/dist/tools/catalog/capabilities/records/world/manage-geometry.dynamicmesh.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/world/manage-geometry.dynamicmesh.data.js +0 -260
- package/dist/tools/catalog/capabilities/records/world/manage-geometry.index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/world/manage-geometry.index.js +0 -16
- package/dist/tools/catalog/capabilities/records/world/manage-geometry.operations.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/world/manage-geometry.operations.data.js +0 -191
- package/dist/tools/catalog/capabilities/records/world/manage-geometry.optimize.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/world/manage-geometry.optimize.data.js +0 -280
- package/dist/tools/catalog/capabilities/records/world/manage-geometry.primitives.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/world/manage-geometry.primitives.data.js +0 -166
- package/dist/tools/catalog/capabilities/records/world/manage-level-structure.index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/world/manage-level-structure.index.js +0 -10
- package/dist/tools/catalog/capabilities/records/world/manage-level-structure.structure.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/world/manage-level-structure.structure.data.js +0 -180
- package/dist/tools/catalog/capabilities/records/world/manage-level-structure.volume.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/world/manage-level-structure.volume.data.js +0 -141
- package/dist/tools/catalog/capabilities/records/world/manage-pcg.async.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/world/manage-pcg.async.data.js +0 -21
- package/dist/tools/catalog/capabilities/records/world/manage-pcg.graph.data.d.ts +0 -3
- package/dist/tools/catalog/capabilities/records/world/manage-pcg.graph.data.js +0 -196
- package/dist/tools/catalog/capabilities/records/world/manage-pcg.index.d.ts +0 -4
- package/dist/tools/catalog/capabilities/records/world/manage-pcg.index.js +0 -10
- package/dist/tools/catalog/capabilities/records/world/properties.d.ts +0 -200
- package/dist/tools/catalog/capabilities/records/world/properties.js +0 -239
- package/dist/tools/catalog/capabilities/retrieval/alias-fold.d.ts +0 -7
- package/dist/tools/catalog/capabilities/retrieval/alias-fold.js +0 -20
- package/dist/tools/catalog/capabilities/retrieval/constants.d.ts +0 -56
- package/dist/tools/catalog/capabilities/retrieval/constants.js +0 -71
- package/dist/tools/catalog/capabilities/retrieval/scoring.d.ts +0 -52
- package/dist/tools/catalog/capabilities/retrieval/scoring.js +0 -289
- package/dist/tools/catalog/capabilities/retrieval/tokenize.d.ts +0 -4
- package/dist/tools/catalog/capabilities/retrieval/tokenize.js +0 -47
- package/dist/tools/catalog/capabilities/semantic/authorization.d.ts +0 -20
- package/dist/tools/catalog/capabilities/semantic/authorization.js +0 -25
- package/dist/tools/catalog/capabilities/semantic/envelope.d.ts +0 -244
- package/dist/tools/catalog/capabilities/semantic/envelope.js +0 -81
- package/dist/tools/catalog/capabilities/semantic/errors.d.ts +0 -122
- package/dist/tools/catalog/capabilities/semantic/errors.js +0 -163
- package/dist/tools/catalog/capabilities/semantic/execution-options.d.ts +0 -23
- package/dist/tools/catalog/capabilities/semantic/execution-options.js +0 -29
- package/dist/tools/catalog/capabilities/semantic/handles.d.ts +0 -33
- package/dist/tools/catalog/capabilities/semantic/handles.js +0 -28
- package/dist/tools/catalog/capabilities/semantic/ids.d.ts +0 -14
- package/dist/tools/catalog/capabilities/semantic/ids.js +0 -36
- package/dist/tools/catalog/capabilities/semantic/live-state-revisions.d.ts +0 -11
- package/dist/tools/catalog/capabilities/semantic/live-state-revisions.js +0 -18
- package/dist/tools/catalog/capabilities/semantic/paths.d.ts +0 -9
- package/dist/tools/catalog/capabilities/semantic/paths.js +0 -148
- package/dist/tools/catalog/capabilities/semantic/receipt-outcome.d.ts +0 -10
- package/dist/tools/catalog/capabilities/semantic/receipt-outcome.js +0 -114
- package/dist/tools/catalog/capabilities/semantic/receipt-redaction.d.ts +0 -19
- package/dist/tools/catalog/capabilities/semantic/receipt-redaction.js +0 -176
- package/dist/tools/catalog/unreal-gateway-definition.d.ts +0 -5
- package/dist/tools/catalog/unreal-gateway-definition.js +0 -147
- package/dist/tools/definitions/shared/tool-definition.d.ts +0 -9
- package/dist/tools/definitions/shared/tool-definition.js +0 -2
- package/dist/tools/dynamic/dynamic-tool-manager.d.ts +0 -55
- package/dist/tools/dynamic/dynamic-tool-manager.js +0 -171
- package/dist/tools/handlers/foundation/arguments/handler-argument-validation.d.ts +0 -2
- package/dist/tools/handlers/foundation/arguments/handler-argument-validation.js +0 -160
- package/dist/tools/handlers/foundation/dispatch/automation-request-dispatch.d.ts +0 -13
- package/dist/tools/handlers/foundation/dispatch/automation-request-dispatch.js +0 -60
- package/dist/tools/handlers/foundation/dispatch/handler-timeout.d.ts +0 -5
- package/dist/tools/handlers/foundation/dispatch/handler-timeout.js +0 -28
- package/dist/types/automation/automation-responses.d.ts +0 -18
- package/dist/types/automation/automation-responses.js +0 -2
- package/dist/types/tools/tool-interfaces.d.ts +0 -26
- package/dist/types/tools/tool-interfaces.js +0 -2
- package/dist/unreal-bridge.d.ts +0 -27
- package/dist/unreal-bridge.js +0 -59
- package/dist/utils/collections/bounded.d.ts +0 -7
- package/dist/utils/collections/bounded.js +0 -13
- package/dist/utils/commands/command-validator.d.ts +0 -4
- package/dist/utils/commands/command-validator.js +0 -20
- package/dist/utils/commands/console-command-policy-matching.d.ts +0 -6
- package/dist/utils/commands/console-command-policy-matching.js +0 -38
- package/dist/utils/commands/console-command-policy-rules.d.ts +0 -179
- package/dist/utils/commands/console-command-policy-rules.js +0 -173
- package/dist/utils/config/ini-reader.d.ts +0 -3
- package/dist/utils/logging/log-redaction.d.ts +0 -4
- package/dist/utils/logging/log-redaction.js +0 -27
- package/dist/utils/logging/logger.d.ts +0 -13
- package/dist/utils/paths/content-path-policy.d.ts +0 -6
- package/dist/utils/paths/content-path-policy.js +0 -29
- package/dist/utils/paths/path-security.d.ts +0 -10
- package/dist/utils/paths/path-security.js +0 -115
- package/dist/utils/responses/automation-frame-normalization.d.ts +0 -2
- package/dist/utils/responses/automation-frame-normalization.js +0 -51
- package/dist/utils/responses/gateway-reply-compaction.d.ts +0 -6
- package/dist/utils/responses/gateway-reply-compaction.js +0 -264
- package/dist/utils/responses/response-content.d.ts +0 -4
- package/dist/utils/responses/response-content.js +0 -54
- package/dist/utils/responses/response-validator.d.ts +0 -2
- package/dist/utils/responses/response-validator.js +0 -61
- package/dist/utils/serialization/ordering.d.ts +0 -9
- package/dist/utils/serialization/ordering.js +0 -17
- package/dist/utils/serialization/safe-json.d.ts +0 -2
- package/dist/utils/serialization/safe-json.js +0 -44
- package/dist/utils/validation/type-guards.d.ts +0 -4
- package/dist/utils/validation/type-guards.js +0 -23
- package/dist/utils/validation/validation.d.ts +0 -3
- package/dist/utils/validation/validation.js +0 -82
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import type { CapabilityAvailability, CapabilityBehaviorSource, CapabilityCost, CapabilityExample, CapabilityPolicy, Draft202012ObjectSchema, JsonObject } from '../../model.js';
|
|
2
|
-
export { bool, num, str } from '../shared/schema-props.js';
|
|
3
|
-
export declare const MATERIAL_PARAMETER_LIST: JsonObject;
|
|
4
|
-
export declare const MATERIAL_PARAMETER_ASSETS: JsonObject;
|
|
5
|
-
export declare const MATERIAL_DOMAIN: JsonObject;
|
|
6
|
-
export declare const BLEND_MODE: JsonObject;
|
|
7
|
-
export declare const SHADING_MODEL: JsonObject;
|
|
8
|
-
export declare const arr: (desc: string) => JsonObject;
|
|
9
|
-
export declare const arrObj: (desc: string) => JsonObject;
|
|
10
|
-
export declare const refObj: (desc: string) => JsonObject;
|
|
11
|
-
export declare const boundedLimit: (maxPageSize: number, defaultPageSize: number) => JsonObject;
|
|
12
|
-
export declare const boundedPagination: (maxPageSize: number, defaultPageSize: number) => JsonObject;
|
|
13
|
-
export declare const READ: CapabilityBehaviorSource;
|
|
14
|
-
export declare const WRITE: CapabilityBehaviorSource;
|
|
15
|
-
export declare const DESTRUCTIVE: CapabilityBehaviorSource;
|
|
16
|
-
export declare const NON_IDEMPOTENT: CapabilityBehaviorSource;
|
|
17
|
-
export declare const READ_POLICY: CapabilityPolicy;
|
|
18
|
-
export declare const WRITE_POLICY: CapabilityPolicy;
|
|
19
|
-
export declare const DESTRUCTIVE_POLICY: CapabilityPolicy;
|
|
20
|
-
export declare const LOW: CapabilityCost;
|
|
21
|
-
export declare const MEDIUM: CapabilityCost;
|
|
22
|
-
export declare const HIGH: CapabilityCost;
|
|
23
|
-
export declare function ex(title: string, input: JsonObject, output: JsonObject): CapabilityExample;
|
|
24
|
-
export type Family = 'asset' | 'material' | 'texture' | 'struct' | 'datatable' | 'enum';
|
|
25
|
-
export type NonEmptyExamples = readonly [CapabilityExample, ...CapabilityExample[]];
|
|
26
|
-
export interface RecordSpec {
|
|
27
|
-
readonly action: string;
|
|
28
|
-
readonly family: Family;
|
|
29
|
-
readonly summary: string;
|
|
30
|
-
readonly input: Draft202012ObjectSchema;
|
|
31
|
-
readonly output: Draft202012ObjectSchema;
|
|
32
|
-
readonly behavior: CapabilityBehaviorSource;
|
|
33
|
-
readonly policy: CapabilityPolicy;
|
|
34
|
-
readonly cost: CapabilityCost;
|
|
35
|
-
readonly aliases: readonly string[];
|
|
36
|
-
readonly topics: readonly string[];
|
|
37
|
-
readonly dispatchAction: string;
|
|
38
|
-
readonly examples: NonEmptyExamples;
|
|
39
|
-
readonly availability: CapabilityAvailability;
|
|
40
|
-
readonly whenToUse?: readonly string[];
|
|
41
|
-
readonly whenNotToUse?: readonly string[];
|
|
42
|
-
}
|
|
43
|
-
export interface SpecOptions {
|
|
44
|
-
readonly aliases?: readonly string[];
|
|
45
|
-
readonly topics?: readonly string[];
|
|
46
|
-
readonly dispatchAction?: string;
|
|
47
|
-
readonly examples: NonEmptyExamples;
|
|
48
|
-
readonly requiredPlugins?: readonly string[];
|
|
49
|
-
readonly whenToUse?: readonly string[];
|
|
50
|
-
readonly whenNotToUse?: readonly string[];
|
|
51
|
-
}
|
|
52
|
-
export declare function r(action: string, family: Family, summary: string, input: Draft202012ObjectSchema, output: Draft202012ObjectSchema, behavior: CapabilityBehaviorSource, policy: CapabilityPolicy, cost: CapabilityCost, options: SpecOptions): RecordSpec;
|
|
53
|
-
export declare function toSource(spec: RecordSpec): Record<string, unknown>;
|
|
54
|
-
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
export { bool, num, str } from '../shared/schema-props.js';
|
|
2
|
-
export const MATERIAL_PARAMETER_LIST = {
|
|
3
|
-
type: 'array',
|
|
4
|
-
items: { type: 'object', additionalProperties: true, 'x-unreal-reflection-boundary': true },
|
|
5
|
-
'x-unreal-reflection-boundary': true,
|
|
6
|
-
description: 'Several parameter values at once, each {parameterName, parameterType (scalar | vector | texture), value, or texturePath for a texture}; every entry is reported, and the call fails naming any that did not apply.',
|
|
7
|
-
};
|
|
8
|
-
export const MATERIAL_PARAMETER_ASSETS = {
|
|
9
|
-
type: 'array',
|
|
10
|
-
minItems: 1,
|
|
11
|
-
maxItems: 64,
|
|
12
|
-
items: { type: 'object', additionalProperties: true, 'x-unreal-reflection-boundary': true },
|
|
13
|
-
'x-unreal-reflection-boundary': true,
|
|
14
|
-
description: 'Several materials or material instances at once, in place of assetPath: each {assetPath, and parameters or parameterName with value}; the call\'s own save applies to every entry. Every entry is reported under assets, and the call fails naming any that did not apply.',
|
|
15
|
-
};
|
|
16
|
-
export const MATERIAL_DOMAIN = { type: 'string', description: 'Material domain: Surface, DeferredDecal, LightFunction, Volume, PostProcess or UI (a widget, brush or font material). The Details panel label (User Interface) and the MD_ name work too.' };
|
|
17
|
-
export const BLEND_MODE = { type: 'string', description: 'Blend mode, such as Opaque, Masked, Translucent, Additive, Modulate or AlphaComposite. The Details panel label and the BLEND_ name work too.' };
|
|
18
|
-
export const SHADING_MODEL = { type: 'string', description: 'Shading model, such as DefaultLit, Unlit, Subsurface, ClearCoat or TwoSidedFoliage. The Details panel label and the MSM_ name work too.' };
|
|
19
|
-
export const arr = (desc) => ({ type: 'array', items: { type: 'string' }, description: desc });
|
|
20
|
-
export const arrObj = (desc) => ({ type: 'array', items: { type: 'object', 'x-unreal-reflection-boundary': true }, description: desc });
|
|
21
|
-
export const refObj = (desc) => ({ type: 'object', 'x-unreal-reflection-boundary': true, description: desc });
|
|
22
|
-
export const boundedLimit = (maxPageSize, defaultPageSize) => ({
|
|
23
|
-
type: 'number', minimum: 1, maximum: maxPageSize, default: defaultPageSize,
|
|
24
|
-
description: `Page size (1-${maxPageSize}, default ${defaultPageSize}).`
|
|
25
|
-
});
|
|
26
|
-
export const boundedPagination = (maxPageSize, defaultPageSize) => ({
|
|
27
|
-
type: 'object',
|
|
28
|
-
properties: {
|
|
29
|
-
limit: boundedLimit(maxPageSize, defaultPageSize),
|
|
30
|
-
offset: { type: 'number', minimum: 0, description: 'Zero-based offset into the full result set.' }
|
|
31
|
-
},
|
|
32
|
-
additionalProperties: false,
|
|
33
|
-
description: 'Nested pagination envelope. Top-level limit/offset take precedence when both are supplied.'
|
|
34
|
-
});
|
|
35
|
-
export const READ = { effect: 'read', idempotency: 'idempotent', longRunning: false, safeToRetry: true };
|
|
36
|
-
export const WRITE = { effect: 'write', idempotency: 'idempotent', longRunning: false, safeToRetry: true };
|
|
37
|
-
export const DESTRUCTIVE = { effect: 'destructive', idempotency: 'idempotent', longRunning: true, safeToRetry: false };
|
|
38
|
-
export const NON_IDEMPOTENT = { effect: 'write', idempotency: 'non-idempotent', longRunning: false, safeToRetry: false };
|
|
39
|
-
export const READ_POLICY = { requiredScope: 'read', consent: 'none', dataAccess: 'project-read' };
|
|
40
|
-
export const WRITE_POLICY = { requiredScope: 'write', consent: 'explicit', dataAccess: 'project-write' };
|
|
41
|
-
export const DESTRUCTIVE_POLICY = { requiredScope: 'destructive', consent: 'elevated', dataAccess: 'project-write' };
|
|
42
|
-
export const LOW = { latency: 'instant', resources: 'low' };
|
|
43
|
-
export const MEDIUM = { latency: 'interactive', resources: 'medium' };
|
|
44
|
-
export const HIGH = { latency: 'long-running', resources: 'high' };
|
|
45
|
-
const DEFAULT_AVAILABILITY = {
|
|
46
|
-
requiredPlugins: ['EditorScriptingUtilities'],
|
|
47
|
-
editorStates: ['edit']
|
|
48
|
-
};
|
|
49
|
-
export function ex(title, input, output) {
|
|
50
|
-
return { title, input, output };
|
|
51
|
-
}
|
|
52
|
-
const FAMILY_NAMES = { asset: 'lifecycle', material: 'authoring', texture: 'procedural', struct: 'struct-authoring', datatable: 'datatable', enum: 'enum' };
|
|
53
|
-
export function r(action, family, summary, input, output, behavior, policy, cost, options) {
|
|
54
|
-
const plugins = options.requiredPlugins
|
|
55
|
-
? [...new Set([...DEFAULT_AVAILABILITY.requiredPlugins, ...options.requiredPlugins])]
|
|
56
|
-
: DEFAULT_AVAILABILITY.requiredPlugins;
|
|
57
|
-
return {
|
|
58
|
-
action, family, summary, input, output, behavior, policy, cost,
|
|
59
|
-
aliases: options.aliases ?? [],
|
|
60
|
-
topics: options.topics ?? [],
|
|
61
|
-
dispatchAction: options.dispatchAction ?? action,
|
|
62
|
-
examples: options.examples,
|
|
63
|
-
whenToUse: options.whenToUse ?? [],
|
|
64
|
-
whenNotToUse: options.whenNotToUse ?? [],
|
|
65
|
-
availability: { ...DEFAULT_AVAILABILITY, requiredPlugins: plugins }
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
export function toSource(spec) {
|
|
69
|
-
const id = `${spec.family}.${spec.action}`;
|
|
70
|
-
return {
|
|
71
|
-
id,
|
|
72
|
-
aliases: spec.aliases,
|
|
73
|
-
legacyIds: [{ tool: 'manage_asset', action: spec.action }],
|
|
74
|
-
discovery: {
|
|
75
|
-
domain: spec.family,
|
|
76
|
-
family: FAMILY_NAMES[spec.family],
|
|
77
|
-
topics: [spec.action, ...spec.topics],
|
|
78
|
-
summary: spec.summary,
|
|
79
|
-
whenToUse: [...(spec.whenToUse ?? [])],
|
|
80
|
-
whenNotToUse: [...(spec.whenNotToUse ?? [])]
|
|
81
|
-
},
|
|
82
|
-
schemas: { input: spec.input, output: spec.output },
|
|
83
|
-
examples: spec.examples,
|
|
84
|
-
availability: spec.availability,
|
|
85
|
-
behavior: spec.behavior,
|
|
86
|
-
policy: spec.policy,
|
|
87
|
-
cost: spec.cost,
|
|
88
|
-
routing: { parentTool: 'manage_asset', dispatchAction: spec.dispatchAction }
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=builder.js.map
|
|
@@ -1,314 +0,0 @@
|
|
|
1
|
-
import { arr, arrObj, bool, boundedLimit, ex, HIGH, LOW, MEDIUM, num, READ, READ_POLICY, r, str, WRITE_POLICY } from './builder.js';
|
|
2
|
-
import { OUTPUT_HEADER, schema } from '../shared/record-presets.js';
|
|
3
|
-
const MIGRATE_BEHAVIOR = {
|
|
4
|
-
effect: 'write', idempotency: 'idempotent', longRunning: true,
|
|
5
|
-
safeToRetry: true
|
|
6
|
-
};
|
|
7
|
-
const SOURCE_ROOTS = 'engineTemplates | engineFeaturePacks | engineContent | enginePlugins | megascansLibrary | fabLibrary | projectContent | projectPlugins';
|
|
8
|
-
const SOURCE_ROOT_PARAM = str(`Content source root token. One of: ${SOURCE_ROOTS}. A filesystem path is never accepted here — the token is resolved plugin-side, so no directory outside these roots is reachable. megascansLibrary probes both the shell Documents folder and the profile Documents folder (OneDrive redirects the first) and honours MCP_MEGASCANS_LIBRARY_DIR; fabLibrary reads the Fab plugin's own UFabSettings.CacheDirectoryPath and honours MCP_FAB_LIBRARY_DIR. The Fab plugin owns its own sign-in and downloading — these roots only read what it already placed on disk.`);
|
|
9
|
-
export const CONTENT_SOURCE_RECORDS = [
|
|
10
|
-
r('list_content_sources', 'asset', 'Enumerate reusable content already installed on this machine: engine templates (vehicle, first person, ...), engine and plugin content, and Quixel Bridge / Fab packs already downloaded by those plugins. Call this before authoring assets from scratch — a production-grade vehicle, track kit or Megascans surface is usually already on disk. Feed a returned sourceRoot + sourceId straight into asset.migrate_assets. Results are paginated (default 50): an unfiltered sweep finds several hundred sources because every engine plugin that ships content counts, so narrow with sourceRoot or filter rather than paging through all of them.', schema({
|
|
11
|
-
sourceRoot: str(`Restrict the listing to one root. One of: ${SOURCE_ROOTS}. Omit to list every root.`),
|
|
12
|
-
filter: str('Substring filter. Listing assets: a case-insensitive match on the asset name. Listing content sources: a case-sensitive match on the source id and, for plugins, the category.'),
|
|
13
|
-
includePackageCounts: bool('Include packageCount per source. Costs a recursive file scan per returned entry, so leave off for a broad sweep and turn on once the candidate list is short.'),
|
|
14
|
-
limit: boundedLimit(500, 50),
|
|
15
|
-
offset: num('Zero-based offset into the full result set.')
|
|
16
|
-
}, []), schema({
|
|
17
|
-
success: bool('Operation succeeded.'),
|
|
18
|
-
sources: arrObj('Discovered sources. Each entry carries sourceRoot, sourceId, kind (template | featurePack | megascansPack | plugin | contentFolder), hasContentFolder, migratable, and packageCount when requested.'),
|
|
19
|
-
sourceCount: num('Sources on this page.'),
|
|
20
|
-
totalCount: num('Total matched sources before pagination.'),
|
|
21
|
-
limit: num('Applied page size.'),
|
|
22
|
-
offset: num('Applied zero-based offset.'),
|
|
23
|
-
hasMore: bool('True when more sources exist beyond this page.'),
|
|
24
|
-
nextOffset: num('Offset for the next page, or -1 on the last page.'),
|
|
25
|
-
rootDirectories: { type: 'object', 'x-unreal-reflection-boundary': true, description: 'Absolute directory each root token resolved to, so an operator can confirm where the Bridge library was found.' },
|
|
26
|
-
missingRoots: arr('Root tokens whose directory does not exist on this machine.')
|
|
27
|
-
}, ['success']), READ, READ_POLICY, MEDIUM, { dispatchAction: 'list_content_sources',
|
|
28
|
-
examples: [
|
|
29
|
-
ex('Find the installed vehicle template', { sourceRoot: 'engineTemplates', filter: 'Vehicle' }, { success: true, sourceCount: 1 }),
|
|
30
|
-
ex('List downloaded Quixel/Fab packs with counts', { sourceRoot: 'megascansLibrary', includePackageCounts: true }, { success: true })
|
|
31
|
-
] }),
|
|
32
|
-
r('list_fab_downloads', 'asset', 'Report what the Fab plugin has already downloaded to this machine, with the cache directory it used. Pair with list_content_sources(sourceRoot="fabLibrary") and asset.migrate_assets to bring a downloaded pack into the project. This reads local state only: the archives Fab has finished fetching into its cache. Finding a listing is search_fab_listings and adding one is asset.import_marketplace_asset; a download that is still running is not listed until it ends (the add\'s import status shows its progress), and a unreal-engine pack is installed by Fab straight into the project, so it never appears here.', schema({}, []), schema({
|
|
33
|
-
success: bool('Operation succeeded.'),
|
|
34
|
-
downloads: arrObj('Cached Fab downloads. Each entry carries assetId and cachedFile.'),
|
|
35
|
-
downloadCount: num('Number of cached downloads.'),
|
|
36
|
-
cacheDirectory: str('Directory the Fab plugin caches downloads in.'),
|
|
37
|
-
cacheDirectoryExists: bool('False when nothing has been downloaded yet.'),
|
|
38
|
-
fabModuleAvailable: bool('True when the plugin was built against the Fab module and read the cache through its own API rather than scanning the directory.'),
|
|
39
|
-
note: str('Guidance on what to do next given the current state.')
|
|
40
|
-
}, ['success']), READ, READ_POLICY, LOW, { dispatchAction: 'list_fab_downloads',
|
|
41
|
-
whenToUse: ['It must be known which Fab packs are already downloaded to this machine and where they are cached.'],
|
|
42
|
-
whenNotToUse: ['A downloaded pack must be copied into the project (use asset.maintain_content with maintenance=migrate).'],
|
|
43
|
-
examples: [ex('Check for downloaded Fab content', {}, { success: true, downloadCount: 0 })] }),
|
|
44
|
-
r('list_fab_library', 'asset', 'List your Fab "My Library" entries that the Fab plugin has synced into the editor\'s data storage (TEDS). This is the searchable inventory of what your Fab account owns — distinct from list_fab_downloads, which only reports packs already downloaded to disk. Each row carries the listing AssetId, so a row can be handed straight to add_fab_asset_to_project instead of being a name you have to search for again. A table with no rows has never been synced, so this runs Fab\'s own sync itself (the Fab.TEDS.MyFolderIntegration console command, a thousand rows a page) and waits for rows, up to about 12 seconds and until their count has held still for a moment: syncTriggered and syncWaitedSeconds say that it happened. The remaining pages keep loading in the background, so a very large library may need a second call. A table that already holds rows is read as it is, because the sync first removes every row; to refresh one, run Fab.TEDS.MyFolderIntegration through control_editor.console_command. When no rows arrive the account\'s library is empty or the Fab tab is signed out: Fab.Login opens Epic\'s account portal, and no credential ever passes through this tool. A synced library is mostly engine versions and plugins carrying Source "uem", so filter for "fab" to see actual content. Columns are resolved by path, and the data storage is reached through the modular-features registry, so this never links the Fab module and keeps working when Fab changes its schema.', schema({
|
|
45
|
-
columnTypes: arr('Column struct paths to read, for example "/Script/Fab.FabObjectNameColumn". Defaults to the name column plus "/Script/Fab.FabObjectColumn", which carries AssetId, ListingType, Seller and Source. Selecting a column is also the row filter, so naming one Fab does not write for every row will hide rows. Override this when a Fab update renames or adds columns; unresolved paths are reported rather than failing the call.'),
|
|
46
|
-
filter: str('Case-sensitive substring matched against each serialized row. Use "fab" to drop the legacy "uem" engine and plugin entries that otherwise fill the row limit.'),
|
|
47
|
-
limit: { type: 'number', default: 200, minimum: 1, maximum: 1000, description: 'Maximum rows to return, clamped plugin-side.' }
|
|
48
|
-
}, []), schema({
|
|
49
|
-
success: bool('Operation succeeded.'),
|
|
50
|
-
entries: arrObj('Library rows. Each entry maps column struct name to that column\'s properties, read by reflection. FabObjectColumn.AssetId is the listing id add_fab_asset_to_project takes.'),
|
|
51
|
-
entryCount: num('Rows returned.'),
|
|
52
|
-
unresolvedColumnTypes: arr('Requested column paths that do not exist in this build — usually a Fab schema change.'),
|
|
53
|
-
syncTriggered: bool('True when the table held no rows and Fab\'s library sync was run for this call.'),
|
|
54
|
-
syncWaitedSeconds: num('How long this call waited for rows after starting the sync. Present only when the sync ran.'),
|
|
55
|
-
syncSkipped: str('Why the sync was not run on an empty table: this editor registers no Fab sync command. Present only then.'),
|
|
56
|
-
note: str('What the read found and what to do next: refresh the table, sign in, or call again for later pages.')
|
|
57
|
-
}, ['success']), READ, READ_POLICY, MEDIUM, { dispatchAction: 'list_fab_library',
|
|
58
|
-
whenToUse: ['The Fab listings the signed-in account owns must be listed, each with an id for adding to the project (an empty table is synced by the call itself).'],
|
|
59
|
-
whenNotToUse: ['A listing from the library is ready to add to the project (use asset.import_marketplace_asset with marketplace=fab_listing).'],
|
|
60
|
-
examples: [ex('List the synced Fab library, skipping legacy engine entries', { limit: 50, filter: 'fab' }, { success: true, entryCount: 0 })] }),
|
|
61
|
-
r('download_fab_asset', 'asset', 'Download a Fab asset through the Fab plugin\'s own downloader (FFabDownloadRequest), so the transfer uses its HTTP/BuildPatchServices path rather than a parallel implementation that would miss its retry handling. IMPORTANT: the signed downloadUrl is NOT minted here — Fab issues it from its authenticated web session and no C++ entry point initiates that, so supply a URL obtained from the Fab tab\'s own flow. Once the pack lands, asset.migrate_assets with sourceRoot "fabLibrary" places it into /Game. Acquires content against the signed-in account, so it is an explicit-consent write.', schema({
|
|
62
|
-
assetId: str('Fab asset id, used as the cache key.'),
|
|
63
|
-
downloadUrl: str('Signed https download URL issued by Fab. Short-lived: a stale URL fails with DOWNLOAD_FAILED.'),
|
|
64
|
-
destinationDirectory: str('Where the pack lands. Defaults to the Fab library cache directory, which list_fab_downloads and the fabLibrary source root both read.'),
|
|
65
|
-
downloadType: { type: 'string', default: 'http', description: 'Transfer mode: "http" or "buildpatch". BuildPatchServices is for Marketplace-era packs; pointing it at a plain URL stalls rather than failing, so it must be opted into.' }
|
|
66
|
-
}, ['assetId', 'downloadUrl']), schema({
|
|
67
|
-
success: bool('True when the transfer completed.'),
|
|
68
|
-
downloadSucceeded: bool('Downloader-reported success.'),
|
|
69
|
-
servedFromCache: bool('True when the pack was already cached and no transfer occurred.'),
|
|
70
|
-
completedBytes: num('Bytes transferred.'),
|
|
71
|
-
totalBytes: num('Expected total bytes.'),
|
|
72
|
-
destinationDirectory: str('Directory the pack landed in.'),
|
|
73
|
-
downloadedFiles: arr('Files the downloader reported writing.'),
|
|
74
|
-
note: str('How to place the downloaded pack into /Game.')
|
|
75
|
-
}, ['success']), MIGRATE_BEHAVIOR, WRITE_POLICY, HIGH, { dispatchAction: 'download_fab_asset',
|
|
76
|
-
whenToUse: ['A signed Fab download URL is in hand and the pack must be fetched to disk; it lands in the Fab cache, not in /Game.'],
|
|
77
|
-
whenNotToUse: [
|
|
78
|
-
'Only a listing id is known, with no signed URL (use marketplace=fab_listing, which adds the listing directly).',
|
|
79
|
-
'Downloads already on disk must be listed, not fetched again (use asset.query_marketplace).',
|
|
80
|
-
],
|
|
81
|
-
examples: [ex('Download a pack from a signed URL', { assetId: 'abc123', downloadUrl: 'https://example.invalid/signed' }, { success: false })] }),
|
|
82
|
-
r('get_fab_listing_details', 'asset', 'Describe one Fab listing: what it is (description, tags, publisher, category, rating, licenses, price, publication date and a preview image) and what adding it would do (the format it imports, the build or file it fetches, its size, whether a build exists for the running engine, and why it would refuse), so a caller can choose between search hits and know before adding. Opens the Fab tab when it is closed and waits up to 15 seconds for its page to load (PAGE_NOT_READY after that) instead of failing on the first call; the account must be signed in there. It reads the listing and its asset-formats resources and claims nothing. canAddToProject says whether add_fab_asset_to_project can import the listing, and when it cannot, addBlockedCode and addBlockedReason say why: COMPLETE_PROJECT (a whole project cannot be added to an existing one: create it as a new project from Fab, then migrate its content), METAHUMAN_FORMAT (Fab hands a MetaHuman listing to a workflow the add does not drive) or NO_IMPORTABLE_FORMAT (it ships none of unreal-engine, gltf, glb, fbx, obj or usdz). Megascans listings are importable like any other, because the add claims the listing itself. addFormat is the format the add would import (unreal-engine first, else gltf, glb, fbx, obj, usdz). For a unreal-engine pack, versionName, pickedEngineVersion and engineMatch name the build it would take (the highest at or below the running engine, else the lowest above it), engineVersions lists every engine the pack declares and supportsRunningEngine says whether the running engine is one of them. For a source format, downloadFile, quality and qualities (Megascans offers raw, high, mid and low) name the file. downloadBytes is the size of exactly the file or build the add would fetch and is left out, with downloadSizeKnown false, when Fab publishes none, which is every pack: unknown is never reported as zero. formats lists every format with its files and their sizes. isFree is derived from price, because the listing\'s own isFree flag disagrees with it and is not reported. addWarnings lists what would surprise the caller: a pack with no build for the running engine, and a mesh file so large that the add refuses it until combineMeshes is chosen. The preview comes back as imageBase64, promoted into a real MCP image block rather than a URL, and is omitted rather than truncated past the reply cap. When a field cannot be read the response names the keys it did see, so a Fab schema change reports itself.', schema({ listingId: str('Fab listing uid. Restricted to [A-Za-z0-9_-], 64 characters max. fab_import_status also takes it, in place of operationId, to report the newest import of that listing.') }, ['listingId']), schema({
|
|
83
|
-
success: bool('Listing was described.'),
|
|
84
|
-
details: OUTPUT_HEADER.details,
|
|
85
|
-
listingId: str('Listing that was described.'),
|
|
86
|
-
title: str('Listing title.'),
|
|
87
|
-
listingType: str('Content kind, e.g. 3d-model or material.'),
|
|
88
|
-
description: str('Listing prose, truncated to 4000 characters.'),
|
|
89
|
-
seller: str('Publisher name.'),
|
|
90
|
-
category: str('Category name.'),
|
|
91
|
-
categoryPath: str('Category path, slash-joined, when Fab publishes one.'),
|
|
92
|
-
averageRating: num('Average rating as Fab reports it. Absent when the listing has none.'),
|
|
93
|
-
ratingCount: num('How many ratings the average rests on. Absent when Fab publishes no count.'),
|
|
94
|
-
licenseNames: arr('Names of the licenses the listing is offered under.'),
|
|
95
|
-
isCc0: bool('True when a license of the listing is CC0 (public domain, no credit needed), read from the license names: Fab\'s own flag is also set on CC-BY licenses. Absent when the listing publishes no licenses.'),
|
|
96
|
-
attributionRequired: bool('True when a license of the listing is Creative Commons Attribution (CC BY, CC BY-SA ...): an asset used under it needs a credit line in the project naming its title, author, source and license, and saying what was changed. Absent when the listing publishes no licenses.'),
|
|
97
|
-
price: num('Starting price in Fab\'s own units; 0 is free. Absent when the price field has a shape this does not know (see priceShape).'),
|
|
98
|
-
currency: str('Currency code of price, when Fab publishes one.'),
|
|
99
|
-
isFree: bool('True when price is 0. Derived from price: the listing\'s own isFree flag disagrees with it and is never reported. When the price cannot be read this falls back to that flag and priceShape says so.'),
|
|
100
|
-
priceShape: str('Key names of a price field this does not recognise, so a Fab change reports itself. Present only then.'),
|
|
101
|
-
publishedAt: str('When the listing was published, as Fab states it.'),
|
|
102
|
-
tags: arr('Listing tags.'),
|
|
103
|
-
imageBase64: str('Preview image bytes, base64. Promoted to an MCP image content block.'),
|
|
104
|
-
mimeType: str('Preview image MIME type.'),
|
|
105
|
-
hasImage: bool('False when no preview could be inlined.'),
|
|
106
|
-
imageOmitted: str('Present when the preview was skipped for exceeding the reply cap.'),
|
|
107
|
-
descriptionKeys: arr('Listing keys observed when no description field matched.'),
|
|
108
|
-
thumbnailShape: arr('Thumbnail keys observed when no image URL matched.'),
|
|
109
|
-
assetFormats: arr('Asset format codes this listing ships, e.g. unreal-engine, fbx, gltf.'),
|
|
110
|
-
hasUnrealBuild: bool('True when the listing ships a packaged unreal-engine build, which Fab imports through its pack workflow.'),
|
|
111
|
-
formats: arrObj('Every format the listing ships: code, and files each with name, bytes (left out when Fab publishes no size) and quality when the name carries a tier.'),
|
|
112
|
-
addFormat: str('The format add_fab_asset_to_project would import: unreal-engine, else gltf, glb, fbx, obj or usdz. Absent when none is importable.'),
|
|
113
|
-
distributionMethod: str('How Fab distributes a unreal-engine listing: asset_pack (content for a project) or complete_project (a whole project). Present only for a listing that ships unreal-engine.'),
|
|
114
|
-
runningEngine: str('The editor\'s engine version, major.minor, that supportsRunningEngine and engineMatch are judged against.'),
|
|
115
|
-
engineVersions: arr('Every engine version a unreal-engine pack declares, lowest first, as Fab spells them (UE_5.4).'),
|
|
116
|
-
supportsRunningEngine: bool('True when a build of the pack declares exactly the running engine. Present only for a unreal-engine listing that publishes versions.'),
|
|
117
|
-
engineMatch: str('exact, older or newer: the build the add would take against the running engine. older is the newest build for an earlier engine, newer the oldest build for a later one. Absent when no version declares an engine.'),
|
|
118
|
-
versionName: str('Name of the pack build the add would take.'),
|
|
119
|
-
pickedEngineVersion: str('The engine version that build declares, for example UE_5.4.'),
|
|
120
|
-
downloadFile: str('The file of a source format the add would download.'),
|
|
121
|
-
quality: str('Quality tier of that file (raw, high, mid or low), when the listing publishes tiers.'),
|
|
122
|
-
qualities: arr('The quality tiers the source format offers, best first. add_fab_asset_to_project takes the highest of high, mid, low, raw that exists.'),
|
|
123
|
-
downloadBytes: num('Size in bytes of exactly the file or build the add would fetch. Absent when Fab publishes no size, which is every pack: unknown, never zero.'),
|
|
124
|
-
downloadSizeKnown: bool('False when downloadBytes is absent because Fab publishes no size for what the add would fetch.'),
|
|
125
|
-
canAddToProject: bool('True when add_fab_asset_to_project can import this listing: it ships unreal-engine as an asset pack, or gltf, glb, fbx, obj or usdz. False for a complete project, a MetaHuman listing and a listing with no importable format (addBlockedCode says which). Megascans listings are importable: the add claims the listing itself. Check this rather than hasUnrealBuild before adding.'),
|
|
126
|
-
addBlockedCode: str('Present when canAddToProject is false: COMPLETE_PROJECT, METAHUMAN_FORMAT or NO_IMPORTABLE_FORMAT, the code the add would answer with.'),
|
|
127
|
-
addBlockedReason: str('Present when canAddToProject is false: why this listing cannot be imported.'),
|
|
128
|
-
addWarnings: arr('What would surprise the caller about adding this listing: a pack with no build for the running engine, or a mesh file large enough that the add refuses it until combineMeshes is chosen.')
|
|
129
|
-
}, ['success']), READ, READ_POLICY, MEDIUM, { dispatchAction: 'get_fab_listing_details',
|
|
130
|
-
whenToUse: ['A Fab search hit must be judged before adding it: description, seller, rating, price, file formats, sizes, and whether the project can import it.'],
|
|
131
|
-
whenNotToUse: ['The listing is chosen and must be added to the project (use asset.import_marketplace_asset with marketplace=fab_listing).'],
|
|
132
|
-
examples: [ex('Describe a listing before adding it', { listingId: 'ac2818b3-7d35-4cf5-a1af-cbf8ff5c61c1' }, { success: true, hasImage: true, canAddToProject: true })] }),
|
|
133
|
-
r('search_fab_listings', 'asset', 'Search the whole public Fab catalog through the signed-in Fab tab and get listing ids you can pass straight to add_fab_asset_to_project. Opens the Fab tab when it is closed and waits up to 15 seconds for its page to load (PAGE_NOT_READY after that) instead of failing on the first call; the account must be signed in there. seller narrows the search to one publisher by name (Quixel Megascans for the Megascans library) and listingType to one content kind (3d-model, material), so a Megascans surface is one call rather than a page of unrelated uploads. Every hit says who published it, which category it is in, how it is rated, what it costs and which formats it ships, as far as the search itself returned them; a fact the row did not carry is left out, never filled in, and nothing more is fetched per row. isFree is derived from price, because the listing\'s own isFree flag disagrees with it and is not reported. A hit is a candidate, not a promise: no channel filter is applied, because pinning one hid the Quixel/Megascans library entirely. Whether a listing can be imported is resolved at add time, which reports NO_IMPORTABLE_FORMAT only when the listing ships none of unreal-engine, gltf, glb, fbx, obj or usdz; call get_fab_listing_details first for canAddToProject, the engine build and the download size up front. Results carry ids and labels only; no thumbnail, download URL or account field leaves the page.', schema({
|
|
134
|
-
query: str('Free-text search. At most 128 characters, and no quotes, backslashes or control characters.'),
|
|
135
|
-
seller: str('Only listings published by this seller, by name, for example Quixel Megascans. At most 128 characters, and no quotes, backslashes or control characters. Omit for every publisher.'),
|
|
136
|
-
listingType: str('Only this content kind, as a row\'s listingType names it, for example 3d-model or material. One token of [A-Za-z0-9_-], at most 40 characters. Omit for every kind.'),
|
|
137
|
-
freeOnly: { type: 'boolean', default: false, description: 'Restrict to free listings.' },
|
|
138
|
-
limit: { type: 'number', minimum: 1, maximum: 50, default: 12, description: 'Maximum listings to return (1-50).' }
|
|
139
|
-
}, []), schema({
|
|
140
|
-
success: bool('Search completed.'),
|
|
141
|
-
listings: arrObj('Matched listings: listingId, title, listingType, isFree (derived from price), tags, and, when the row carried them, seller, category, averageRating, ratingCount, price, currency, isCc0, publishedAt and formats (the format codes it ships). unresolvedPriceShape names the price field\'s keys when the price could not be read. The listing\'s own isFree flag is not reported.'),
|
|
142
|
-
listingCount: num('Listings returned.'),
|
|
143
|
-
query: str('Query that was run.'),
|
|
144
|
-
seller: str('The seller filter that was applied. Present only when one was given.'),
|
|
145
|
-
listingType: str('The content-kind filter that was applied. Present only when one was given.'),
|
|
146
|
-
note: str('How to use a returned listingId, and what listingType does and does not guarantee.')
|
|
147
|
-
}, ['success']), READ, READ_POLICY, MEDIUM, { dispatchAction: 'search_fab_listings',
|
|
148
|
-
whenToUse: ['Content must be found on Fab by keyword, optionally from one publisher or of one kind, or free listings only, to get listing ids and to tell a Megascans hit from a random upload.'],
|
|
149
|
-
whenNotToUse: ['Content already installed in an engine template, plugin or Bridge folder is wanted (use asset.list with kind=content_sources).'],
|
|
150
|
-
examples: [
|
|
151
|
-
ex('Find free Unreal rocks on Fab', { query: 'rock', freeOnly: true, limit: 5 }, { success: true, listingCount: 0 }),
|
|
152
|
-
ex('Find Megascans materials', { query: 'concrete', seller: 'Quixel Megascans', listingType: 'material', limit: 5 }, { success: true, listingCount: 0 })
|
|
153
|
-
] }),
|
|
154
|
-
r('add_fab_asset_to_project', 'asset', 'Start importing one Fab listing into this project through the signed-in Fab tab and return as soon as Fab accepts the download. The tab is opened when it is closed and the page is waited for up to 15 seconds (PAGE_NOT_READY after that); the account must be signed in there. The content does NOT exist yet when this replies: downloading and importing take minutes and hold the editor, far longer than a client waits, so poll asset.query_marketplace with lookup=fab_import_status and the returned operationId until phase is done or failed (marketplace=fab_cancel stops one that is queued or downloading). Never call this again to see progress: a repeat for a listing that is queued or running only hands back the same operation (alreadyRunning), and a repeat that asks for a different quality, combineMeshes, destinationPath or assetName is refused with ADD_ALREADY_RUNNING, naming that operation, since it would ignore them. One import runs at a time, so an add made while another runs is queued (phase queued, queuePosition) and starts by itself, first in first out, and the status read lists the queue; only a full queue (8 waiting) is refused with QUEUE_FULL, which names the import at its head with its phase, bytes and elapsed time and returns the status call as its nextCall. A queued add is not put to Fab until its turn, so a refusal it would have got at once (NO_IMPORTABLE_FORMAT, COMPLETE_PROJECT, LARGE_SCENE_FILE) arrives later as the status read\'s failureCode. It claims the listing first: Fab answers 404 for a download the account does not own, so this posts add-to-library exactly as the Fab UI does when you press Add to Project — a real change to your Fab library, free to claim and harmless to repeat on a listing you already own. It claims each free license of the listing in turn until Fab accepts one. Then it picks the format the Fab importer accepts (unreal-engine, else gltf, glb, fbx, obj or usdz) and hands over the download. A unreal-engine pack that declares no build for the running engine imports the highest build at or below it, else the lowest above it, and engineMatch (older or newer) and engineVersion say which. A complete project (COMPLETE_PROJECT) cannot be added to an existing project: it is refused after the claim, so it is in your library to create a project from, and the reply says to create it as a new project from Fab and migrate its content. A MetaHuman listing (METAHUMAN_FORMAT) is refused before anything is claimed, because Fab hands it to a workflow this add does not drive. A listing Fab will not give an address for fails with NO_DOWNLOAD_URL naming the step that refused (license: no offer to claim; claim: Fab refused the account; download-info: Fab answered no address), Fab\'s HTTP status and Fab\'s own words, so the cause is in the reply rather than the editor log; the reply names the format, the file and its quality tier, and the file size when Fab publishes one. A Megascans listing publishes one file per quality tier (raw, high, mid, low); quality takes exactly the tier named, and a tier the listing does not publish is refused with QUALITY_NOT_AVAILABLE, naming the tiers it does, before anything downloads. Without quality it takes the best game-ready tier: high, else mid, low, raw. A listing that publishes no tiers, and a unreal-engine pack, ignore quality. Supply only a listing id; the signed URL, EOS token and session cookie stay inside the page and reach no response or log. Fab chooses the destination folder (a Megascans add lands under a machine-named tree such as /Game/Fab/Megascans/3D/<name>_<id>/High/<id>_tier_1), and the status read reports importedRoot once the import is done, by which time the packages Fab left unsaved in memory have been saved, and they are saved again 15 and 60 seconds after the import ends for anything the engine marks dirty late; the status read\'s saved, savedCount and unsavedPackages say how it went and name a package that could not be saved. destinationPath moves what the import created in its own folders to a /Game folder you name, keeping the layout beneath it (StaticMeshes, Materials, Textures), and assetName names the import\'s one mesh SM_<assetName> (SK_ for a skeletal mesh) with its material instance and textures following (MI_<assetName>, T_<assetName>_<suffix>); a surface has no mesh and is named by its one material instance. It runs the move and rename that asset.move runs, so references and settings follow and the redirectors left behind are fixed, and it is all or nothing: a name already taken stops it before anything moves. It never touches the shared master materials, material functions and textures in /Game/Fab/Materials, /Game/Fab/MaterialFunctions and /Game/Fab/Textures, and a unreal-engine pack, which arrives outside /Game/Fab, stays where Fab put it. The status read\'s relocated, movedCount and relocationNote say what happened. Fab\'s importer merges every mesh in a source file (fbx, obj, gltf, glb, usdz) into ONE static mesh, whatever the project\'s import settings say, and a file that is really a scene became a single unplaceable mesh that needed gigabytes to build while the editor stayed held for many minutes. So a single mesh file of 50 MB or more (Megascans and unreal-engine packs are not affected) is refused with LARGE_SCENE_FILE, before anything downloads, until combineMeshes says which way to import it.', schema({
|
|
155
|
-
listingId: str('Fab listing uid, as it appears in a fab.com/listings/<uid> URL. Restricted to [A-Za-z0-9_-], 64 characters max, because it is used to build an API path.'),
|
|
156
|
-
destinationPath: str('A /Game folder to move what the import created to, for example /Game/Props/Barriers. The layout beneath the import\'s own folder (StaticMeshes, Materials, Textures) is kept under it. Omit to leave the import where Fab put it. The shared master materials in /Game/Fab/Materials, MaterialFunctions and Textures never move, and a unreal-engine pack is left where Fab put it.'),
|
|
157
|
-
assetName: str('The name for the import\'s one mesh: SM_<assetName>, or SK_ for a skeletal mesh, with its material instance and textures following (MI_<assetName>, T_<assetName>_<suffix>); a surface with no mesh is named by its one material instance. Letters, digits and underscores, not starting with a digit, 64 at most, for example ConcreteBarrier. Without destinationPath the assets are renamed where they are. Not applied when the import holds no single mesh or material instance to name; relocationNote says so.'),
|
|
158
|
-
quality: { type: 'string', enum: ['raw', 'high', 'mid', 'low'], description: 'Quality tier of the file to fetch, for a listing that publishes one file per tier, as Megascans does: raw (the unprocessed scan, hundreds of MB), high, mid or low. Omit to take the best game-ready tier: high, else mid, low, raw. A tier the listing does not publish is refused with QUALITY_NOT_AVAILABLE, naming the tiers it does. Ignored for a listing that publishes no tiers and for a unreal-engine pack. The reply\'s quality, fileName and downloadBytes say which file was chosen.' },
|
|
159
|
-
combineMeshes: bool('Only for source mesh formats (fbx, obj, gltf, glb, usdz) that Fab imports itself; ignored for Megascans and unreal-engine packs. Omit to leave Fab\'s behaviour alone: every mesh of a file is merged into ONE static mesh. false imports each mesh as its own asset: the adapter switches off Interchange\'s mesh combining on the pipelines Fab generated for this import, and the status read\'s combineMeshesApplied says whether that landed in time (COMBINE_UNSUPPORTED refuses the call when this engine gives no way to). true accepts the single merged mesh explicitly, which a scene-sized file (one mesh file of 50 MB or more) requires.')
|
|
160
|
-
}, ['listingId']), schema({
|
|
161
|
-
success: bool('True when Fab accepted the download. It does not mean content exists: poll fab_import_status for that.'),
|
|
162
|
-
details: OUTPUT_HEADER.details,
|
|
163
|
-
listingId: str('Listing that was requested.'),
|
|
164
|
-
accepted: bool('True when Fab accepted the workflow. Not the same as content existing.'),
|
|
165
|
-
operationId: str('The background import. Pass it to asset.query_marketplace lookup=fab_import_status. On QUEUE_FULL it names the import at the head of the queue instead, and on ADD_ALREADY_RUNNING the open import of this listing.'),
|
|
166
|
-
alreadyRunning: bool('True when this listing was already queued or being imported and this call returned that same operation instead of starting another.'),
|
|
167
|
-
phase: str('queued when another import is running, else downloading right after Fab accepts. For alreadyRunning, the phase the operation was in.'),
|
|
168
|
-
queuePosition: num('1-based place in the queue while phase is queued; absent otherwise.'),
|
|
169
|
-
title: str('The listing title, once Fab has been asked about it (absent while queued).'),
|
|
170
|
-
formatCode: str('Format Fab was asked to import: unreal-engine, gltf, glb, fbx, obj or usdz.'),
|
|
171
|
-
quality: str('Quality tier of the chosen file (raw, high, mid or low) when the listing publishes tiers, as Megascans does: the one asked for in quality, else the best game-ready one. Absent otherwise.'),
|
|
172
|
-
fileName: str('The file Fab downloads. Source formats only: a unreal-engine pack has a version name, not a file.'),
|
|
173
|
-
downloadBytes: num('Size of that file in bytes. Absent when Fab publishes none (a unreal-engine pack): absent means unknown, never zero.'),
|
|
174
|
-
versionName: str('Listing version selected for this engine.'),
|
|
175
|
-
engineExactMatch: bool('False when no build of the pack declares the running engine; engineMatch says which build was taken instead.'),
|
|
176
|
-
engineMatch: str('exact, older or newer: the pack build taken against the running engine. older is the newest build for an earlier engine, newer the oldest build for a later one. Absent for a source format, or when no version declares an engine.'),
|
|
177
|
-
engineVersion: str('The engine version that build declares, for example UE_5.4.'),
|
|
178
|
-
combinesMeshes: bool('True when Fab\'s importer merges every mesh of a file into ONE static mesh for this listing: a source mesh format that is not Megascans. False for Megascans and unreal-engine packs.'),
|
|
179
|
-
note: str('What to do next: poll the status read, do not add again.')
|
|
180
|
-
}, ['success']), { effect: 'write', idempotency: 'idempotent', longRunning: true, safeToRetry: true }, WRITE_POLICY, MEDIUM, { dispatchAction: 'add_fab_asset_to_project',
|
|
181
|
-
whenToUse: ['A Fab listing id is known and its content must be added to the project through the signed-in Fab tab.'],
|
|
182
|
-
whenNotToUse: [
|
|
183
|
-
'The listing must first be found or judged (use asset.query_marketplace).',
|
|
184
|
-
'An import is already running and only its progress is wanted (use asset.query_marketplace with lookup=fab_import_status).',
|
|
185
|
-
'The pack is already downloaded on disk and only needs copying in (use asset.maintain_content with maintenance=migrate).',
|
|
186
|
-
],
|
|
187
|
-
examples: [ex('Add a Fab listing to the project', { listingId: 'ac2818b3-7d35-4cf5-a1af-cbf8ff5c61c1' }, { success: true, accepted: true, operationId: 'fab-3f9a1c2e40', phase: 'downloading' })] }),
|
|
188
|
-
r('get_fab_import_status', 'asset', 'Report a Fab import that asset.import_marketplace_asset (marketplace=fab_listing) started, by operationId (from the add reply) or by listingId (its newest import), together with the queue it is in; give neither to list just the queue. It reads the adapter\'s own record, never Fab\'s page, so it needs no sign-in and answers at once — except while Fab is importing: the import holds the editor for minutes and every call, this one included, then answers EDITOR_BLOCKED. That is the import working, not a failure: retry every 20 to 30 seconds. phase is queued (another import runs first; queuePosition and the queue say how many are ahead, and it starts by itself), resolving (asking Fab for the download), downloading (downloadPercent is the figure on Fab\'s own download notification, for a unreal-engine pack and a source format alike; downloadedBytes of downloadBytes too when Fab\'s download folder shows them, which a pack\'s does not), importing (Fab\'s importer is running; assetsSoFar counts what the asset registry has gained), cancelling (a cancel was accepted; the import ends within a second), done (importedRoot, assetCount and sampleAssetPaths, meshes first) or failed (failureCode, failure, and fabErrors quoting what Fab logged). cancellable says whether a cancel would stop the import right now. Stop polling when finished is true. The editor keeps the last 16 imports of the session and forgets them on restart. Do not call add again to look at progress.', schema({
|
|
189
|
-
operationId: str('Operation id from the add reply. Restricted to [A-Za-z0-9_-], 64 characters max. Give this or listingId, or neither to list the queue.'),
|
|
190
|
-
listingId: str('Fab listing uid, to report the newest import of that listing. Used only when operationId is not given.')
|
|
191
|
-
}, []), schema({
|
|
192
|
-
success: bool('The import was found and reported (or, with no id, the queue was listed). Read phase for how it is going: success does not mean the import worked.'),
|
|
193
|
-
operationId: str('The import reported.'),
|
|
194
|
-
listingId: str('The listing it imports.'),
|
|
195
|
-
phase: str('queued, resolving, downloading, importing, cancelling, done or failed.'),
|
|
196
|
-
finished: bool('True once phase is done or failed; stop polling.'),
|
|
197
|
-
queuePosition: num('1-based place in the queue while phase is queued; absent otherwise.'),
|
|
198
|
-
queue: arrObj('The import that is running, then every add waiting behind it in the order they start: operationId, listingId, title, phase, queuePosition, elapsedSeconds, and downloadedBytes and downloadPercent when known. Absent when nothing is running or queued.'),
|
|
199
|
-
queueLength: num('How many imports are running or queued.'),
|
|
200
|
-
title: str('The listing title, once Fab has been asked about it.'),
|
|
201
|
-
elapsedSeconds: num('Seconds since the add was requested; frozen once the import finished.'),
|
|
202
|
-
formatCode: str('Format Fab was asked to import.'),
|
|
203
|
-
quality: str('Quality tier of the chosen file, when the listing has tiers.'),
|
|
204
|
-
fileName: str('The file Fab downloads (source formats only).'),
|
|
205
|
-
downloadBytes: num('Expected size of that file, when Fab publishes one; unknown, never zero, when absent.'),
|
|
206
|
-
versionName: str('Listing version selected for this engine.'),
|
|
207
|
-
engineExactMatch: bool('False when no build of the pack declares the running engine; engineMatch says which build was taken instead.'),
|
|
208
|
-
engineMatch: str('exact, older or newer: the pack build taken against the running engine.'),
|
|
209
|
-
engineVersion: str('The engine version that build declares, for example UE_5.4.'),
|
|
210
|
-
combinesMeshes: bool('True when Fab\'s importer merges every mesh of a file into ONE static mesh for this listing.'),
|
|
211
|
-
combineMeshesApplied: bool('Present only when the add passed combineMeshes=false for a listing Fab merges meshes for: true once Interchange\'s mesh combining was switched off before it ran, false while that has not happened yet or could not (the import then yields the single merged mesh).'),
|
|
212
|
-
downloadedBytes: num('Bytes fetched so far, when the download folder shows them. Absent when the download cannot be observed (a unreal-engine pack, or a download that has not begun).'),
|
|
213
|
-
downloadPercent: num('0-100, as Fab\'s own download notification shows it, for a unreal-engine pack and a source format alike. Absent when that notification cannot be read: before the download starts, after it ends, or when Fab shows none.'),
|
|
214
|
-
cancellable: bool('Present while the import is not finished: true when a cancel would stop it right now (queued, a unreal-engine pack that is downloading, or an import Interchange is translating); false for a source-format download, which Fab gives no cancel for.'),
|
|
215
|
-
assetsSoFar: num('New assets the asset registry has gained so far.'),
|
|
216
|
-
assetCount: num('New assets the registry gained during the import. Present once finished and any landed.'),
|
|
217
|
-
importedRoot: str('Where the content landed: the folder Fab chose (typically /Game/Fab/... or /Game/<PackName>), or the destinationPath the add asked for once the import was moved there. Present once finished and any landed.'),
|
|
218
|
-
sampleAssetPaths: arr('Up to ten imported asset paths, the static and skeletal meshes first, at their final paths when the add asked for destinationPath or assetName.'),
|
|
219
|
-
relocated: bool('Present when the add asked for destinationPath or assetName: true when assets were moved or renamed.'),
|
|
220
|
-
movedCount: num('Assets moved or renamed by that relocation.'),
|
|
221
|
-
relocationNote: str('What the relocation did not do, and why: a folder or name already taken (nothing moves then), an assetName with no single asset to name, or content left where Fab put it. Absent when everything asked for was done.'),
|
|
222
|
-
saved: bool('Present once the import settled and any assets landed: true when every package the import left dirty was saved, false when some could not be (see unsavedPackages, and the message and note say so in capitals). Fab leaves what it imports unsaved in memory, so a Megascans add would otherwise be lost when the editor closes. The import is saved again 15 and 60 seconds after it ends, because Interchange marks packages dirty after the last asset has appeared; read again before saving by hand.'),
|
|
223
|
-
savedCount: num('Packages that were saved. A unreal-engine pack arrives on disk already and is not dirty, so it counts none.'),
|
|
224
|
-
unsavedPackages: arr('Packages that could not be saved, by name; control_editor save_all writes them once whatever blocked the save is fixed.'),
|
|
225
|
-
failureCode: str('Present when phase is failed: FAB_IMPORT_FAILED (Fab logged that it gave up), IMPORT_TIMED_OUT (nothing appeared before the ceiling), IMPORT_PARTIAL (still streaming at the ceiling; what landed is reported), CANCELLED (cancel_fab_import stopped it; whatever had landed is listed and left unsaved), or the add\'s own refusal code (COMPLETE_PROJECT, METAHUMAN_FORMAT, LARGE_SCENE_FILE, QUALITY_NOT_AVAILABLE, NO_IMPORTABLE_FORMAT, NO_DOWNLOAD_URL).'),
|
|
226
|
-
failure: str('Present when phase is failed: why, in words.'),
|
|
227
|
-
fabErrors: arr('Error lines Fab logged while the import ran, with URLs and anything credential-shaped masked.'),
|
|
228
|
-
note: str('What to do next, given the phase.')
|
|
229
|
-
}, ['success']), READ, READ_POLICY, LOW, { dispatchAction: 'get_fab_import_status',
|
|
230
|
-
whenToUse: ['A Fab add has returned an operationId and it must be known whether the import is downloading, importing, done or failed, and where the content landed.'],
|
|
231
|
-
whenNotToUse: ['The listing has not been added yet (use asset.import_marketplace_asset with marketplace=fab_listing).'],
|
|
232
|
-
examples: [ex('Check on a Fab import', { operationId: 'fab-3f9a1c2e40' }, { success: true, phase: 'downloading', finished: false })] }),
|
|
233
|
-
r('cancel_fab_import', 'asset', 'Stop a Fab import that asset.import_marketplace_asset (marketplace=fab_listing) started, by its operationId. Fab gives three handles and this uses exactly those: an add still waiting in the queue is dropped and never reaches Fab; a unreal-engine pack that is downloading is stopped by pressing the Cancel button on Fab\'s own download notification; an import whose files Interchange is translating is told to cancel its tasks. The download of a source format (fbx, gltf, obj, usdz, Megascans) has no Cancel anywhere in Fab, so it is refused with NOT_CANCELLABLE and the reason, as is an add that is still resolving (seconds, and not interruptible) and an import past its download with no Interchange task to stop; the status read\'s cancellable says beforehand whether a cancel would work. A running import ends as failed with failureCode CANCELLED within a second (phase cancelling until then), with whatever had already landed listed and left unsaved and unmoved, so asset.delete removes it. A call is served only while the editor is free: while Fab builds meshes the editor is held and every call answers EDITOR_BLOCKED, so a cancel has to come before that. A finished import is refused with ALREADY_FINISHED and an unknown id with NOT_FOUND.', schema({
|
|
234
|
-
operationId: str('Operation id from the add reply (or the status read\'s queue). Restricted to [A-Za-z0-9_-], 64 characters max.')
|
|
235
|
-
}, ['operationId']), schema({
|
|
236
|
-
success: bool('True when the cancel was accepted. The import has then stopped (a queued add) or ends within a second.'),
|
|
237
|
-
operationId: str('The import that was cancelled.'),
|
|
238
|
-
cancelled: bool('True when the cancel was accepted.'),
|
|
239
|
-
phase: str('Where the import stood right after: failed for a dropped queued add, cancelling for a running one.'),
|
|
240
|
-
note: str('What was done: which of the three handles was used.')
|
|
241
|
-
}, ['success']), { effect: 'write', idempotency: 'idempotent', longRunning: false, safeToRetry: true }, WRITE_POLICY, LOW, { dispatchAction: 'cancel_fab_import',
|
|
242
|
-
whenToUse: ['A Fab import that is queued, or a unreal-engine pack that is downloading, must be stopped: a wrong listing, or one taking too long.'],
|
|
243
|
-
whenNotToUse: [
|
|
244
|
-
'Only the progress of the import is wanted (use asset.query_marketplace with lookup=fab_import_status).',
|
|
245
|
-
'Assets an import already created must be removed (use asset.delete).',
|
|
246
|
-
],
|
|
247
|
-
examples: [ex('Stop a Fab import', { operationId: 'fab-3f9a1c2e40' }, { success: true, cancelled: true, phase: 'cancelling' })] }),
|
|
248
|
-
r('list_megascans_library', 'asset', 'List the Quixel Bridge / Megascans library index on this machine. This reads the packs a Quixel Bridge install has already downloaded: Bridge writes a plain uassetsData.json next to them, so the inventory is an ordinary local read. Megascans listings that are not downloaded yet are found with search_fab_listings (seller Quixel Megascans) and imported straight from Fab with import_marketplace_asset (marketplace=fab_listing). Pair this with import_megascans_asset to bring a downloaded entry into the project.', schema({ filter: str('Case-sensitive substring matched against each serialized index entry.') }, []), schema({
|
|
249
|
-
success: bool('Operation succeeded.'),
|
|
250
|
-
assets: arrObj('Indexed library entries, verbatim from uassetsData.json.'),
|
|
251
|
-
assetCount: num('Entries returned.'),
|
|
252
|
-
libraryDirectory: str('Resolved Megascans library directory.'),
|
|
253
|
-
indexPath: str('Path of the uassetsData.json index.'),
|
|
254
|
-
indexExists: bool('False when Bridge has never written an index here.'),
|
|
255
|
-
importAvailable: bool('True when this build links the MegascansPlugin module, so import_megascans_asset can run.')
|
|
256
|
-
}, ['success']), READ, READ_POLICY, LOW, { dispatchAction: 'list_megascans_library',
|
|
257
|
-
whenToUse: ['The Megascans packs downloaded by Bridge on this machine must be listed before one is imported.'],
|
|
258
|
-
whenNotToUse: ['A listed pack should be imported into the project (use asset.import_marketplace_asset with marketplace=megascans).'],
|
|
259
|
-
examples: [ex('List the downloaded Megascans library', {}, { success: true, assetCount: 0 })] }),
|
|
260
|
-
r('import_megascans_asset', 'asset', 'Import a downloaded Megascans pack through the Bridge plugin\'s own importer, headlessly — no Bridge window, no drag, no sign-in. Calls FAssetsImportController::DataReceived, the exported entry point the Bridge desktop app drives over its local TCP socket, so quality tiers, master materials and the MSPresets setup all apply exactly as they would from the UI. This imports content ALREADY on disk, downloaded by the Bridge app. A Megascans listing that is not downloaded yet is fetched and imported by marketplace=fab_listing instead, which needs no Bridge window. Assets land under /Game/Megascans.', schema({
|
|
261
|
-
payload: { type: 'object', 'x-unreal-reflection-boundary': true, description: 'A complete Bridge export envelope: { exportPayload: [ { assetId, assetType, exportMode, exportType, folderName, name, assetPaths[] } ] }. Use this to pass through exactly what Bridge would have sent.' },
|
|
262
|
-
assetPaths: arr('Absolute paths of the downloaded pack files. Used with folderName to synthesize a single-entry envelope when payload is omitted.'),
|
|
263
|
-
folderName: str('Destination folder name under /Game/Megascans. Required when synthesizing from assetPaths.'),
|
|
264
|
-
assetType: { type: 'string', default: '3d', description: 'Bridge asset type: 3d, 3dplant, atlas or surface.' },
|
|
265
|
-
exportMode: { type: 'string', default: 'normal', description: 'Bridge export mode: normal, normal_drag or progressive.' },
|
|
266
|
-
assetId: str('Megascans asset id. Defaults to folderName.'),
|
|
267
|
-
name: str('Display name. Defaults to folderName.')
|
|
268
|
-
}, []), schema({
|
|
269
|
-
success: bool('Operation succeeded.'),
|
|
270
|
-
entryCount: num('Export-payload entries dispatched to the importer.'),
|
|
271
|
-
note: str('Where the imported content lands.')
|
|
272
|
-
}, ['success']), MIGRATE_BEHAVIOR, WRITE_POLICY, HIGH, { dispatchAction: 'import_megascans_asset',
|
|
273
|
-
whenToUse: ['A Megascans pack already downloaded by Bridge must be imported with its master materials and presets applied.'],
|
|
274
|
-
whenNotToUse: [
|
|
275
|
-
'The Megascans library index must be browsed first (use asset.query_marketplace).',
|
|
276
|
-
'The pack files should just be copied in as they are (use asset.maintain_content with maintenance=migrate).',
|
|
277
|
-
],
|
|
278
|
-
examples: [ex('Import a downloaded surface pack', { folderName: 'Rock_Cliff_ud4kcfxda', assetType: 'surface', assetPaths: ['C:/Users/me/Documents/Megascans Library/Downloaded/UAssets/Rock_Cliff_ud4kcfxda'] }, { success: true, entryCount: 1 })] }),
|
|
279
|
-
r('migrate_assets', 'asset', 'Copy a content tree from an allowlisted source root into this project and scan it into the asset registry. This is how a Quixel Bridge / Fab pack or an engine template (its Blueprints, meshes, materials and maps) becomes usable content in the current project. IMPORTANT: package files store their references as absolute /Game/... paths and a copy cannot rewrite them, so the default destinationPath of "/Game" — which reproduces the source layout exactly — is the only setting that guarantees the migrated assets still resolve each other. Any other destinationPath relocates the tree and comes back with referenceIntegrity "at-risk". Run with dryRun first to see the file count and the package paths that will appear.', schema({
|
|
280
|
-
sourceRoot: SOURCE_ROOT_PARAM,
|
|
281
|
-
sourceId: str('Relative id under sourceRoot, exactly as returned by list_content_sources (for example "TP_VehicleAdvBP"). Must be relative: no "..", no leading "/", no drive prefix. Omit to migrate the root itself.'),
|
|
282
|
-
subPath: str('Optional folder under the source content directory, to migrate one subtree instead of the whole pack.'),
|
|
283
|
-
destinationPath: { type: 'string', default: '/Game', description: 'Root the copied tree lands under. Leave at "/Game" to preserve the source layout and keep internal references valid; any deeper path relocates the tree and flags referenceIntegrity as "at-risk".' },
|
|
284
|
-
overwrite: bool('Overwrite packages that already exist at the destination. Default false, which skips them and reports skippedCount.'),
|
|
285
|
-
dryRun: bool('Report what would be copied without writing anything. Returns the same counts and packagePaths sample.'),
|
|
286
|
-
maxPackages: { type: 'number', default: 4000, description: 'Refuse the migration when the source holds more files than this, so a mistyped source cannot copy tens of gigabytes. Narrow with subPath or raise deliberately.' }
|
|
287
|
-
}, ['sourceRoot']), schema({
|
|
288
|
-
success: bool('True when every file copied. False with code PARTIAL_FAILURE when some did not.'),
|
|
289
|
-
sourceDirectory: str('Absolute directory the packages were read from.'),
|
|
290
|
-
destinationPath: str('Destination /Game root.'),
|
|
291
|
-
copiedCount: num('Files copied (or that would be copied under dryRun).'),
|
|
292
|
-
skippedCount: num('Files already present at the destination and left alone because overwrite was false.'),
|
|
293
|
-
failedCount: num('Files that could not be copied.'),
|
|
294
|
-
totalFiles: num('Package files discovered in the source.'),
|
|
295
|
-
dryRun: bool('True when nothing was written.'),
|
|
296
|
-
referenceIntegrity: str('"preserved" when the source layout was reproduced under /Game, "at-risk" when destinationPath relocated it.'),
|
|
297
|
-
packagePaths: arr('Up to 40 destination package paths, for verifying the migration landed where expected.'),
|
|
298
|
-
failedFiles: arr('Up to 20 source-relative paths that failed to copy.'),
|
|
299
|
-
warnings: arr('Advisory messages, including the reference-integrity warning for a relocated destination.')
|
|
300
|
-
}, ['success']), MIGRATE_BEHAVIOR, WRITE_POLICY, HIGH, { dispatchAction: 'migrate_assets',
|
|
301
|
-
whenToUse: [
|
|
302
|
-
'Loose .uasset content from an engine template, plugin or downloaded Fab or Megascans pack must be copied into the project.',
|
|
303
|
-
'A migration must be previewed with a dry run before any file is copied.',
|
|
304
|
-
],
|
|
305
|
-
whenNotToUse: [
|
|
306
|
-
'A source file (FBX, PNG, WAV) must become an asset (use asset.import).',
|
|
307
|
-
'The available sources are still unknown (use asset.list with kind=content_sources).',
|
|
308
|
-
],
|
|
309
|
-
examples: [
|
|
310
|
-
ex('Preview migrating the advanced vehicle template', { sourceRoot: 'engineTemplates', sourceId: 'TP_VehicleAdvBP', dryRun: true }, { success: true, referenceIntegrity: 'preserved' }),
|
|
311
|
-
ex('Migrate a downloaded Megascans pack', { sourceRoot: 'megascansLibrary', sourceId: 'Rock_Cliff_ud4kcfxda' }, { success: true })
|
|
312
|
-
] })
|
|
313
|
-
];
|
|
314
|
-
//# sourceMappingURL=content-sources.js.map
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { arrObj, bool, DESTRUCTIVE, DESTRUCTIVE_POLICY, ex, LOW, MEDIUM, NON_IDEMPOTENT, READ, READ_POLICY, r, str, WRITE, WRITE_POLICY } from './builder.js';
|
|
2
|
-
import { schema } from '../shared/record-presets.js';
|
|
3
|
-
const DT_PATH = str('Asset path of the DataTable (e.g. /Game/DataTables/DT_MyTable).');
|
|
4
|
-
const ROW_STRUCT = str('Asset path of the row UScriptStruct.');
|
|
5
|
-
const ROW_NAME = str('Name of the row.');
|
|
6
|
-
const SAVE = bool('Persist the asset to disk. Defaults to true; pass false to keep the change in memory only.');
|
|
7
|
-
const MIGRATE = bool('Re-import the existing rows under the new struct (default true); rows that do not fit are reported in invalidRows.');
|
|
8
|
-
const CLEAR_ROWS = bool('Drop every existing row first (default false): before an import, or instead of migrating rows to a new row struct.');
|
|
9
|
-
const OK = schema({ success: bool('Operation succeeded.'), details: { type: 'object', 'x-unreal-reflection-boundary': true, description: 'Operation details.' } }, ['success']);
|
|
10
|
-
const DT = '/Game/DataTables/DT_Weapons';
|
|
11
|
-
const ROW = '/Game/Structs/S_WeaponRow';
|
|
12
|
-
const DONE = { success: true };
|
|
13
|
-
export const DATATABLE_RECORDS = [
|
|
14
|
-
r('create_data_table', 'datatable', 'Create a new DataTable asset.', schema({ name: str('DataTable name.'), path: str('Package path (default /Game/DataTables).'), dataTablePath: str('Full asset path of the new table, e.g. /Game/DataTables/DT_Weapons; alternative to name and path.'), rowStructPath: ROW_STRUCT, save: SAVE }, ['rowStructPath'], ['name', 'dataTablePath']), OK, WRITE, WRITE_POLICY, MEDIUM, { examples: [ex('Create a weapons DataTable', { name: 'DT_Weapons', path: '/Game/DataTables', rowStructPath: ROW }, DONE)],
|
|
15
|
-
whenToUse: ['A new DataTable is needed to hold rows of game data such as weapon stats or item lists; the row struct must already exist.'],
|
|
16
|
-
whenNotToUse: ['A copy of an existing table is wanted, rows included (use asset.duplicate).'] }),
|
|
17
|
-
r('set_data_table_row_struct', 'datatable', 'Bind a row UScriptStruct to an existing DataTable.', schema({ dataTablePath: DT_PATH, rowStructPath: ROW_STRUCT, migrateExistingRows: MIGRATE, clearExisting: CLEAR_ROWS, save: SAVE }, ['dataTablePath', 'rowStructPath']), OK, WRITE, WRITE_POLICY, LOW, { examples: [ex('Bind the row struct after creation', { dataTablePath: DT, rowStructPath: ROW }, DONE)],
|
|
18
|
-
whenToUse: ['A table must be bound to a different row struct; existing rows are migrated unless clearExisting drops them.'],
|
|
19
|
-
whenNotToUse: ['The struct itself needs new or changed columns first (use struct.edit_struct).'] }),
|
|
20
|
-
r('create_row_struct', 'datatable', 'Create a new UScriptStruct suitable as a DataTable row type.', schema({ name: str('Struct name.'), path: str('Package path (default /Game/Structs).'), rowStructPath: str('Full asset path of the new struct, e.g. /Game/Structs/S_WeaponRow; alternative to name and path.'), members: arrObj('Member definitions.'), save: SAVE }, [], ['name', 'rowStructPath']), OK, WRITE, WRITE_POLICY, MEDIUM, { examples: [ex('Create a weapon row struct', { name: 'S_WeaponRow', path: '/Game/Structs', members: [{ memberName: 'Damage', memberType: 'Float' }] }, DONE)],
|
|
21
|
-
whenToUse: ['A new struct with named, typed columns is needed as the row type of a table.'],
|
|
22
|
-
whenNotToUse: ['An existing struct only needs columns added, renamed or retyped (use struct.edit_struct).'] }),
|
|
23
|
-
r('get_row_struct', 'datatable', 'Retrieve the row UScriptStruct bound to a DataTable.', schema({ dataTablePath: DT_PATH }, ['dataTablePath']), OK, READ, READ_POLICY, LOW, { examples: [ex('Read which struct backs a table', { dataTablePath: DT }, DONE)],
|
|
24
|
-
whenToUse: ['The row struct behind a table must be identified before rows are added or read.'],
|
|
25
|
-
whenNotToUse: ['The columns and types of that struct must be read (use struct.get_struct).'] }),
|
|
26
|
-
r('set_struct_as_row_struct', 'datatable', 'Set an existing UScriptStruct as the row struct for a DataTable (a user-defined struct is validated and compiled first).', schema({ dataTablePath: DT_PATH, rowStructPath: ROW_STRUCT, migrateExistingRows: MIGRATE, clearExisting: CLEAR_ROWS, save: SAVE }, ['dataTablePath', 'rowStructPath']), OK, WRITE, WRITE_POLICY, LOW, { examples: [ex('Repoint a table at an existing struct', { dataTablePath: DT, rowStructPath: ROW }, DONE)],
|
|
27
|
-
whenToUse: ['A table must be bound to a different row struct; existing rows are migrated unless clearExisting drops them.'],
|
|
28
|
-
whenNotToUse: ['The struct itself needs new or changed columns first (use struct.edit_struct).'] }),
|
|
29
|
-
r('add_data_table_row', 'datatable', 'Add a new row to a DataTable.', schema({ dataTablePath: DT_PATH, rowName: ROW_NAME, rowData: { type: 'object', 'x-unreal-reflection-boundary': true, description: 'Row data key/value map.' }, save: SAVE }, ['dataTablePath', 'rowName', 'rowData']), OK, WRITE, WRITE_POLICY, LOW, { examples: [ex('Add a rifle row', { dataTablePath: DT, rowName: 'Rifle', rowData: { Damage: 32, FireRate: 0.12 } }, DONE)],
|
|
30
|
-
whenToUse: ['A new row must be added by name; columns left out of rowData take the row struct defaults.'],
|
|
31
|
-
whenNotToUse: ['The row must be read or listed, not written (use datatable.inspect_data_table).'] }),
|
|
32
|
-
r('get_data_table_row', 'datatable', 'Retrieve a row from a DataTable by name.', schema({ dataTablePath: DT_PATH, rowName: ROW_NAME }, ['dataTablePath', 'rowName']), OK, READ, READ_POLICY, LOW, { examples: [ex('Read the rifle row', { dataTablePath: DT, rowName: 'Rifle' }, DONE)],
|
|
33
|
-
whenToUse: ['One row must be read by name to check its column values; a missing row comes back as found false.'],
|
|
34
|
-
whenNotToUse: ['The DataTable asset itself, not its rows, must be examined (use asset.inspect_asset).'] }),
|
|
35
|
-
r('update_data_table_row', 'datatable', 'Update an existing row in a DataTable.', schema({ dataTablePath: DT_PATH, rowName: ROW_NAME, rowData: { type: 'object', 'x-unreal-reflection-boundary': true, description: 'Updated row data.' }, save: SAVE }, ['dataTablePath', 'rowName', 'rowData']), OK, NON_IDEMPOTENT, WRITE_POLICY, LOW, { examples: [ex('Rebalance the rifle damage', { dataTablePath: DT, rowName: 'Rifle', rowData: { Damage: 28 } }, DONE)],
|
|
36
|
-
whenToUse: ['Some columns of an existing row must change while the columns not named keep their values.'],
|
|
37
|
-
whenNotToUse: ['A row must be removed instead of changed (use datatable.delete_data_table_row).'] }),
|
|
38
|
-
r('delete_data_table_row', 'datatable', 'Delete a row from a DataTable.', schema({ dataTablePath: DT_PATH, rowName: ROW_NAME, save: SAVE }, ['dataTablePath', 'rowName']), OK, { ...DESTRUCTIVE, longRunning: false }, DESTRUCTIVE_POLICY, LOW, { examples: [ex('Remove a retired weapon row', { dataTablePath: DT, rowName: 'Musket' }, DONE)],
|
|
39
|
-
whenToUse: ['One named row must be removed from a table; a rowName that does not exist is reported as ROW_NOT_FOUND.'],
|
|
40
|
-
whenNotToUse: ['The whole DataTable asset must be deleted, not one row (use asset.delete).', 'A row must be changed rather than removed (use datatable.edit_data_table).'] }),
|
|
41
|
-
r('list_data_table_rows', 'datatable', 'List all rows in a DataTable.', schema({ dataTablePath: DT_PATH }, ['dataTablePath']), OK, READ, READ_POLICY, LOW, { examples: [ex('List every weapon row', { dataTablePath: DT }, DONE)],
|
|
42
|
-
whenToUse: ['Every row and its values must be seen at once; at most 200 rows are returned, with the full rowCount.'],
|
|
43
|
-
whenNotToUse: ['The DataTable asset must first be found in the project (use asset.query_asset).'] }),
|
|
44
|
-
r('import_data_table_rows', 'datatable', 'Import multiple rows into a DataTable from an array.', schema({ dataTablePath: DT_PATH, rows: arrObj('Rows to import, each { rowName: <name>, rowData: { <field>: <value>, ... } }. The field names inside rowData are the row struct own property names, e.g. { rowName: ArcRifle, rowData: { DisplayName: Arc Rifle, Damage: 42 } }. A flat entry such as { rowName, Damage } is rejected as missing rowData.'), clearExisting: CLEAR_ROWS, save: SAVE }, ['dataTablePath', 'rows']), OK, WRITE, WRITE_POLICY, MEDIUM, { examples: [ex('Replace the table contents in bulk', { dataTablePath: DT, rows: [{ rowName: 'Pistol', rowData: { Damage: 18 } }, { rowName: 'Rifle', rowData: { Damage: 32 } }], clearExisting: true }, DONE)],
|
|
45
|
-
whenToUse: ['Many rows must be loaded in one call; each named row is replaced whole and columns it omits reset to defaults.'],
|
|
46
|
-
whenNotToUse: ['The table only needs emptying, with nothing loaded afterwards (use datatable.delete_data_table_row with deleteScope=all).'] }),
|
|
47
|
-
r('clear_data_table_rows', 'datatable', 'Clear all rows from a DataTable.', schema({ dataTablePath: DT_PATH, save: SAVE }, ['dataTablePath']), OK, { ...DESTRUCTIVE, longRunning: false }, DESTRUCTIVE_POLICY, LOW, { examples: [ex('Empty a table before reimport', { dataTablePath: DT }, DONE)],
|
|
48
|
-
whenToUse: ['Every row must go while the table asset and its row struct stay, with nothing loaded afterwards.'],
|
|
49
|
-
whenNotToUse: ['The table asset itself must go, not just its rows (use asset.delete).', 'The table is being reloaded with new rows (use datatable.edit_data_table with edit=import_rows and clearExisting=true, which validates first).'] })
|
|
50
|
-
];
|
|
51
|
-
//# sourceMappingURL=datatable-records.js.map
|