unreal-engine-mcp-server 0.5.21 → 0.5.30
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 +247 -4
- package/README.md +140 -85
- package/dist/automation/bridge.d.ts +8 -0
- package/dist/automation/bridge.d.ts.map +1 -1
- package/dist/automation/bridge.js +94 -14
- package/dist/automation/bridge.js.map +1 -1
- package/dist/automation/connection-manager.d.ts.map +1 -1
- package/dist/automation/connection-manager.js +13 -5
- package/dist/automation/connection-manager.js.map +1 -1
- package/dist/automation/handshake.d.ts.map +1 -1
- package/dist/automation/handshake.js +40 -27
- package/dist/automation/handshake.js.map +1 -1
- package/dist/automation/index.d.ts +1 -1
- package/dist/automation/index.d.ts.map +1 -1
- package/dist/automation/index.js +0 -1
- package/dist/automation/index.js.map +1 -1
- package/dist/automation/message-handler.d.ts.map +1 -1
- package/dist/automation/message-handler.js +13 -9
- package/dist/automation/message-handler.js.map +1 -1
- package/dist/automation/message-schema.d.ts.map +1 -1
- package/dist/automation/message-schema.js +19 -18
- package/dist/automation/message-schema.js.map +1 -1
- package/dist/automation/request-tracker.d.ts +1 -0
- package/dist/automation/request-tracker.d.ts.map +1 -1
- package/dist/automation/request-tracker.js +30 -31
- package/dist/automation/request-tracker.js.map +1 -1
- package/dist/automation/types.d.ts +38 -32
- package/dist/automation/types.d.ts.map +1 -1
- package/dist/cli.js +14 -16
- package/dist/cli.js.map +1 -1
- package/dist/config/class-aliases.d.ts.map +1 -1
- package/dist/config/class-aliases.js +10 -2
- package/dist/config/class-aliases.js.map +1 -1
- package/dist/config.d.ts +9 -8
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +58 -32
- package/dist/config.js.map +1 -1
- package/dist/handlers/resource-handlers.d.ts +15 -2
- package/dist/handlers/resource-handlers.d.ts.map +1 -1
- package/dist/handlers/resource-handlers.js +46 -63
- package/dist/handlers/resource-handlers.js.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +42 -48
- package/dist/index.js.map +1 -1
- package/dist/resources/assets.d.ts.map +1 -1
- package/dist/resources/assets.js +34 -9
- package/dist/resources/assets.js.map +1 -1
- package/dist/resources/levels.d.ts +3 -0
- package/dist/resources/levels.d.ts.map +1 -1
- package/dist/resources/levels.js +33 -17
- package/dist/resources/levels.js.map +1 -1
- package/dist/server/resource-registry.d.ts +15 -2
- package/dist/server/resource-registry.d.ts.map +1 -1
- package/dist/server/resource-registry.js +9 -8
- package/dist/server/resource-registry.js.map +1 -1
- package/dist/server/tool-registry.d.ts +0 -1
- package/dist/server/tool-registry.d.ts.map +1 -1
- package/dist/server/tool-registry.js +91 -101
- package/dist/server/tool-registry.js.map +1 -1
- package/dist/server-setup.d.ts +5 -2
- package/dist/server-setup.d.ts.map +1 -1
- package/dist/server-setup.js +15 -19
- package/dist/server-setup.js.map +1 -1
- package/dist/services/health-monitor.d.ts +3 -0
- package/dist/services/health-monitor.d.ts.map +1 -1
- package/dist/services/health-monitor.js +30 -11
- package/dist/services/health-monitor.js.map +1 -1
- package/dist/services/metrics-server.d.ts +1 -1
- package/dist/services/metrics-server.d.ts.map +1 -1
- package/dist/services/metrics-server.js +65 -3
- package/dist/services/metrics-server.js.map +1 -1
- package/dist/tools/base-tool.d.ts.map +1 -1
- package/dist/tools/base-tool.js +14 -16
- package/dist/tools/base-tool.js.map +1 -1
- package/dist/tools/consolidated-tool-definitions.d.ts +16 -1
- package/dist/tools/consolidated-tool-definitions.d.ts.map +1 -1
- package/dist/tools/consolidated-tool-definitions.js +1479 -2538
- package/dist/tools/consolidated-tool-definitions.js.map +1 -1
- package/dist/tools/consolidated-tool-handlers.d.ts.map +1 -1
- package/dist/tools/consolidated-tool-handlers.js +195 -217
- package/dist/tools/consolidated-tool-handlers.js.map +1 -1
- package/dist/tools/dynamic-handler-registry.d.ts +1 -0
- package/dist/tools/dynamic-handler-registry.d.ts.map +1 -1
- package/dist/tools/dynamic-handler-registry.js +15 -7
- package/dist/tools/dynamic-handler-registry.js.map +1 -1
- package/dist/tools/dynamic-tool-manager.d.ts +1 -1
- package/dist/tools/dynamic-tool-manager.d.ts.map +1 -1
- package/dist/tools/dynamic-tool-manager.js +30 -18
- package/dist/tools/dynamic-tool-manager.js.map +1 -1
- package/dist/tools/editor.d.ts +2 -2
- package/dist/tools/editor.d.ts.map +1 -1
- package/dist/tools/editor.js +4 -4
- package/dist/tools/editor.js.map +1 -1
- package/dist/tools/handlers/actor-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/actor-handlers.js +66 -7
- package/dist/tools/handlers/actor-handlers.js.map +1 -1
- package/dist/tools/handlers/ai-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/ai-handlers.js +24 -13
- package/dist/tools/handlers/ai-handlers.js.map +1 -1
- package/dist/tools/handlers/animation-authoring-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/animation-authoring-handlers.js +285 -218
- package/dist/tools/handlers/animation-authoring-handlers.js.map +1 -1
- package/dist/tools/handlers/animation-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/animation-handlers.js +69 -21
- package/dist/tools/handlers/animation-handlers.js.map +1 -1
- package/dist/tools/handlers/asset-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/asset-handlers.js +75 -16
- package/dist/tools/handlers/asset-handlers.js.map +1 -1
- package/dist/tools/handlers/audio-authoring-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/audio-authoring-handlers.js +102 -9
- package/dist/tools/handlers/audio-authoring-handlers.js.map +1 -1
- package/dist/tools/handlers/audio-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/audio-handlers.js +48 -13
- package/dist/tools/handlers/audio-handlers.js.map +1 -1
- package/dist/tools/handlers/blueprint-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/blueprint-handlers.js +28 -48
- package/dist/tools/handlers/blueprint-handlers.js.map +1 -1
- package/dist/tools/handlers/character-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/character-handlers.js +13 -12
- package/dist/tools/handlers/character-handlers.js.map +1 -1
- package/dist/tools/handlers/combat-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/combat-handlers.js +12 -12
- package/dist/tools/handlers/combat-handlers.js.map +1 -1
- package/dist/tools/handlers/common-handlers.d.ts +14 -0
- package/dist/tools/handlers/common-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/common-handlers.js +117 -9
- package/dist/tools/handlers/common-handlers.js.map +1 -1
- package/dist/tools/handlers/editor-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/editor-handlers.js +139 -67
- package/dist/tools/handlers/editor-handlers.js.map +1 -1
- package/dist/tools/handlers/effect-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/effect-handlers.js +324 -36
- package/dist/tools/handlers/effect-handlers.js.map +1 -1
- package/dist/tools/handlers/environment-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/environment-handlers.js +186 -21
- package/dist/tools/handlers/environment-handlers.js.map +1 -1
- package/dist/tools/handlers/game-framework-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/game-framework-handlers.js +10 -12
- package/dist/tools/handlers/game-framework-handlers.js.map +1 -1
- package/dist/tools/handlers/gas-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/gas-handlers.js +136 -20
- package/dist/tools/handlers/gas-handlers.js.map +1 -1
- package/dist/tools/handlers/geometry-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/geometry-handlers.js +130 -7
- package/dist/tools/handlers/geometry-handlers.js.map +1 -1
- package/dist/tools/handlers/graph-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/graph-handlers.js +46 -11
- package/dist/tools/handlers/graph-handlers.js.map +1 -1
- package/dist/tools/handlers/input-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/input-handlers.js +33 -75
- package/dist/tools/handlers/input-handlers.js.map +1 -1
- package/dist/tools/handlers/inspect-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/inspect-handlers.js +136 -39
- package/dist/tools/handlers/inspect-handlers.js.map +1 -1
- package/dist/tools/handlers/interaction-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/interaction-handlers.js +14 -12
- package/dist/tools/handlers/interaction-handlers.js.map +1 -1
- package/dist/tools/handlers/inventory-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/inventory-handlers.js +19 -12
- package/dist/tools/handlers/inventory-handlers.js.map +1 -1
- package/dist/tools/handlers/level-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/level-handlers.js +166 -149
- package/dist/tools/handlers/level-handlers.js.map +1 -1
- package/dist/tools/handlers/level-structure-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/level-structure-handlers.js +18 -34
- package/dist/tools/handlers/level-structure-handlers.js.map +1 -1
- package/dist/tools/handlers/manage-tools-handlers.js +3 -3
- package/dist/tools/handlers/manage-tools-handlers.js.map +1 -1
- package/dist/tools/handlers/material-authoring-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/material-authoring-handlers.js +382 -41
- package/dist/tools/handlers/material-authoring-handlers.js.map +1 -1
- package/dist/tools/handlers/navigation-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/navigation-handlers.js +11 -36
- package/dist/tools/handlers/navigation-handlers.js.map +1 -1
- package/dist/tools/handlers/networking-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/networking-handlers.js +17 -15
- package/dist/tools/handlers/networking-handlers.js.map +1 -1
- package/dist/tools/handlers/niagara-authoring-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/niagara-authoring-handlers.js +24 -23
- package/dist/tools/handlers/niagara-authoring-handlers.js.map +1 -1
- package/dist/tools/handlers/pcg-handlers.d.ts +4 -0
- package/dist/tools/handlers/pcg-handlers.d.ts.map +1 -0
- package/dist/tools/handlers/pcg-handlers.js +77 -0
- package/dist/tools/handlers/pcg-handlers.js.map +1 -0
- package/dist/tools/handlers/performance-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/performance-handlers.js +35 -42
- package/dist/tools/handlers/performance-handlers.js.map +1 -1
- package/dist/tools/handlers/pipeline-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/pipeline-handlers.js +157 -39
- package/dist/tools/handlers/pipeline-handlers.js.map +1 -1
- package/dist/tools/handlers/sequence-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/sequence-handlers.js +6 -4
- package/dist/tools/handlers/sequence-handlers.js.map +1 -1
- package/dist/tools/handlers/sessions-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/sessions-handlers.js +7 -15
- package/dist/tools/handlers/sessions-handlers.js.map +1 -1
- package/dist/tools/handlers/spline-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/spline-handlers.js +8 -35
- package/dist/tools/handlers/spline-handlers.js.map +1 -1
- package/dist/tools/handlers/system-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/system-handlers.js +100 -26
- package/dist/tools/handlers/system-handlers.js.map +1 -1
- package/dist/tools/handlers/texture-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/texture-handlers.js +14 -0
- package/dist/tools/handlers/texture-handlers.js.map +1 -1
- package/dist/tools/handlers/volume-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/volume-handlers.js +6 -33
- package/dist/tools/handlers/volume-handlers.js.map +1 -1
- package/dist/tools/handlers/widget-authoring-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/widget-authoring-handlers.js +26 -20
- package/dist/tools/handlers/widget-authoring-handlers.js.map +1 -1
- package/dist/tools/level.d.ts +2 -2
- package/dist/tools/level.d.ts.map +1 -1
- package/dist/tools/level.js +2 -1
- package/dist/tools/level.js.map +1 -1
- package/dist/tools/property-dictionary.js +1 -1
- package/dist/tools/property-dictionary.js.map +1 -1
- package/dist/tools/schemas/core-tools.d.ts +1 -1
- package/dist/tools/schemas/core-tools.d.ts.map +1 -1
- package/dist/tools/schemas/core-tools.js +94 -57
- package/dist/tools/schemas/core-tools.js.map +1 -1
- package/dist/tools/tool-definition-utils.d.ts +8 -0
- package/dist/tools/tool-definition-utils.d.ts.map +1 -1
- package/dist/tools/tool-definition-utils.js +20 -0
- package/dist/tools/tool-definition-utils.js.map +1 -1
- package/dist/types/automation-responses.d.ts +26 -33
- package/dist/types/automation-responses.d.ts.map +1 -1
- package/dist/types/env.d.ts.map +1 -1
- package/dist/types/env.js +7 -6
- package/dist/types/env.js.map +1 -1
- package/dist/types/handler-types.d.ts +41 -20
- package/dist/types/handler-types.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/tool-interfaces.d.ts +5 -873
- package/dist/types/tool-interfaces.d.ts.map +1 -1
- package/dist/types/tool-types.d.ts +35 -1
- package/dist/types/tool-types.d.ts.map +1 -1
- package/dist/unreal-bridge.d.ts.map +1 -1
- package/dist/unreal-bridge.js +16 -6
- package/dist/unreal-bridge.js.map +1 -1
- package/dist/utils/action-constants.d.ts +4 -1
- package/dist/utils/action-constants.d.ts.map +1 -1
- package/dist/utils/action-constants.js +4 -1
- package/dist/utils/action-constants.js.map +1 -1
- package/dist/utils/command-validator.d.ts.map +1 -1
- package/dist/utils/command-validator.js +5 -4
- package/dist/utils/command-validator.js.map +1 -1
- package/dist/utils/elicitation.d.ts +5 -2
- package/dist/utils/elicitation.d.ts.map +1 -1
- package/dist/utils/elicitation.js +38 -21
- package/dist/utils/elicitation.js.map +1 -1
- package/dist/utils/environment-snapshot.d.ts +17 -0
- package/dist/utils/environment-snapshot.d.ts.map +1 -0
- package/dist/utils/environment-snapshot.js +242 -0
- package/dist/utils/environment-snapshot.js.map +1 -0
- package/dist/utils/error-handler.d.ts +1 -11
- package/dist/utils/error-handler.d.ts.map +1 -1
- package/dist/utils/error-handler.js +41 -25
- package/dist/utils/error-handler.js.map +1 -1
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/ini-reader.js +4 -4
- package/dist/utils/ini-reader.js.map +1 -1
- package/dist/utils/log-reader.d.ts +29 -0
- package/dist/utils/log-reader.d.ts.map +1 -0
- package/dist/utils/log-reader.js +229 -0
- package/dist/utils/log-reader.js.map +1 -0
- package/dist/utils/log-redaction.d.ts +4 -0
- package/dist/utils/log-redaction.d.ts.map +1 -0
- package/dist/utils/log-redaction.js +27 -0
- package/dist/utils/log-redaction.js.map +1 -0
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +20 -7
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/normalize.d.ts.map +1 -1
- package/dist/utils/normalize.js +31 -30
- package/dist/utils/normalize.js.map +1 -1
- package/dist/utils/path-security.d.ts.map +1 -1
- package/dist/utils/path-security.js +20 -11
- package/dist/utils/path-security.js.map +1 -1
- package/dist/utils/response-factory.d.ts +1 -1
- package/dist/utils/response-factory.d.ts.map +1 -1
- package/dist/utils/response-factory.js +17 -3
- package/dist/utils/response-factory.js.map +1 -1
- package/dist/utils/response-validator.d.ts.map +1 -1
- package/dist/utils/response-validator.js +114 -47
- package/dist/utils/response-validator.js.map +1 -1
- package/dist/utils/safe-json.d.ts.map +1 -1
- package/dist/utils/safe-json.js +24 -18
- package/dist/utils/safe-json.js.map +1 -1
- package/dist/utils/type-coercion.d.ts +2 -3
- package/dist/utils/type-coercion.d.ts.map +1 -1
- package/dist/utils/type-coercion.js +42 -14
- package/dist/utils/type-coercion.js.map +1 -1
- package/dist/utils/type-guards.d.ts +2 -0
- package/dist/utils/type-guards.d.ts.map +1 -0
- package/dist/utils/type-guards.js +4 -0
- package/dist/utils/type-guards.js.map +1 -0
- package/dist/utils/unreal-command-queue.d.ts +2 -0
- package/dist/utils/unreal-command-queue.d.ts.map +1 -1
- package/dist/utils/unreal-command-queue.js +80 -54
- package/dist/utils/unreal-command-queue.js.map +1 -1
- package/dist/utils/validation.d.ts +2 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +44 -34
- package/dist/utils/validation.js.map +1 -1
- package/package.json +4 -6
- package/server.json +3 -3
- package/dist/graphql/loaders.d.ts +0 -64
- package/dist/graphql/loaders.d.ts.map +0 -1
- package/dist/graphql/loaders.js +0 -117
- package/dist/graphql/loaders.js.map +0 -1
- package/dist/graphql/resolvers.d.ts +0 -373
- package/dist/graphql/resolvers.d.ts.map +0 -1
- package/dist/graphql/resolvers.js +0 -776
- package/dist/graphql/resolvers.js.map +0 -1
- package/dist/graphql/schema.d.ts +0 -5
- package/dist/graphql/schema.d.ts.map +0 -1
- package/dist/graphql/schema.js +0 -437
- package/dist/graphql/schema.js.map +0 -1
- package/dist/graphql/server.d.ts +0 -25
- package/dist/graphql/server.d.ts.map +0 -1
- package/dist/graphql/server.js +0 -119
- package/dist/graphql/server.js.map +0 -1
- package/dist/graphql/types.d.ts +0 -9
- package/dist/graphql/types.d.ts.map +0 -1
- package/dist/graphql/types.js +0 -2
- package/dist/graphql/types.js.map +0 -1
- package/dist/tools/actors.d.ts +0 -212
- package/dist/tools/actors.d.ts.map +0 -1
- package/dist/tools/actors.js +0 -456
- package/dist/tools/actors.js.map +0 -1
- package/dist/tools/animation.d.ts +0 -274
- package/dist/tools/animation.d.ts.map +0 -1
- package/dist/tools/animation.js +0 -773
- package/dist/tools/animation.js.map +0 -1
- package/dist/tools/assets.d.ts +0 -82
- package/dist/tools/assets.d.ts.map +0 -1
- package/dist/tools/assets.js +0 -383
- package/dist/tools/assets.js.map +0 -1
- package/dist/tools/blueprint.d.ts +0 -271
- package/dist/tools/blueprint.d.ts.map +0 -1
- package/dist/tools/blueprint.js +0 -828
- package/dist/tools/blueprint.js.map +0 -1
- package/dist/tools/environment.d.ts +0 -37
- package/dist/tools/environment.d.ts.map +0 -1
- package/dist/tools/environment.js +0 -338
- package/dist/tools/environment.js.map +0 -1
- package/dist/tools/foliage.d.ts +0 -140
- package/dist/tools/foliage.d.ts.map +0 -1
- package/dist/tools/foliage.js +0 -405
- package/dist/tools/foliage.js.map +0 -1
- package/dist/tools/landscape.d.ts +0 -120
- package/dist/tools/landscape.d.ts.map +0 -1
- package/dist/tools/landscape.js +0 -454
- package/dist/tools/landscape.js.map +0 -1
- package/dist/tools/lighting.d.ts +0 -240
- package/dist/tools/lighting.d.ts.map +0 -1
- package/dist/tools/lighting.js +0 -856
- package/dist/tools/lighting.js.map +0 -1
- package/dist/tools/logs.d.ts +0 -45
- package/dist/tools/logs.d.ts.map +0 -1
- package/dist/tools/logs.js +0 -235
- package/dist/tools/logs.js.map +0 -1
- package/dist/tools/niagara.d.ts +0 -277
- package/dist/tools/niagara.d.ts.map +0 -1
- package/dist/tools/niagara.js +0 -325
- package/dist/tools/niagara.js.map +0 -1
- package/dist/tools/physics.d.ts +0 -191
- package/dist/tools/physics.d.ts.map +0 -1
- package/dist/tools/physics.js +0 -492
- package/dist/tools/physics.js.map +0 -1
- package/dist/tools/sequence.d.ts +0 -139
- package/dist/tools/sequence.d.ts.map +0 -1
- package/dist/tools/sequence.js +0 -261
- package/dist/tools/sequence.js.map +0 -1
|
@@ -1,9 +1,19 @@
|
|
|
1
|
+
const RESPONSE_TIME_SAMPLE_LIMIT = 100;
|
|
2
|
+
const RECENT_ERROR_LIMIT = 20;
|
|
3
|
+
function elapsedSince(startTime) {
|
|
4
|
+
if (!Number.isFinite(startTime)) {
|
|
5
|
+
return 0;
|
|
6
|
+
}
|
|
7
|
+
return Math.max(0, Date.now() - startTime);
|
|
8
|
+
}
|
|
1
9
|
export class HealthMonitor {
|
|
2
10
|
logger;
|
|
3
11
|
metrics;
|
|
4
12
|
healthCheckTimer;
|
|
5
13
|
lastHealthSuccessAt = 0;
|
|
14
|
+
responseTimeTotal = 0;
|
|
6
15
|
HEALTH_CHECK_INTERVAL_MS = 30000;
|
|
16
|
+
HEALTH_CHECK_PAUSE_AFTER_MS = 5 * 60 * 1000;
|
|
7
17
|
constructor(logger) {
|
|
8
18
|
this.logger = logger;
|
|
9
19
|
this.metrics = {
|
|
@@ -19,7 +29,7 @@ export class HealthMonitor {
|
|
|
19
29
|
};
|
|
20
30
|
}
|
|
21
31
|
trackPerformance(startTime, success) {
|
|
22
|
-
const responseTime =
|
|
32
|
+
const responseTime = elapsedSince(startTime);
|
|
23
33
|
this.metrics.totalRequests++;
|
|
24
34
|
if (success) {
|
|
25
35
|
this.metrics.successfulRequests++;
|
|
@@ -28,10 +38,13 @@ export class HealthMonitor {
|
|
|
28
38
|
this.metrics.failedRequests++;
|
|
29
39
|
}
|
|
30
40
|
this.metrics.responseTimes.push(responseTime);
|
|
31
|
-
|
|
32
|
-
|
|
41
|
+
this.responseTimeTotal += responseTime;
|
|
42
|
+
if (this.metrics.responseTimes.length > RESPONSE_TIME_SAMPLE_LIMIT) {
|
|
43
|
+
const removed = this.metrics.responseTimes.shift();
|
|
44
|
+
if (removed !== undefined)
|
|
45
|
+
this.responseTimeTotal -= removed;
|
|
33
46
|
}
|
|
34
|
-
this.metrics.averageResponseTime = this.
|
|
47
|
+
this.metrics.averageResponseTime = this.responseTimeTotal / this.metrics.responseTimes.length;
|
|
35
48
|
}
|
|
36
49
|
recordError(errorResponse) {
|
|
37
50
|
try {
|
|
@@ -43,13 +56,16 @@ export class HealthMonitor {
|
|
|
43
56
|
message: typeof errorResponse.error === 'string' ? errorResponse.error : (typeof errorResponse.message === 'string' ? errorResponse.message : 'Unknown error'),
|
|
44
57
|
retriable: Boolean(errorResponse.retriable)
|
|
45
58
|
});
|
|
46
|
-
if (this.metrics.recentErrors.length >
|
|
47
|
-
this.metrics.recentErrors.splice(0, this.metrics.recentErrors.length -
|
|
59
|
+
if (this.metrics.recentErrors.length > RECENT_ERROR_LIMIT)
|
|
60
|
+
this.metrics.recentErrors.splice(0, this.metrics.recentErrors.length - RECENT_ERROR_LIMIT);
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
this.logger.debug('Failed to record health monitor error response', error);
|
|
48
64
|
}
|
|
49
|
-
catch { }
|
|
50
65
|
}
|
|
51
66
|
async performHealthCheck(bridge) {
|
|
52
67
|
if (!bridge.isConnected) {
|
|
68
|
+
this.markDisconnected();
|
|
53
69
|
return false;
|
|
54
70
|
}
|
|
55
71
|
try {
|
|
@@ -72,8 +88,8 @@ export class HealthMonitor {
|
|
|
72
88
|
this.lastHealthSuccessAt = Date.now();
|
|
73
89
|
this.healthCheckTimer = setInterval(async () => {
|
|
74
90
|
if (!bridge.isConnected) {
|
|
75
|
-
|
|
76
|
-
if (!this.lastHealthSuccessAt || Date.now() - this.lastHealthSuccessAt >
|
|
91
|
+
this.markDisconnected();
|
|
92
|
+
if (!this.lastHealthSuccessAt || Date.now() - this.lastHealthSuccessAt > this.HEALTH_CHECK_PAUSE_AFTER_MS) {
|
|
77
93
|
if (this.healthCheckTimer) {
|
|
78
94
|
clearInterval(this.healthCheckTimer);
|
|
79
95
|
this.healthCheckTimer = undefined;
|
|
@@ -83,8 +99,7 @@ export class HealthMonitor {
|
|
|
83
99
|
return;
|
|
84
100
|
}
|
|
85
101
|
await this.performHealthCheck(bridge);
|
|
86
|
-
|
|
87
|
-
if (!this.lastHealthSuccessAt || Date.now() - this.lastHealthSuccessAt > FIVE_MIN_MS) {
|
|
102
|
+
if (!this.lastHealthSuccessAt || Date.now() - this.lastHealthSuccessAt > this.HEALTH_CHECK_PAUSE_AFTER_MS) {
|
|
88
103
|
if (this.healthCheckTimer) {
|
|
89
104
|
clearInterval(this.healthCheckTimer);
|
|
90
105
|
this.healthCheckTimer = undefined;
|
|
@@ -102,5 +117,9 @@ export class HealthMonitor {
|
|
|
102
117
|
setLastHealthSuccessAt(time) {
|
|
103
118
|
this.lastHealthSuccessAt = time;
|
|
104
119
|
}
|
|
120
|
+
markDisconnected() {
|
|
121
|
+
this.metrics.connectionStatus = 'disconnected';
|
|
122
|
+
this.metrics.lastHealthCheck = new Date();
|
|
123
|
+
}
|
|
105
124
|
}
|
|
106
125
|
//# sourceMappingURL=health-monitor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health-monitor.js","sourceRoot":"","sources":["../../src/services/health-monitor.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,aAAa;IAChB,MAAM,CAAS;IAChB,OAAO,CAAqB;IAC3B,gBAAgB,CAA6B;IAC7C,mBAAmB,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"health-monitor.js","sourceRoot":"","sources":["../../src/services/health-monitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics-server.d.ts","sourceRoot":"","sources":["../../src/services/metrics-server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"metrics-server.d.ts","sourceRoot":"","sources":["../../src/services/metrics-server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,UAAU,oBAAoB;IAC5B,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;CAChB;AA+GD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CA+EpF"}
|
|
@@ -1,4 +1,57 @@
|
|
|
1
|
-
import http from 'http';
|
|
1
|
+
import http from 'node:http';
|
|
2
|
+
import { timingSafeEqual } from 'node:crypto';
|
|
3
|
+
function parseMetricsPort(value) {
|
|
4
|
+
if (!value || value.trim().length === 0)
|
|
5
|
+
return 0;
|
|
6
|
+
const trimmed = value.trim();
|
|
7
|
+
if (!/^\d+$/.test(trimmed))
|
|
8
|
+
return 0;
|
|
9
|
+
const port = Number(trimmed);
|
|
10
|
+
return Number.isInteger(port) && port > 0 && port <= 65535 ? port : 0;
|
|
11
|
+
}
|
|
12
|
+
function isLoopbackHost(host) {
|
|
13
|
+
const normalized = host.trim().toLowerCase();
|
|
14
|
+
return normalized === 'localhost' || normalized === '127.0.0.1' || normalized === '::1' || normalized === '[::1]';
|
|
15
|
+
}
|
|
16
|
+
function parseMetricsHost(value, logger) {
|
|
17
|
+
const host = value && value.trim().length > 0 ? value.trim() : '127.0.0.1';
|
|
18
|
+
if (isLoopbackHost(host)) {
|
|
19
|
+
if (host.toLowerCase() === 'localhost')
|
|
20
|
+
return '127.0.0.1';
|
|
21
|
+
if (host === '[::1]')
|
|
22
|
+
return '::1';
|
|
23
|
+
return host;
|
|
24
|
+
}
|
|
25
|
+
const allowNonLoopback = process.env.MCP_METRICS_ALLOW_NON_LOOPBACK?.toLowerCase() === 'true';
|
|
26
|
+
if (!allowNonLoopback) {
|
|
27
|
+
logger.warn(`Refusing to bind metrics server to non-loopback host '${host}'. Set MCP_METRICS_ALLOW_NON_LOOPBACK=true and MCP_METRICS_TOKEN to opt in.`);
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
if (!process.env.MCP_METRICS_TOKEN?.trim()) {
|
|
31
|
+
logger.warn('Refusing to expose metrics on a non-loopback host without MCP_METRICS_TOKEN.');
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
return host;
|
|
35
|
+
}
|
|
36
|
+
function headerValue(value) {
|
|
37
|
+
return Array.isArray(value) ? value[0] : value;
|
|
38
|
+
}
|
|
39
|
+
function tokensMatch(candidate, expected) {
|
|
40
|
+
const candidateBytes = Buffer.from(candidate);
|
|
41
|
+
const expectedBytes = Buffer.from(expected);
|
|
42
|
+
return candidateBytes.length === expectedBytes.length && timingSafeEqual(candidateBytes, expectedBytes);
|
|
43
|
+
}
|
|
44
|
+
function isAuthorized(req, token) {
|
|
45
|
+
const explicitToken = headerValue(req.headers['x-mcp-metrics-token']);
|
|
46
|
+
if (explicitToken && tokensMatch(explicitToken, token))
|
|
47
|
+
return true;
|
|
48
|
+
const authHeader = headerValue(req.headers.authorization);
|
|
49
|
+
const bearerPrefix = 'Bearer ';
|
|
50
|
+
if (authHeader?.startsWith(bearerPrefix)) {
|
|
51
|
+
return tokensMatch(authHeader.slice(bearerPrefix.length).trim(), token);
|
|
52
|
+
}
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
2
55
|
function formatPrometheusMetrics(options) {
|
|
3
56
|
const { healthMonitor, automationBridge } = options;
|
|
4
57
|
const m = healthMonitor.metrics;
|
|
@@ -37,12 +90,16 @@ function formatPrometheusMetrics(options) {
|
|
|
37
90
|
export function startMetricsServer(options) {
|
|
38
91
|
const { logger } = options;
|
|
39
92
|
const portEnv = process.env.MCP_METRICS_PORT || process.env.PROMETHEUS_PORT;
|
|
40
|
-
const port =
|
|
93
|
+
const port = parseMetricsPort(portEnv);
|
|
41
94
|
if (!port || !Number.isFinite(port) || port <= 0) {
|
|
42
95
|
logger.debug('Metrics server disabled (set MCP_METRICS_PORT to enable Prometheus /metrics endpoint).');
|
|
43
96
|
return null;
|
|
44
97
|
}
|
|
45
|
-
const host = process.env.MCP_METRICS_HOST
|
|
98
|
+
const host = parseMetricsHost(process.env.MCP_METRICS_HOST, logger);
|
|
99
|
+
if (!host) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
const metricsToken = process.env.MCP_METRICS_TOKEN?.trim();
|
|
46
103
|
const requestCounts = new Map();
|
|
47
104
|
const RATE_LIMIT = 60;
|
|
48
105
|
const RATE_WINDOW_MS = 60_000;
|
|
@@ -66,6 +123,11 @@ export function startMetricsServer(options) {
|
|
|
66
123
|
requestCounts.delete(ip);
|
|
67
124
|
}
|
|
68
125
|
}
|
|
126
|
+
if (metricsToken && !isAuthorized(req, metricsToken)) {
|
|
127
|
+
res.writeHead(401, { 'Content-Type': 'text/plain' });
|
|
128
|
+
res.end('Unauthorized');
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
69
131
|
if (req.url === '/metrics' && req.method === 'GET') {
|
|
70
132
|
const metrics = formatPrometheusMetrics(options);
|
|
71
133
|
res.writeHead(200, { 'Content-Type': 'text/plain; version=0.0.4' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics-server.js","sourceRoot":"","sources":["../../src/services/metrics-server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"metrics-server.js","sourceRoot":"","sources":["../../src/services/metrics-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-tool.d.ts","sourceRoot":"","sources":["../../src/tools/base-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"base-tool.d.ts","sourceRoot":"","sources":["../../src/tools/base-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAoBxD,8BAAsB,QAAS,YAAW,SAAS;IACnC,SAAS,CAAC,MAAM,EAAE,YAAY;gBAApB,MAAM,EAAE,YAAY;IAE1C,mBAAmB,IAAI,gBAAgB;cAIvB,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAE,MAAuB,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;cAmB1J,qBAAqB,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;CAOjN"}
|
package/dist/tools/base-tool.js
CHANGED
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
import { isRecord } from '../utils/type-guards.js';
|
|
2
|
+
function formatFailureMessage(action, toolName, response) {
|
|
3
|
+
if (typeof response?.error === 'string') {
|
|
4
|
+
return response.error;
|
|
5
|
+
}
|
|
6
|
+
if (isRecord(response?.error) && typeof response.error.message === 'string') {
|
|
7
|
+
const code = typeof response.error.code === 'string' || typeof response.error.code === 'number'
|
|
8
|
+
? response.error.code
|
|
9
|
+
: 'UNKNOWN';
|
|
10
|
+
return `${response.error.message} (Code: ${code})`;
|
|
11
|
+
}
|
|
12
|
+
return response?.message ?? `Failed to execute ${action} in ${toolName}`;
|
|
13
|
+
}
|
|
1
14
|
export class BaseTool {
|
|
2
15
|
bridge;
|
|
3
16
|
constructor(bridge) {
|
|
@@ -16,22 +29,7 @@ export class BaseTool {
|
|
|
16
29
|
...params
|
|
17
30
|
}, options);
|
|
18
31
|
if (!response || response.success === false) {
|
|
19
|
-
|
|
20
|
-
if (response?.error) {
|
|
21
|
-
if (typeof response.error === 'string') {
|
|
22
|
-
errorMessage = response.error;
|
|
23
|
-
}
|
|
24
|
-
else if (typeof response.error === 'object') {
|
|
25
|
-
const errObj = response.error;
|
|
26
|
-
if (errObj.message) {
|
|
27
|
-
errorMessage = `${errObj.message} (Code: ${errObj.code || 'UNKNOWN'})`;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
else if (response?.message) {
|
|
32
|
-
errorMessage = response.message;
|
|
33
|
-
}
|
|
34
|
-
throw new Error(errorMessage);
|
|
32
|
+
throw new Error(formatFailureMessage(action, toolName, response));
|
|
35
33
|
}
|
|
36
34
|
return (response.result ?? response);
|
|
37
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-tool.js","sourceRoot":"","sources":["../../src/tools/base-tool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"base-tool.js","sourceRoot":"","sources":["../../src/tools/base-tool.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAInD,SAAS,oBAAoB,CAAC,MAAc,EAAE,QAAgB,EAAE,QAAyB;IACrF,IAAI,OAAO,QAAQ,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,QAAQ,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC1E,MAAM,IAAI,GAAG,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC3F,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;YACrB,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,WAAW,IAAI,GAAG,CAAC;IACvD,CAAC;IAED,OAAO,QAAQ,EAAE,OAAO,IAAI,qBAAqB,MAAM,OAAO,QAAQ,EAAE,CAAC;AAC7E,CAAC;AAED,MAAM,OAAgB,QAAQ;IACJ;IAAtB,YAAsB,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAI,CAAC;IAE/C,mBAAmB;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAC7C,CAAC;IAES,KAAK,CAAC,WAAW,CAAc,MAAc,EAAE,MAA+B,EAAE,WAAmB,cAAc,EAAE,OAAgC;QACzJ,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE9C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE;YAC9D,MAAM;YACN,GAAG,MAAM;SACZ,EAAE,OAAO,CAAC,CAAC;QAEZ,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAM,CAAC;IAC9C,CAAC;IAES,KAAK,CAAC,qBAAqB,CAAc,MAAc,EAAE,SAAkC,EAAE,EAAE,OAAwF;QAC7L,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,UAAU,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;CACJ"}
|
|
@@ -1,10 +1,25 @@
|
|
|
1
1
|
export interface ToolDefinition {
|
|
2
|
-
category?: 'core' | 'world' | '
|
|
2
|
+
category?: 'core' | 'world' | 'gameplay' | 'utility';
|
|
3
3
|
name: string;
|
|
4
4
|
description: string;
|
|
5
5
|
inputSchema: Record<string, unknown>;
|
|
6
6
|
outputSchema?: Record<string, unknown>;
|
|
7
7
|
[key: string]: unknown;
|
|
8
8
|
}
|
|
9
|
+
export declare const MATERIAL_AUTHORING_ACTIONS: readonly ["create_material", "set_blend_mode", "set_shading_model", "set_material_domain", "add_texture_sample", "add_texture_coordinate", "add_scalar_parameter", "add_vector_parameter", "add_static_switch_parameter", "add_math_node", "add_world_position", "add_vertex_normal", "add_pixel_depth", "add_fresnel", "add_reflection_vector", "add_panner", "add_rotator", "add_noise", "add_voronoi", "add_if", "add_switch", "add_custom_expression", "connect_nodes", "connect_material_pins", "disconnect_nodes", "break_material_connections", "create_material_function", "add_function_input", "add_function_output", "use_material_function", "get_material_function_info", "create_material_instance", "set_scalar_parameter_value", "set_vector_parameter_value", "set_texture_parameter_value", "create_landscape_material", "create_decal_material", "create_post_process_material", "add_landscape_layer", "configure_layer_blend", "compile_material", "get_material_info", "find_node", "get_node_connections", "get_node_properties", "set_static_switch_parameter_value", "delete_node", "update_custom_expression", "get_node_chain", "get_connected_subgraph", "add_material_node", "rebuild_material", "set_material_parameter", "get_material_node_details", "remove_material_node", "set_two_sided"];
|
|
10
|
+
export declare const TEXTURE_ACTIONS: readonly ["create_noise_texture", "create_gradient_texture", "create_pattern_texture", "create_normal_from_height", "create_ao_from_mesh", "resize_texture", "adjust_levels", "adjust_curves", "blur", "sharpen", "invert", "desaturate", "channel_pack", "channel_extract", "combine_textures", "set_compression_settings", "set_texture_group", "set_lod_bias", "configure_virtual_texture", "set_streaming_priority", "get_texture_info"];
|
|
11
|
+
export declare const SKELETON_ACTIONS: readonly ["create_skeleton", "add_bone", "remove_bone", "rename_bone", "set_bone_transform", "set_bone_parent", "create_virtual_bone", "create_socket", "configure_socket", "auto_skin_weights", "set_vertex_weights", "normalize_weights", "prune_weights", "copy_weights", "mirror_weights", "create_physics_asset", "add_physics_body", "configure_physics_body", "add_physics_constraint", "configure_constraint_limits", "bind_cloth_to_skeletal_mesh", "assign_cloth_asset_to_mesh", "create_morph_target", "set_morph_target_deltas", "import_morph_targets", "get_skeleton_info", "list_bones", "list_sockets", "list_physics_bodies"];
|
|
12
|
+
export declare const LIGHTING_ACTIONS: readonly ["spawn_light", "create_light", "spawn_sky_light", "create_sky_light", "ensure_single_sky_light", "create_lightmass_volume", "create_lighting_enabled_level", "create_dynamic_light", "setup_global_illumination", "configure_shadows", "set_exposure", "set_ambient_occlusion", "setup_volumetric_fog", "build_lighting", "list_light_types"];
|
|
13
|
+
export declare const SPLINE_ACTIONS: readonly ["create_spline_actor", "add_spline_point", "remove_spline_point", "set_spline_point_position", "set_spline_point_tangents", "set_spline_point_rotation", "set_spline_point_scale", "set_spline_type", "create_spline_mesh_component", "set_spline_mesh_asset", "configure_spline_mesh_axis", "set_spline_mesh_material", "scatter_meshes_along_spline", "configure_mesh_spacing", "configure_mesh_randomization", "create_road_spline", "create_river_spline", "create_fence_spline", "create_wall_spline", "create_cable_spline", "create_pipe_spline", "get_splines_info"];
|
|
14
|
+
export declare const PHASE_28_ENVIRONMENT_ACTIONS: readonly ["import_heightmap", "export_heightmap", "create_landscape_layer_info", "configure_landscape_material", "configure_landscape_splines", "configure_landscape_lod", "create_landscape_streaming_proxy", "create_foliage_type", "configure_foliage_mesh", "configure_foliage_placement", "configure_foliage_lod", "configure_foliage_collision", "configure_foliage_culling", "paint_foliage_instances", "remove_foliage_instances", "configure_sky_atmosphere", "configure_sky_light", "configure_directional_light_atmosphere", "configure_exponential_height_fog", "configure_volumetric_cloud", "create_weather_system", "configure_rain_particles", "configure_snow_particles", "configure_wind", "configure_lightning", "create_time_of_day_system", "configure_sun_position", "configure_light_color_curve", "configure_sky_color_curve", "create_water_body_ocean", "create_water_body_lake", "create_water_body_river", "create_water_body_custom", "configure_water_waves", "configure_water_material", "configure_water_collision", "create_buoyancy_component"];
|
|
15
|
+
export declare const PERFORMANCE_ACTIONS: readonly ["start_profiling", "stop_profiling", "run_benchmark", "show_stats", "generate_memory_report", "set_scalability", "set_resolution_scale", "set_vsync", "set_frame_rate_limit", "enable_gpu_timing", "configure_texture_streaming", "configure_lod", "apply_baseline_settings", "optimize_draw_calls", "merge_actors", "configure_occlusion_culling", "optimize_shaders", "configure_nanite", "configure_world_partition"];
|
|
16
|
+
export declare const BEHAVIOR_TREE_ACTIONS: readonly ["create", "add_node", "connect_nodes", "remove_node", "break_connections", "set_node_properties", "add_subnode", "get_tree"];
|
|
17
|
+
export declare const NAVIGATION_ACTIONS: readonly ["configure_nav_mesh_settings", "set_nav_agent_properties", "rebuild_navigation", "create_nav_modifier_component", "set_nav_area_class", "configure_nav_area_cost", "create_nav_link_proxy", "configure_nav_link", "set_nav_link_type", "create_smart_link", "configure_smart_link_behavior", "get_navigation_info"];
|
|
18
|
+
export declare const WIDGET_AUTHORING_ACTIONS: readonly ["create_widget_blueprint", "set_widget_parent_class", "add_canvas_panel", "add_horizontal_box", "add_vertical_box", "add_overlay", "add_grid_panel", "add_uniform_grid", "add_wrap_box", "add_scroll_box", "add_size_box", "add_scale_box", "add_border", "add_text_block", "add_rich_text_block", "add_image", "add_button", "add_check_box", "add_slider", "add_progress_bar", "add_text_input", "add_combo_box", "add_spin_box", "add_list_view", "add_tree_view", "set_anchor", "set_alignment", "set_position", "set_size", "set_padding", "set_z_order", "set_render_transform", "set_visibility", "set_style", "set_clipping", "create_property_binding", "bind_text", "bind_visibility", "bind_color", "bind_enabled", "bind_on_clicked", "bind_on_hovered", "bind_on_value_changed", "create_widget_animation", "add_animation_track", "add_animation_keyframe", "set_animation_loop", "create_main_menu", "create_pause_menu", "create_settings_menu", "create_loading_screen", "create_hud_widget", "add_health_bar", "add_ammo_counter", "add_minimap", "add_crosshair", "add_compass", "add_interaction_prompt", "add_objective_tracker", "add_damage_indicator", "create_inventory_ui", "create_dialog_widget", "create_radial_menu", "get_widget_info", "preview_widget"];
|
|
19
|
+
export declare const SESSION_ACTIONS: readonly ["configure_local_session_settings", "configure_session_interface", "configure_split_screen", "set_split_screen_type", "add_local_player", "remove_local_player", "configure_lan_play", "host_lan_server", "join_lan_server", "enable_voice_chat", "configure_voice_settings", "set_voice_channel", "mute_player", "set_voice_attenuation", "configure_push_to_talk", "get_sessions_info"];
|
|
20
|
+
export declare const GAME_FRAMEWORK_ACTIONS: readonly ["create_game_mode", "create_game_state", "create_player_controller", "create_player_state", "create_game_instance", "create_hud_class", "set_default_pawn_class", "set_player_controller_class", "set_game_state_class", "set_player_state_class", "configure_game_rules", "setup_match_states", "configure_round_system", "configure_team_system", "configure_scoring_system", "configure_spawn_system", "configure_player_start", "set_respawn_rules", "configure_spectating", "get_game_framework_info"];
|
|
21
|
+
export declare const INPUT_ACTIONS: readonly ["create_input_action", "create_input_mapping_context", "add_mapping", "remove_mapping", "add_legacy_action_mapping", "remove_legacy_action_mapping", "add_legacy_axis_mapping", "remove_legacy_axis_mapping", "map_input_action", "set_input_trigger", "set_input_modifier", "enable_input_mapping", "disable_input_action", "get_input_info"];
|
|
22
|
+
export declare const VOLUME_ACTIONS: readonly ["create_trigger_volume", "add_trigger_volume", "create_trigger_box", "create_trigger_sphere", "create_trigger_capsule", "create_blocking_volume", "add_blocking_volume", "create_kill_z_volume", "add_kill_z_volume", "create_pain_causing_volume", "create_physics_volume", "add_physics_volume", "create_audio_volume", "create_reverb_volume", "create_cull_distance_volume", "add_cull_distance_volume", "create_precomputed_visibility_volume", "create_lightmass_importance_volume", "create_nav_mesh_bounds_volume", "create_nav_modifier_volume", "create_camera_blocking_volume", "create_post_process_volume", "add_post_process_volume", "set_volume_extent", "set_volume_bounds", "set_volume_properties", "remove_volume", "get_volumes_info"];
|
|
23
|
+
export declare const PCG_ACTIONS: readonly ["create_pcg_graph", "create_pcg_subgraph", "add_pcg_node", "connect_pcg_pins", "set_pcg_node_settings", "add_landscape_data_node", "add_spline_data_node", "add_volume_data_node", "add_actor_data_node", "add_texture_data_node", "add_surface_sampler", "add_mesh_sampler", "add_spline_sampler", "add_volume_sampler", "add_bounds_modifier", "add_density_filter", "add_height_filter", "add_slope_filter", "add_distance_filter", "add_bounds_filter", "add_self_pruning", "add_transform_points", "add_project_to_surface", "add_copy_points", "add_merge_points", "add_static_mesh_spawner", "add_actor_spawner", "add_spline_spawner", "execute_pcg_graph", "set_pcg_partition_grid_size"];
|
|
9
24
|
export declare const consolidatedToolDefinitions: ToolDefinition[];
|
|
10
25
|
//# sourceMappingURL=consolidated-tool-definitions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consolidated-tool-definitions.d.ts","sourceRoot":"","sources":["../../src/tools/consolidated-tool-definitions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"consolidated-tool-definitions.d.ts","sourceRoot":"","sources":["../../src/tools/consolidated-tool-definitions.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAUD,eAAO,MAAM,0BAA0B,+vCAmB7B,CAAC;AAEX,eAAO,MAAM,eAAe,8aAOlB,CAAC;AAEX,eAAO,MAAM,gBAAgB,gnBAUnB,CAAC;AAEX,eAAO,MAAM,gBAAgB,yVAKnB,CAAC;AAEX,eAAO,MAAM,cAAc,wjBAOjB,CAAC;AAEX,eAAO,MAAM,4BAA4B,mhCAa/B,CAAC;AAEX,eAAO,MAAM,mBAAmB,oaAMtB,CAAC;AAEX,eAAO,MAAM,qBAAqB,wIAGxB,CAAC;AAEX,eAAO,MAAM,kBAAkB,+TAKrB,CAAC;AAEX,eAAO,MAAM,wBAAwB,ouCAe3B,CAAC;AAEX,eAAO,MAAM,eAAe,qYAMlB,CAAC;AAEX,eAAO,MAAM,sBAAsB,ufASzB,CAAC;AAEX,eAAO,MAAM,aAAa,0VAMhB,CAAC;AAEX,eAAO,MAAM,cAAc,uuBASjB,CAAC;AAEX,eAAO,MAAM,WAAW,8qBAQd,CAAC;AAIX,eAAO,MAAM,2BAA2B,EAAE,cAAc,EAy4GvD,CAAC"}
|