unreal-engine-mcp-server 0.5.5 → 0.5.6
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 +350 -0
- package/dist/automation/bridge.d.ts.map +1 -1
- package/dist/automation/bridge.js +5 -4
- package/dist/automation/bridge.js.map +1 -1
- package/dist/automation/handshake.js.map +1 -1
- package/dist/automation/types.d.ts +7 -0
- package/dist/automation/types.d.ts.map +1 -1
- package/dist/cli.js +2 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/graphql/resolvers.d.ts +174 -69
- package/dist/graphql/resolvers.d.ts.map +1 -1
- package/dist/graphql/resolvers.js +53 -38
- package/dist/graphql/resolvers.js.map +1 -1
- package/dist/graphql/schema.js.map +1 -1
- package/dist/graphql/server.js.map +1 -1
- package/dist/handlers/resource-handlers.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -6
- package/dist/index.js.map +1 -1
- package/dist/resources/actors.d.ts +7 -4
- package/dist/resources/actors.d.ts.map +1 -1
- package/dist/resources/actors.js +15 -12
- package/dist/resources/actors.js.map +1 -1
- package/dist/resources/assets.d.ts +43 -2
- package/dist/resources/assets.d.ts.map +1 -1
- package/dist/resources/assets.js +16 -9
- package/dist/resources/assets.js.map +1 -1
- package/dist/resources/levels.d.ts.map +1 -1
- package/dist/resources/levels.js +7 -5
- package/dist/resources/levels.js.map +1 -1
- package/dist/schemas/index.d.ts +4 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +4 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/parser.d.ts +20 -0
- package/dist/schemas/parser.d.ts.map +1 -0
- package/dist/schemas/parser.js +61 -0
- package/dist/schemas/parser.js.map +1 -0
- package/dist/schemas/primitives.d.ts +221 -0
- package/dist/schemas/primitives.d.ts.map +1 -0
- package/dist/schemas/primitives.js +115 -0
- package/dist/schemas/primitives.js.map +1 -0
- package/dist/schemas/responses.d.ts +362 -0
- package/dist/schemas/responses.d.ts.map +1 -0
- package/dist/schemas/responses.js +252 -0
- package/dist/schemas/responses.js.map +1 -0
- package/dist/server/tool-registry.d.ts.map +1 -1
- package/dist/server/tool-registry.js +22 -17
- package/dist/server/tool-registry.js.map +1 -1
- package/dist/services/health-monitor.d.ts +1 -1
- package/dist/services/health-monitor.d.ts.map +1 -1
- package/dist/services/health-monitor.js +4 -3
- package/dist/services/health-monitor.js.map +1 -1
- package/dist/services/metrics-server.js.map +1 -1
- package/dist/tools/actors.d.ts +27 -27
- package/dist/tools/actors.d.ts.map +1 -1
- package/dist/tools/actors.js +11 -9
- package/dist/tools/actors.js.map +1 -1
- package/dist/tools/animation.d.ts +15 -23
- package/dist/tools/animation.d.ts.map +1 -1
- package/dist/tools/animation.js +15 -11
- package/dist/tools/animation.js.map +1 -1
- package/dist/tools/assets.d.ts.map +1 -1
- package/dist/tools/assets.js +18 -12
- package/dist/tools/assets.js.map +1 -1
- package/dist/tools/audio.d.ts +10 -10
- package/dist/tools/audio.d.ts.map +1 -1
- package/dist/tools/base-tool.js.map +1 -1
- package/dist/tools/behavior-tree.d.ts +24 -24
- package/dist/tools/behavior-tree.d.ts.map +1 -1
- package/dist/tools/behavior-tree.js.map +1 -1
- package/dist/tools/blueprint.d.ts +14 -3
- package/dist/tools/blueprint.d.ts.map +1 -1
- package/dist/tools/blueprint.js +1 -1
- package/dist/tools/blueprint.js.map +1 -1
- package/dist/tools/consolidated-tool-definitions.d.ts +32 -32
- package/dist/tools/consolidated-tool-handlers.d.ts +1 -1
- package/dist/tools/consolidated-tool-handlers.d.ts.map +1 -1
- package/dist/tools/consolidated-tool-handlers.js +26 -21
- package/dist/tools/consolidated-tool-handlers.js.map +1 -1
- package/dist/tools/debug.d.ts +25 -7
- package/dist/tools/debug.d.ts.map +1 -1
- package/dist/tools/debug.js.map +1 -1
- package/dist/tools/dynamic-handler-registry.d.ts +1 -1
- package/dist/tools/dynamic-handler-registry.d.ts.map +1 -1
- package/dist/tools/editor.d.ts.map +1 -1
- package/dist/tools/editor.js +7 -5
- package/dist/tools/editor.js.map +1 -1
- package/dist/tools/engine.d.ts +1 -1
- package/dist/tools/engine.d.ts.map +1 -1
- package/dist/tools/engine.js +4 -2
- package/dist/tools/engine.js.map +1 -1
- package/dist/tools/environment.d.ts.map +1 -1
- package/dist/tools/environment.js +2 -1
- package/dist/tools/environment.js.map +1 -1
- package/dist/tools/foliage.js +8 -8
- package/dist/tools/foliage.js.map +1 -1
- package/dist/tools/handlers/actor-handlers.d.ts +2 -1
- package/dist/tools/handlers/actor-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/actor-handlers.js +51 -29
- package/dist/tools/handlers/actor-handlers.js.map +1 -1
- package/dist/tools/handlers/animation-handlers.d.ts +2 -1
- package/dist/tools/handlers/animation-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/animation-handlers.js +74 -67
- package/dist/tools/handlers/animation-handlers.js.map +1 -1
- package/dist/tools/handlers/argument-helper.d.ts +24 -4
- package/dist/tools/handlers/argument-helper.d.ts.map +1 -1
- package/dist/tools/handlers/argument-helper.js +139 -4
- package/dist/tools/handlers/argument-helper.js.map +1 -1
- package/dist/tools/handlers/asset-handlers.d.ts +2 -1
- package/dist/tools/handlers/asset-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/asset-handlers.js +151 -94
- package/dist/tools/handlers/asset-handlers.js.map +1 -1
- package/dist/tools/handlers/audio-handlers.d.ts +2 -1
- package/dist/tools/handlers/audio-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/audio-handlers.js +82 -80
- package/dist/tools/handlers/audio-handlers.js.map +1 -1
- package/dist/tools/handlers/blueprint-handlers.d.ts +3 -5
- package/dist/tools/handlers/blueprint-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/blueprint-handlers.js +149 -142
- package/dist/tools/handlers/blueprint-handlers.js.map +1 -1
- package/dist/tools/handlers/common-handlers.d.ts +2 -3
- package/dist/tools/handlers/common-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/common-handlers.js.map +1 -1
- package/dist/tools/handlers/effect-handlers.d.ts +2 -1
- package/dist/tools/handlers/effect-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/effect-handlers.js +70 -68
- package/dist/tools/handlers/effect-handlers.js.map +1 -1
- package/dist/tools/handlers/environment-handlers.d.ts +2 -1
- package/dist/tools/handlers/environment-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/environment-handlers.js +86 -74
- package/dist/tools/handlers/environment-handlers.js.map +1 -1
- package/dist/tools/handlers/graph-handlers.d.ts +1 -1
- package/dist/tools/handlers/graph-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/graph-handlers.js +2 -1
- package/dist/tools/handlers/graph-handlers.js.map +1 -1
- package/dist/tools/handlers/input-handlers.d.ts +2 -5
- package/dist/tools/handlers/input-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/input-handlers.js +5 -4
- package/dist/tools/handlers/input-handlers.js.map +1 -1
- package/dist/tools/handlers/inspect-handlers.d.ts +2 -1
- package/dist/tools/handlers/inspect-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/inspect-handlers.js +61 -37
- package/dist/tools/handlers/inspect-handlers.js.map +1 -1
- package/dist/tools/handlers/level-handlers.d.ts +2 -2
- package/dist/tools/handlers/level-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/level-handlers.js +43 -39
- package/dist/tools/handlers/level-handlers.js.map +1 -1
- package/dist/tools/handlers/lighting-handlers.d.ts +12 -1
- package/dist/tools/handlers/lighting-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/lighting-handlers.js +68 -47
- package/dist/tools/handlers/lighting-handlers.js.map +1 -1
- package/dist/tools/handlers/performance-handlers.d.ts +2 -1
- package/dist/tools/handlers/performance-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/performance-handlers.js +43 -41
- package/dist/tools/handlers/performance-handlers.js.map +1 -1
- package/dist/tools/handlers/system-handlers.d.ts +3 -2
- package/dist/tools/handlers/system-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/system-handlers.js +91 -53
- package/dist/tools/handlers/system-handlers.js.map +1 -1
- package/dist/tools/introspection.d.ts +14 -14
- package/dist/tools/introspection.d.ts.map +1 -1
- package/dist/tools/introspection.js +54 -45
- package/dist/tools/introspection.js.map +1 -1
- package/dist/tools/landscape.js +12 -12
- package/dist/tools/landscape.js.map +1 -1
- package/dist/tools/level.d.ts.map +1 -1
- package/dist/tools/level.js +3 -2
- package/dist/tools/level.js.map +1 -1
- package/dist/tools/lighting.d.ts +32 -59
- package/dist/tools/lighting.d.ts.map +1 -1
- package/dist/tools/lighting.js +53 -18
- package/dist/tools/lighting.js.map +1 -1
- package/dist/tools/logs.d.ts.map +1 -1
- package/dist/tools/logs.js +2 -1
- package/dist/tools/logs.js.map +1 -1
- package/dist/tools/materials.d.ts +42 -14
- package/dist/tools/materials.d.ts.map +1 -1
- package/dist/tools/materials.js +12 -8
- package/dist/tools/materials.js.map +1 -1
- package/dist/tools/niagara.d.ts +63 -39
- package/dist/tools/niagara.d.ts.map +1 -1
- package/dist/tools/niagara.js +36 -28
- package/dist/tools/niagara.js.map +1 -1
- package/dist/tools/performance.d.ts +12 -11
- package/dist/tools/performance.d.ts.map +1 -1
- package/dist/tools/performance.js +3 -2
- package/dist/tools/performance.js.map +1 -1
- package/dist/tools/physics.d.ts +37 -20
- package/dist/tools/physics.d.ts.map +1 -1
- package/dist/tools/physics.js +28 -23
- package/dist/tools/physics.js.map +1 -1
- package/dist/tools/sequence.d.ts +1 -1
- package/dist/tools/sequence.d.ts.map +1 -1
- package/dist/tools/sequence.js +5 -3
- package/dist/tools/sequence.js.map +1 -1
- package/dist/tools/ui.d.ts +11 -11
- package/dist/tools/ui.d.ts.map +1 -1
- package/dist/tools/ui.js +4 -2
- package/dist/tools/ui.js.map +1 -1
- package/dist/types/handler-types.d.ts +112 -3
- package/dist/types/handler-types.d.ts.map +1 -1
- package/dist/types/tool-interfaces.d.ts +39 -21
- package/dist/types/tool-interfaces.d.ts.map +1 -1
- package/dist/types/tool-types.d.ts +8 -8
- package/dist/types/tool-types.d.ts.map +1 -1
- package/dist/unreal-bridge.d.ts +7 -6
- package/dist/unreal-bridge.d.ts.map +1 -1
- package/dist/unreal-bridge.js +8 -3
- package/dist/unreal-bridge.js.map +1 -1
- package/dist/utils/elicitation.d.ts +2 -5
- package/dist/utils/elicitation.d.ts.map +1 -1
- package/dist/utils/elicitation.js +3 -2
- package/dist/utils/elicitation.js.map +1 -1
- package/dist/utils/ini-reader.d.ts +1 -1
- package/dist/utils/ini-reader.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +4 -4
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/normalize.d.ts +2 -2
- package/dist/utils/normalize.d.ts.map +1 -1
- package/dist/utils/normalize.js +4 -3
- package/dist/utils/normalize.js.map +1 -1
- package/dist/utils/response-factory.d.ts +2 -2
- package/dist/utils/response-factory.d.ts.map +1 -1
- package/dist/utils/response-factory.js.map +1 -1
- package/dist/utils/response-validator.d.ts +4 -4
- package/dist/utils/response-validator.d.ts.map +1 -1
- package/dist/utils/response-validator.js +31 -23
- package/dist/utils/response-validator.js.map +1 -1
- package/dist/utils/unreal-command-queue.d.ts +2 -2
- package/dist/utils/unreal-command-queue.d.ts.map +1 -1
- package/dist/utils/unreal-command-queue.js +4 -3
- package/dist/utils/unreal-command-queue.js.map +1 -1
- package/dist/utils/validation.d.ts +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/wasm/index.d.ts +2 -2
- package/dist/wasm/index.d.ts.map +1 -1
- package/dist/wasm/index.js +11 -7
- package/dist/wasm/index.js.map +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
|
@@ -3,20 +3,22 @@ const VALID_PROFILING_TYPES = ['cpu', 'gpu', 'memory', 'renderthread', 'all', 'f
|
|
|
3
3
|
const MIN_SCALABILITY_LEVEL = 0;
|
|
4
4
|
const MAX_SCALABILITY_LEVEL = 4;
|
|
5
5
|
export async function handlePerformanceTools(action, args, tools) {
|
|
6
|
+
const argsTyped = args;
|
|
7
|
+
const argsRecord = args;
|
|
6
8
|
switch (action) {
|
|
7
9
|
case 'start_profiling': {
|
|
8
|
-
const profilingType =
|
|
10
|
+
const profilingType = argsTyped.type ? String(argsTyped.type).toLowerCase() : 'all';
|
|
9
11
|
if (!VALID_PROFILING_TYPES.includes(profilingType)) {
|
|
10
12
|
return {
|
|
11
13
|
success: false,
|
|
12
14
|
error: 'INVALID_PROFILING_TYPE',
|
|
13
|
-
message: `Invalid profiling type: '${
|
|
15
|
+
message: `Invalid profiling type: '${argsTyped.type}'. Must be one of: ${VALID_PROFILING_TYPES.join(', ')}`,
|
|
14
16
|
action: 'start_profiling'
|
|
15
17
|
};
|
|
16
18
|
}
|
|
17
19
|
return cleanObject(await tools.performanceTools.startProfiling({
|
|
18
20
|
type: profilingType,
|
|
19
|
-
duration:
|
|
21
|
+
duration: argsTyped.duration
|
|
20
22
|
}));
|
|
21
23
|
}
|
|
22
24
|
case 'stop_profiling': {
|
|
@@ -24,25 +26,25 @@ export async function handlePerformanceTools(action, args, tools) {
|
|
|
24
26
|
}
|
|
25
27
|
case 'run_benchmark': {
|
|
26
28
|
return cleanObject(await tools.performanceTools.runBenchmark({
|
|
27
|
-
duration:
|
|
28
|
-
outputPath:
|
|
29
|
+
duration: argsTyped.duration,
|
|
30
|
+
outputPath: argsTyped.outputPath
|
|
29
31
|
}));
|
|
30
32
|
}
|
|
31
33
|
case 'show_fps': {
|
|
32
34
|
return cleanObject(await tools.performanceTools.showFPS({
|
|
33
|
-
enabled:
|
|
34
|
-
verbose:
|
|
35
|
+
enabled: argsTyped.enabled !== false,
|
|
36
|
+
verbose: argsTyped.verbose
|
|
35
37
|
}));
|
|
36
38
|
}
|
|
37
39
|
case 'show_stats': {
|
|
38
40
|
return cleanObject(await tools.performanceTools.showStats({
|
|
39
|
-
category:
|
|
40
|
-
enabled:
|
|
41
|
+
category: argsTyped.category || argsTyped.type || 'Unit',
|
|
42
|
+
enabled: argsTyped.enabled !== false
|
|
41
43
|
}));
|
|
42
44
|
}
|
|
43
45
|
case 'set_scalability': {
|
|
44
|
-
const category =
|
|
45
|
-
let level = typeof
|
|
46
|
+
const category = argsTyped.category || 'ViewDistance';
|
|
47
|
+
let level = typeof argsTyped.level === 'number' ? argsTyped.level : 3;
|
|
46
48
|
level = Math.max(MIN_SCALABILITY_LEVEL, Math.min(MAX_SCALABILITY_LEVEL, level));
|
|
47
49
|
return cleanObject(await tools.performanceTools.setScalability({
|
|
48
50
|
category,
|
|
@@ -51,56 +53,56 @@ export async function handlePerformanceTools(action, args, tools) {
|
|
|
51
53
|
}
|
|
52
54
|
case 'set_resolution_scale': {
|
|
53
55
|
return cleanObject(await tools.performanceTools.setResolutionScale({
|
|
54
|
-
scale:
|
|
56
|
+
scale: argsTyped.scale
|
|
55
57
|
}));
|
|
56
58
|
}
|
|
57
59
|
case 'set_vsync': {
|
|
58
60
|
return cleanObject(await tools.performanceTools.setVSync({
|
|
59
|
-
enabled:
|
|
61
|
+
enabled: argsTyped.enabled !== false
|
|
60
62
|
}));
|
|
61
63
|
}
|
|
62
64
|
case 'set_frame_rate_limit': {
|
|
63
65
|
return cleanObject(await tools.performanceTools.setFrameRateLimit({
|
|
64
|
-
maxFPS:
|
|
66
|
+
maxFPS: argsTyped.maxFPS
|
|
65
67
|
}));
|
|
66
68
|
}
|
|
67
69
|
case 'enable_gpu_timing': {
|
|
68
70
|
return cleanObject(await tools.performanceTools.enableGPUTiming({
|
|
69
|
-
enabled:
|
|
71
|
+
enabled: argsTyped.enabled !== false
|
|
70
72
|
}));
|
|
71
73
|
}
|
|
72
74
|
case 'generate_memory_report': {
|
|
73
75
|
return cleanObject(await tools.performanceTools.generateMemoryReport({
|
|
74
|
-
detailed:
|
|
75
|
-
outputPath:
|
|
76
|
+
detailed: argsTyped.detailed,
|
|
77
|
+
outputPath: argsTyped.outputPath
|
|
76
78
|
}));
|
|
77
79
|
}
|
|
78
80
|
case 'configure_texture_streaming': {
|
|
79
81
|
return cleanObject(await tools.performanceTools.configureTextureStreaming({
|
|
80
|
-
enabled:
|
|
81
|
-
poolSize:
|
|
82
|
-
boostPlayerLocation:
|
|
82
|
+
enabled: argsTyped.enabled !== false,
|
|
83
|
+
poolSize: argsRecord.poolSize,
|
|
84
|
+
boostPlayerLocation: argsRecord.boostPlayerLocation
|
|
83
85
|
}));
|
|
84
86
|
}
|
|
85
87
|
case 'configure_lod': {
|
|
86
88
|
return cleanObject(await tools.performanceTools.configureLOD({
|
|
87
|
-
forceLOD:
|
|
88
|
-
lodBias:
|
|
89
|
-
distanceScale:
|
|
89
|
+
forceLOD: argsRecord.forceLOD,
|
|
90
|
+
lodBias: argsRecord.lodBias,
|
|
91
|
+
distanceScale: argsRecord.distanceScale
|
|
90
92
|
}));
|
|
91
93
|
}
|
|
92
94
|
case 'apply_baseline_settings': {
|
|
93
95
|
return cleanObject(await tools.performanceTools.applyBaselinePerformanceSettings({
|
|
94
|
-
distanceScale:
|
|
95
|
-
skeletalBias:
|
|
96
|
-
vsync:
|
|
97
|
-
maxFPS:
|
|
98
|
-
hzb:
|
|
96
|
+
distanceScale: argsRecord.distanceScale,
|
|
97
|
+
skeletalBias: argsRecord.skeletalBias,
|
|
98
|
+
vsync: argsRecord.vsync,
|
|
99
|
+
maxFPS: argsTyped.maxFPS,
|
|
100
|
+
hzb: argsRecord.hzb
|
|
99
101
|
}));
|
|
100
102
|
}
|
|
101
103
|
case 'optimize_draw_calls':
|
|
102
104
|
case 'merge_actors': {
|
|
103
|
-
const mergeParams = action === 'merge_actors' ? { ...
|
|
105
|
+
const mergeParams = action === 'merge_actors' ? { ...argsRecord, mergeActors: true } : argsRecord;
|
|
104
106
|
return cleanObject(await tools.performanceTools.optimizeDrawCalls({
|
|
105
107
|
enableInstancing: mergeParams.enableInstancing,
|
|
106
108
|
enableBatching: mergeParams.enableBatching,
|
|
@@ -110,30 +112,30 @@ export async function handlePerformanceTools(action, args, tools) {
|
|
|
110
112
|
}
|
|
111
113
|
case 'configure_occlusion_culling': {
|
|
112
114
|
return cleanObject(await tools.performanceTools.configureOcclusionCulling({
|
|
113
|
-
enabled:
|
|
114
|
-
method:
|
|
115
|
-
freezeRendering:
|
|
115
|
+
enabled: argsTyped.enabled !== false,
|
|
116
|
+
method: argsRecord.method,
|
|
117
|
+
freezeRendering: argsRecord.freezeRendering
|
|
116
118
|
}));
|
|
117
119
|
}
|
|
118
120
|
case 'optimize_shaders': {
|
|
119
121
|
return cleanObject(await tools.performanceTools.optimizeShaders({
|
|
120
|
-
compileOnDemand:
|
|
121
|
-
cacheShaders:
|
|
122
|
-
reducePermutations:
|
|
122
|
+
compileOnDemand: argsRecord.compileOnDemand,
|
|
123
|
+
cacheShaders: argsRecord.cacheShaders,
|
|
124
|
+
reducePermutations: argsRecord.reducePermutations
|
|
123
125
|
}));
|
|
124
126
|
}
|
|
125
127
|
case 'configure_nanite': {
|
|
126
128
|
return cleanObject(await tools.performanceTools.configureNanite({
|
|
127
|
-
enabled:
|
|
128
|
-
maxPixelsPerEdge:
|
|
129
|
-
streamingPoolSize:
|
|
129
|
+
enabled: argsTyped.enabled !== false,
|
|
130
|
+
maxPixelsPerEdge: argsRecord.maxPixelsPerEdge,
|
|
131
|
+
streamingPoolSize: argsRecord.streamingPoolSize
|
|
130
132
|
}));
|
|
131
133
|
}
|
|
132
134
|
case 'configure_world_partition': {
|
|
133
135
|
return cleanObject(await tools.performanceTools.configureWorldPartition({
|
|
134
|
-
enabled:
|
|
135
|
-
streamingDistance:
|
|
136
|
-
cellSize:
|
|
136
|
+
enabled: argsTyped.enabled !== false,
|
|
137
|
+
streamingDistance: argsRecord.streamingDistance,
|
|
138
|
+
cellSize: argsRecord.cellSize
|
|
137
139
|
}));
|
|
138
140
|
}
|
|
139
141
|
default:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"performance-handlers.js","sourceRoot":"","sources":["../../../src/tools/handlers/performance-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"performance-handlers.js","sourceRoot":"","sources":["../../../src/tools/handlers/performance-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ITools } from '../../types/tool-interfaces.js';
|
|
2
|
-
|
|
3
|
-
export declare function
|
|
2
|
+
import type { HandlerArgs } from '../../types/handler-types.js';
|
|
3
|
+
export declare function handleSystemTools(action: string, args: HandlerArgs, tools: ITools): Promise<Record<string, unknown>>;
|
|
4
|
+
export declare function handleConsoleCommand(args: HandlerArgs, tools: ITools): Promise<Record<string, unknown>>;
|
|
4
5
|
//# sourceMappingURL=system-handlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-handlers.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/system-handlers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"system-handlers.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/system-handlers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,8BAA8B,CAAC;AAsB5E,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8jB1H;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAoB7G"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { cleanObject } from '../../utils/safe-json.js';
|
|
2
2
|
import { executeAutomationRequest } from './common-handlers.js';
|
|
3
3
|
export async function handleSystemTools(action, args, tools) {
|
|
4
|
+
const argsTyped = args;
|
|
4
5
|
const sysAction = String(action || '').toLowerCase();
|
|
5
6
|
switch (sysAction) {
|
|
6
7
|
case 'show_fps':
|
|
7
|
-
await tools.systemTools.executeConsoleCommand(
|
|
8
|
-
return { success: true, message: `FPS display ${
|
|
8
|
+
await tools.systemTools.executeConsoleCommand(argsTyped.enabled !== false ? 'stat fps' : 'stat fps 0');
|
|
9
|
+
return { success: true, message: `FPS display ${argsTyped.enabled !== false ? 'enabled' : 'disabled'}`, action: 'show_fps' };
|
|
9
10
|
case 'profile': {
|
|
10
|
-
const rawType = typeof
|
|
11
|
+
const rawType = typeof argsTyped.profileType === 'string' ? argsTyped.profileType.trim() : '';
|
|
11
12
|
const profileKey = rawType ? rawType.toLowerCase() : 'cpu';
|
|
12
|
-
const enabled =
|
|
13
|
+
const enabled = argsTyped.enabled !== false;
|
|
13
14
|
const profileMap = {
|
|
14
15
|
cpu: 'stat unit',
|
|
15
16
|
gamethread: 'stat game',
|
|
@@ -24,9 +25,9 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
24
25
|
return {
|
|
25
26
|
success: false,
|
|
26
27
|
error: 'INVALID_PROFILE_TYPE',
|
|
27
|
-
message: `Unsupported profileType: ${rawType || String(
|
|
28
|
+
message: `Unsupported profileType: ${rawType || String(argsTyped.profileType ?? '')}`,
|
|
28
29
|
action: 'profile',
|
|
29
|
-
profileType:
|
|
30
|
+
profileType: argsTyped.profileType
|
|
30
31
|
};
|
|
31
32
|
}
|
|
32
33
|
await tools.systemTools.executeConsoleCommand(cmd);
|
|
@@ -38,8 +39,8 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
38
39
|
};
|
|
39
40
|
}
|
|
40
41
|
case 'show_stats': {
|
|
41
|
-
const category = typeof
|
|
42
|
-
const enabled =
|
|
42
|
+
const category = typeof argsTyped.category === 'string' ? argsTyped.category.trim() : 'Unit';
|
|
43
|
+
const enabled = argsTyped.enabled !== false;
|
|
43
44
|
const cmd = `stat ${category}`;
|
|
44
45
|
await tools.systemTools.executeConsoleCommand(cmd);
|
|
45
46
|
return {
|
|
@@ -51,7 +52,7 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
51
52
|
};
|
|
52
53
|
}
|
|
53
54
|
case 'set_quality': {
|
|
54
|
-
const quality =
|
|
55
|
+
const quality = argsTyped.level ?? 'medium';
|
|
55
56
|
let qVal;
|
|
56
57
|
if (typeof quality === 'number') {
|
|
57
58
|
qVal = quality;
|
|
@@ -61,7 +62,7 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
61
62
|
qVal = (qStr === 'high' || qStr === 'epic') ? 3 : (qStr === 'low' ? 0 : (qStr === 'cinematic' ? 4 : 1));
|
|
62
63
|
}
|
|
63
64
|
qVal = Math.max(0, Math.min(4, qVal));
|
|
64
|
-
const category = String(
|
|
65
|
+
const category = String(argsTyped.category || 'ViewDistance').toLowerCase();
|
|
65
66
|
let cvar = 'sg.ViewDistanceQuality';
|
|
66
67
|
if (category.includes('shadow'))
|
|
67
68
|
cvar = 'sg.ShadowQuality';
|
|
@@ -85,12 +86,14 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
85
86
|
return { success: true, message: `${category} quality derived from '${quality}' set to ${qVal} via ${cvar}`, action: 'set_quality' };
|
|
86
87
|
}
|
|
87
88
|
case 'execute_command':
|
|
88
|
-
return cleanObject(await tools.systemTools.executeConsoleCommand(
|
|
89
|
+
return cleanObject(await tools.systemTools.executeConsoleCommand(argsTyped.command ?? ''));
|
|
89
90
|
case 'create_widget': {
|
|
90
|
-
const name = typeof
|
|
91
|
-
const widgetPathRaw = typeof
|
|
91
|
+
const name = typeof argsTyped.name === 'string' ? argsTyped.name.trim() : '';
|
|
92
|
+
const widgetPathRaw = typeof argsTyped.widgetPath === 'string' ? argsTyped.widgetPath.trim() : '';
|
|
92
93
|
let effectiveName = name || `NewWidget_${Date.now()}`;
|
|
93
|
-
let effectivePath = typeof
|
|
94
|
+
let effectivePath = typeof argsTyped.savePath === 'string'
|
|
95
|
+
? argsTyped.savePath.trim()
|
|
96
|
+
: '';
|
|
94
97
|
if (!name && widgetPathRaw) {
|
|
95
98
|
const parts = widgetPathRaw.split('/').filter((p) => p.length > 0);
|
|
96
99
|
if (parts.length > 0) {
|
|
@@ -111,7 +114,7 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
111
114
|
try {
|
|
112
115
|
const res = await tools.uiTools.createWidget({
|
|
113
116
|
name: effectiveName,
|
|
114
|
-
type:
|
|
117
|
+
type: argsTyped.widgetType,
|
|
115
118
|
savePath: effectivePath
|
|
116
119
|
});
|
|
117
120
|
return cleanObject({
|
|
@@ -130,12 +133,17 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
130
133
|
}
|
|
131
134
|
}
|
|
132
135
|
case 'show_widget': {
|
|
133
|
-
const widgetId = typeof
|
|
136
|
+
const widgetId = typeof argsTyped.widgetId === 'string'
|
|
137
|
+
? argsTyped.widgetId.trim()
|
|
138
|
+
: '';
|
|
134
139
|
if (widgetId.toLowerCase() === 'notification') {
|
|
135
|
-
const
|
|
136
|
-
?
|
|
137
|
-
: '
|
|
138
|
-
const
|
|
140
|
+
const message = typeof argsTyped.message === 'string'
|
|
141
|
+
? argsTyped.message.trim()
|
|
142
|
+
: '';
|
|
143
|
+
const text = message.length > 0 ? message : 'Notification';
|
|
144
|
+
const duration = typeof argsTyped.duration === 'number'
|
|
145
|
+
? argsTyped.duration
|
|
146
|
+
: undefined;
|
|
139
147
|
try {
|
|
140
148
|
const res = await tools.uiTools.showNotification({ text, duration });
|
|
141
149
|
const ok = res && res.success !== false;
|
|
@@ -167,7 +175,8 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
167
175
|
};
|
|
168
176
|
}
|
|
169
177
|
}
|
|
170
|
-
const widgetPath = (typeof
|
|
178
|
+
const widgetPath = (typeof argsTyped.widgetPath === 'string' ? argsTyped.widgetPath.trim() : '')
|
|
179
|
+
|| (typeof argsTyped.name === 'string' ? argsTyped.name.trim() : '');
|
|
171
180
|
if (!widgetPath) {
|
|
172
181
|
return {
|
|
173
182
|
success: false,
|
|
@@ -180,9 +189,9 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
180
189
|
return cleanObject(await tools.uiTools.showWidget(widgetPath));
|
|
181
190
|
}
|
|
182
191
|
case 'add_widget_child': {
|
|
183
|
-
const widgetPath = typeof
|
|
184
|
-
const childClass = typeof
|
|
185
|
-
const parentName = typeof
|
|
192
|
+
const widgetPath = typeof argsTyped.widgetPath === 'string' ? argsTyped.widgetPath.trim() : '';
|
|
193
|
+
const childClass = typeof argsTyped.childClass === 'string' ? argsTyped.childClass.trim() : '';
|
|
194
|
+
const parentName = typeof argsTyped.parentName === 'string' ? argsTyped.parentName.trim() : undefined;
|
|
186
195
|
if (!widgetPath || !childClass) {
|
|
187
196
|
return {
|
|
188
197
|
success: false,
|
|
@@ -214,11 +223,15 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
214
223
|
}
|
|
215
224
|
}
|
|
216
225
|
case 'set_cvar': {
|
|
217
|
-
const
|
|
218
|
-
?
|
|
219
|
-
:
|
|
220
|
-
|
|
221
|
-
|
|
226
|
+
const nameVal = typeof argsTyped.name === 'string' && argsTyped.name.trim().length > 0
|
|
227
|
+
? argsTyped.name.trim()
|
|
228
|
+
: '';
|
|
229
|
+
const cvarVal = typeof argsTyped.cvar === 'string'
|
|
230
|
+
? argsTyped.cvar.trim()
|
|
231
|
+
: '';
|
|
232
|
+
const keyVal = typeof argsTyped.key === 'string' ? argsTyped.key.trim() : '';
|
|
233
|
+
const cmdVal = typeof argsTyped.command === 'string' ? argsTyped.command.trim() : '';
|
|
234
|
+
const rawInput = nameVal || cvarVal || keyVal || cmdVal;
|
|
222
235
|
const tokens = rawInput.split(/\s+/).filter(Boolean);
|
|
223
236
|
const rawName = tokens[0] ?? '';
|
|
224
237
|
if (!rawName) {
|
|
@@ -229,8 +242,8 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
229
242
|
action: 'set_cvar'
|
|
230
243
|
};
|
|
231
244
|
}
|
|
232
|
-
const value = (
|
|
233
|
-
?
|
|
245
|
+
const value = (argsTyped.value !== undefined && argsTyped.value !== null)
|
|
246
|
+
? argsTyped.value
|
|
234
247
|
: (tokens.length > 1 ? tokens.slice(1).join(' ') : '');
|
|
235
248
|
await tools.systemTools.executeConsoleCommand(`${rawName} ${value}`);
|
|
236
249
|
return {
|
|
@@ -242,9 +255,9 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
242
255
|
};
|
|
243
256
|
}
|
|
244
257
|
case 'get_project_settings': {
|
|
245
|
-
const section = typeof
|
|
246
|
-
?
|
|
247
|
-
:
|
|
258
|
+
const section = typeof argsTyped.category === 'string' && argsTyped.category.trim().length > 0
|
|
259
|
+
? argsTyped.category
|
|
260
|
+
: argsTyped.section;
|
|
248
261
|
const resp = await tools.systemTools.getProjectSettings(section);
|
|
249
262
|
if (resp && resp.success && (resp.settings || resp.data || resp.result)) {
|
|
250
263
|
return cleanObject({
|
|
@@ -257,7 +270,9 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
257
270
|
return cleanObject(resp);
|
|
258
271
|
}
|
|
259
272
|
case 'validate_assets': {
|
|
260
|
-
const paths = Array.isArray(
|
|
273
|
+
const paths = Array.isArray(argsTyped.paths)
|
|
274
|
+
? argsTyped.paths
|
|
275
|
+
: [];
|
|
261
276
|
if (!paths.length) {
|
|
262
277
|
return {
|
|
263
278
|
success: false,
|
|
@@ -272,7 +287,19 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
272
287
|
const assetPath = typeof rawPath === 'string' ? rawPath : String(rawPath ?? '');
|
|
273
288
|
try {
|
|
274
289
|
const res = await tools.assetTools.validate({ assetPath });
|
|
275
|
-
|
|
290
|
+
let errorStr = null;
|
|
291
|
+
if (res.error) {
|
|
292
|
+
if (typeof res.error === 'string') {
|
|
293
|
+
errorStr = res.error;
|
|
294
|
+
}
|
|
295
|
+
else if (typeof res.error === 'object' && res.error !== null && 'message' in res.error) {
|
|
296
|
+
errorStr = String(res.error.message);
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
errorStr = String(res.error);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
results.push({ assetPath, success: res.success, error: errorStr });
|
|
276
303
|
}
|
|
277
304
|
catch (error) {
|
|
278
305
|
results.push({
|
|
@@ -290,9 +317,15 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
290
317
|
};
|
|
291
318
|
}
|
|
292
319
|
case 'play_sound': {
|
|
293
|
-
const soundPath = typeof
|
|
294
|
-
|
|
295
|
-
|
|
320
|
+
const soundPath = typeof argsTyped.soundPath === 'string'
|
|
321
|
+
? argsTyped.soundPath.trim()
|
|
322
|
+
: '';
|
|
323
|
+
const volume = typeof argsTyped.volume === 'number'
|
|
324
|
+
? argsTyped.volume
|
|
325
|
+
: undefined;
|
|
326
|
+
const pitch = typeof argsTyped.pitch === 'number'
|
|
327
|
+
? argsTyped.pitch
|
|
328
|
+
: undefined;
|
|
296
329
|
if (typeof volume === 'number' && volume <= 0) {
|
|
297
330
|
return {
|
|
298
331
|
success: true,
|
|
@@ -397,8 +430,10 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
397
430
|
}
|
|
398
431
|
}
|
|
399
432
|
case 'screenshot': {
|
|
400
|
-
const includeMetadata =
|
|
401
|
-
const filenameArg = typeof
|
|
433
|
+
const includeMetadata = argsTyped.includeMetadata === true;
|
|
434
|
+
const filenameArg = typeof argsTyped.filename === 'string'
|
|
435
|
+
? argsTyped.filename
|
|
436
|
+
: undefined;
|
|
402
437
|
if (includeMetadata) {
|
|
403
438
|
const baseName = filenameArg && filenameArg.trim().length > 0
|
|
404
439
|
? filenameArg.trim()
|
|
@@ -414,7 +449,7 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
414
449
|
message: msg,
|
|
415
450
|
filename: baseName,
|
|
416
451
|
includeMetadata: true,
|
|
417
|
-
metadata:
|
|
452
|
+
metadata: argsTyped.metadata,
|
|
418
453
|
action: 'screenshot'
|
|
419
454
|
};
|
|
420
455
|
}
|
|
@@ -423,7 +458,7 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
423
458
|
message: `Metadata screenshot captured: ${baseName}`,
|
|
424
459
|
filename: baseName,
|
|
425
460
|
includeMetadata: true,
|
|
426
|
-
metadata:
|
|
461
|
+
metadata: argsTyped.metadata,
|
|
427
462
|
action: 'screenshot',
|
|
428
463
|
handled: true
|
|
429
464
|
};
|
|
@@ -439,9 +474,10 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
439
474
|
return {};
|
|
440
475
|
return { width: Number(m[1]), height: Number(m[2]) };
|
|
441
476
|
};
|
|
442
|
-
const parsed = parseResolution(
|
|
443
|
-
const
|
|
444
|
-
const
|
|
477
|
+
const parsed = parseResolution(argsTyped.resolution);
|
|
478
|
+
const argsRecord = argsTyped;
|
|
479
|
+
const width = Number.isFinite(Number(argsRecord.width)) ? Number(argsRecord.width) : (parsed.width ?? NaN);
|
|
480
|
+
const height = Number.isFinite(Number(argsRecord.height)) ? Number(argsRecord.height) : (parsed.height ?? NaN);
|
|
445
481
|
if (!Number.isFinite(width) || !Number.isFinite(height) || width <= 0 || height <= 0) {
|
|
446
482
|
return {
|
|
447
483
|
success: false,
|
|
@@ -450,7 +486,7 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
450
486
|
action: 'set_resolution'
|
|
451
487
|
};
|
|
452
488
|
}
|
|
453
|
-
const windowed =
|
|
489
|
+
const windowed = argsRecord.windowed !== false;
|
|
454
490
|
const suffix = windowed ? 'w' : 'f';
|
|
455
491
|
await tools.systemTools.executeConsoleCommand(`r.SetRes ${width}x${height}${suffix}`);
|
|
456
492
|
return {
|
|
@@ -468,13 +504,14 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
468
504
|
return {};
|
|
469
505
|
return { width: Number(m[1]), height: Number(m[2]) };
|
|
470
506
|
};
|
|
471
|
-
const parsed = parseResolution(
|
|
472
|
-
const
|
|
473
|
-
const
|
|
474
|
-
const
|
|
507
|
+
const parsed = parseResolution(argsTyped.resolution);
|
|
508
|
+
const argsRecord = argsTyped;
|
|
509
|
+
const width = Number.isFinite(Number(argsRecord.width)) ? Number(argsRecord.width) : (parsed.width ?? NaN);
|
|
510
|
+
const height = Number.isFinite(Number(argsRecord.height)) ? Number(argsRecord.height) : (parsed.height ?? NaN);
|
|
511
|
+
const windowed = argsRecord.windowed === true || argsTyped.enabled === false;
|
|
475
512
|
const suffix = windowed ? 'w' : 'f';
|
|
476
513
|
if (!Number.isFinite(width) || !Number.isFinite(height) || width <= 0 || height <= 0) {
|
|
477
|
-
if (typeof
|
|
514
|
+
if (typeof argsRecord.windowed === 'boolean' || typeof argsTyped.enabled === 'boolean') {
|
|
478
515
|
await tools.systemTools.executeConsoleCommand(`r.FullScreenMode ${windowed ? 1 : 0}`);
|
|
479
516
|
return {
|
|
480
517
|
success: true,
|
|
@@ -499,9 +536,10 @@ export async function handleSystemTools(action, args, tools) {
|
|
|
499
536
|
}
|
|
500
537
|
case 'read_log':
|
|
501
538
|
return cleanObject(await tools.logTools.readOutputLog(args));
|
|
502
|
-
default:
|
|
539
|
+
default: {
|
|
503
540
|
const res = await executeAutomationRequest(tools, 'system_control', args, 'Automation bridge not available for system control operations');
|
|
504
541
|
return cleanObject(res);
|
|
542
|
+
}
|
|
505
543
|
}
|
|
506
544
|
}
|
|
507
545
|
export async function handleConsoleCommand(args, tools) {
|