unreal-engine-mcp-server 0.5.0 → 0.5.1

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.
Files changed (139) hide show
  1. package/.env.example +1 -1
  2. package/.github/release-drafter-config.yml +51 -0
  3. package/.github/workflows/greetings.yml +5 -1
  4. package/.github/workflows/labeler.yml +2 -1
  5. package/.github/workflows/publish-mcp.yml +1 -0
  6. package/.github/workflows/release-drafter.yml +1 -1
  7. package/.github/workflows/release.yml +3 -3
  8. package/CHANGELOG.md +71 -0
  9. package/CONTRIBUTING.md +1 -1
  10. package/GEMINI.md +115 -0
  11. package/Public/Plugin_setup_guide.mp4 +0 -0
  12. package/README.md +166 -200
  13. package/dist/config.d.ts +0 -1
  14. package/dist/config.js +0 -1
  15. package/dist/constants.d.ts +4 -0
  16. package/dist/constants.js +4 -0
  17. package/dist/graphql/loaders.d.ts +64 -0
  18. package/dist/graphql/loaders.js +117 -0
  19. package/dist/graphql/resolvers.d.ts +3 -3
  20. package/dist/graphql/resolvers.js +33 -30
  21. package/dist/graphql/server.js +3 -1
  22. package/dist/graphql/types.d.ts +2 -0
  23. package/dist/index.d.ts +2 -0
  24. package/dist/index.js +13 -2
  25. package/dist/server-setup.d.ts +0 -1
  26. package/dist/server-setup.js +0 -40
  27. package/dist/tools/actors.d.ts +40 -24
  28. package/dist/tools/actors.js +8 -2
  29. package/dist/tools/assets.d.ts +19 -71
  30. package/dist/tools/assets.js +28 -22
  31. package/dist/tools/base-tool.d.ts +4 -4
  32. package/dist/tools/base-tool.js +1 -1
  33. package/dist/tools/blueprint.d.ts +33 -61
  34. package/dist/tools/consolidated-tool-handlers.js +96 -110
  35. package/dist/tools/dynamic-handler-registry.d.ts +11 -9
  36. package/dist/tools/dynamic-handler-registry.js +17 -95
  37. package/dist/tools/editor.d.ts +19 -193
  38. package/dist/tools/editor.js +8 -0
  39. package/dist/tools/environment.d.ts +8 -14
  40. package/dist/tools/foliage.d.ts +18 -143
  41. package/dist/tools/foliage.js +4 -2
  42. package/dist/tools/handlers/actor-handlers.js +0 -5
  43. package/dist/tools/handlers/asset-handlers.js +454 -454
  44. package/dist/tools/landscape.d.ts +16 -116
  45. package/dist/tools/landscape.js +7 -3
  46. package/dist/tools/level.d.ts +22 -103
  47. package/dist/tools/level.js +24 -16
  48. package/dist/tools/lighting.js +5 -1
  49. package/dist/tools/materials.js +5 -1
  50. package/dist/tools/niagara.js +37 -2
  51. package/dist/tools/performance.d.ts +0 -1
  52. package/dist/tools/performance.js +0 -1
  53. package/dist/tools/physics.js +5 -1
  54. package/dist/tools/sequence.d.ts +24 -24
  55. package/dist/tools/sequence.js +13 -0
  56. package/dist/tools/ui.d.ts +0 -2
  57. package/dist/types/automation-responses.d.ts +115 -0
  58. package/dist/types/automation-responses.js +2 -0
  59. package/dist/types/responses.d.ts +249 -0
  60. package/dist/types/responses.js +2 -0
  61. package/dist/types/tool-interfaces.d.ts +135 -135
  62. package/dist/utils/command-validator.js +3 -2
  63. package/dist/utils/path-security.d.ts +2 -0
  64. package/dist/utils/path-security.js +24 -0
  65. package/dist/utils/response-factory.d.ts +4 -4
  66. package/dist/utils/response-factory.js +15 -21
  67. package/docs/Migration-Guide-v0.5.0.md +1 -9
  68. package/docs/testing-guide.md +2 -2
  69. package/package.json +12 -6
  70. package/scripts/run-all-tests.mjs +25 -20
  71. package/server.json +3 -2
  72. package/src/config.ts +1 -1
  73. package/src/constants.ts +7 -0
  74. package/src/graphql/loaders.ts +244 -0
  75. package/src/graphql/resolvers.ts +47 -49
  76. package/src/graphql/server.ts +3 -1
  77. package/src/graphql/types.ts +3 -0
  78. package/src/index.ts +15 -2
  79. package/src/resources/assets.ts +5 -4
  80. package/src/server-setup.ts +3 -37
  81. package/src/tools/actors.ts +36 -28
  82. package/src/tools/animation.ts +1 -0
  83. package/src/tools/assets.ts +74 -63
  84. package/src/tools/base-tool.ts +3 -3
  85. package/src/tools/blueprint.ts +59 -59
  86. package/src/tools/consolidated-tool-handlers.ts +129 -150
  87. package/src/tools/dynamic-handler-registry.ts +22 -140
  88. package/src/tools/editor.ts +39 -26
  89. package/src/tools/environment.ts +21 -27
  90. package/src/tools/foliage.ts +28 -25
  91. package/src/tools/handlers/actor-handlers.ts +2 -8
  92. package/src/tools/handlers/asset-handlers.ts +484 -484
  93. package/src/tools/handlers/sequence-handlers.ts +1 -1
  94. package/src/tools/landscape.ts +34 -28
  95. package/src/tools/level.ts +96 -76
  96. package/src/tools/lighting.ts +6 -1
  97. package/src/tools/materials.ts +8 -2
  98. package/src/tools/niagara.ts +44 -2
  99. package/src/tools/performance.ts +1 -2
  100. package/src/tools/physics.ts +7 -1
  101. package/src/tools/sequence.ts +41 -25
  102. package/src/tools/ui.ts +0 -2
  103. package/src/types/automation-responses.ts +119 -0
  104. package/src/types/responses.ts +355 -0
  105. package/src/types/tool-interfaces.ts +135 -135
  106. package/src/utils/command-validator.ts +3 -2
  107. package/src/utils/normalize.test.ts +162 -0
  108. package/src/utils/path-security.ts +43 -0
  109. package/src/utils/response-factory.ts +29 -24
  110. package/src/utils/safe-json.test.ts +90 -0
  111. package/src/utils/validation.test.ts +184 -0
  112. package/tests/test-animation.mjs +358 -33
  113. package/tests/test-asset-graph.mjs +311 -0
  114. package/tests/test-audio.mjs +314 -116
  115. package/tests/test-behavior-tree.mjs +327 -144
  116. package/tests/test-blueprint-graph.mjs +343 -12
  117. package/tests/test-control-editor.mjs +85 -53
  118. package/tests/test-graphql.mjs +58 -8
  119. package/tests/test-input.mjs +349 -0
  120. package/tests/test-inspect.mjs +291 -61
  121. package/tests/test-landscape.mjs +304 -48
  122. package/tests/test-lighting.mjs +428 -0
  123. package/tests/test-manage-level.mjs +70 -51
  124. package/tests/test-performance.mjs +539 -0
  125. package/tests/test-sequence.mjs +82 -46
  126. package/tests/test-system.mjs +72 -33
  127. package/tests/test-wasm.mjs +98 -8
  128. package/vitest.config.ts +35 -0
  129. package/.github/release-drafter.yml +0 -148
  130. package/dist/prompts/index.d.ts +0 -21
  131. package/dist/prompts/index.js +0 -217
  132. package/dist/tools/blueprint/helpers.d.ts +0 -29
  133. package/dist/tools/blueprint/helpers.js +0 -182
  134. package/src/prompts/index.ts +0 -249
  135. package/src/tools/blueprint/helpers.ts +0 -189
  136. package/tests/test-blueprint-events.mjs +0 -35
  137. package/tests/test-extra-tools.mjs +0 -38
  138. package/tests/test-render.mjs +0 -33
  139. package/tests/test-search-assets.mjs +0 -66
@@ -1,4 +1,5 @@
1
1
  import { sanitizeAssetName, validateAssetParams } from '../utils/validation.js';
2
+ import { wasmIntegration } from '../wasm/index.js';
2
3
  export class NiagaraTools {
3
4
  bridge;
4
5
  automationBridge;
@@ -12,6 +13,16 @@ export class NiagaraTools {
12
13
  if (!this.automationBridge || typeof this.automationBridge.sendAutomationRequest !== 'function') {
13
14
  throw new Error('Automation Bridge not available. Niagara system creation requires plugin support.');
14
15
  }
16
+ if (params.emitters) {
17
+ for (const emitter of params.emitters) {
18
+ if (emitter.shapeSize) {
19
+ const zeroVector = [0, 0, 0];
20
+ const processedSize = wasmIntegration.vectorAdd(zeroVector, emitter.shapeSize);
21
+ console.error('[WASM] Using vectorAdd for Niagara emitter shape size');
22
+ emitter.shapeSize = [processedSize[0], processedSize[1], processedSize[2]];
23
+ }
24
+ }
25
+ }
15
26
  const path = params.savePath || '/Game/Effects/Niagara';
16
27
  const response = await this.automationBridge.sendAutomationRequest('create_niagara_system', { name: params.name, savePath: path, template: params.template }, { timeoutMs: 60000 });
17
28
  if (response && response.success !== false) {
@@ -82,8 +93,19 @@ export class NiagaraTools {
82
93
  return [value.x ?? 0, value.y ?? 0, value.z ?? 0];
83
94
  };
84
95
  const requestPayload = { systemPath: params.systemPath };
85
- const start = toVector(params.start);
86
- const end = toVector(params.end);
96
+ let start = toVector(params.start);
97
+ let end = toVector(params.end);
98
+ const zeroVector = [0, 0, 0];
99
+ if (start) {
100
+ const processed = wasmIntegration.vectorAdd(zeroVector, start);
101
+ console.error('[WASM] Using vectorAdd for Niagara ribbon start');
102
+ start = [processed[0], processed[1], processed[2]];
103
+ }
104
+ if (end) {
105
+ const processed = wasmIntegration.vectorAdd(zeroVector, end);
106
+ console.error('[WASM] Using vectorAdd for Niagara ribbon end');
107
+ end = [processed[0], processed[1], processed[2]];
108
+ }
87
109
  if (start)
88
110
  requestPayload.start = start;
89
111
  if (end)
@@ -148,6 +170,19 @@ export class NiagaraTools {
148
170
  if (!this.automationBridge || typeof this.automationBridge.sendAutomationRequest !== 'function') {
149
171
  return { success: false, error: 'AUTOMATION_BRIDGE_UNAVAILABLE', message: 'addEmitter requires automation bridge' };
150
172
  }
173
+ if (params.properties) {
174
+ const zeroVector = [0, 0, 0];
175
+ if (params.properties.velocityMin) {
176
+ const processed = wasmIntegration.vectorAdd(zeroVector, params.properties.velocityMin);
177
+ console.error('[WASM] Using vectorAdd for Niagara velocity min');
178
+ params.properties.velocityMin = [processed[0], processed[1], processed[2]];
179
+ }
180
+ if (params.properties.velocityMax) {
181
+ const processed = wasmIntegration.vectorAdd(zeroVector, params.properties.velocityMax);
182
+ console.error('[WASM] Using vectorAdd for Niagara velocity max');
183
+ params.properties.velocityMax = [processed[0], processed[1], processed[2]];
184
+ }
185
+ }
151
186
  try {
152
187
  const resp = await this.automationBridge.sendAutomationRequest('manage_niagara_graph', {
153
188
  subAction: 'add_emitter',
@@ -131,7 +131,6 @@ export declare class PerformanceTools {
131
131
  }>;
132
132
  optimizeDrawCalls(params: {
133
133
  enableInstancing?: boolean;
134
- enableBatching?: boolean;
135
134
  mergeActors?: boolean;
136
135
  actors?: string[];
137
136
  }): Promise<{
@@ -354,7 +354,6 @@ export class PerformanceTools {
354
354
  }
355
355
  const payload = {
356
356
  enableInstancing: params.enableInstancing,
357
- enableBatching: params.enableBatching,
358
357
  mergeActors: params.mergeActors,
359
358
  actors: actors
360
359
  };
@@ -1,5 +1,6 @@
1
1
  import { validateAssetParams, resolveSkeletalMeshPath, concurrencyDelay } from '../utils/validation.js';
2
2
  import { coerceString, coerceStringArray } from '../utils/result-helpers.js';
3
+ import { wasmIntegration } from '../wasm/index.js';
3
4
  export class PhysicsTools {
4
5
  bridge;
5
6
  automationBridge;
@@ -309,10 +310,13 @@ export class PhysicsTools {
309
310
  throw new Error('Automation Bridge not available. Physics force application requires plugin support.');
310
311
  }
311
312
  try {
313
+ const zeroVector = [0, 0, 0];
314
+ const normalizedVector = wasmIntegration.vectorAdd(zeroVector, params.vector);
315
+ console.error('[WASM] Using vectorAdd for physics force vector processing');
312
316
  const response = await this.automationBridge.sendAutomationRequest('apply_force', {
313
317
  actorName: params.actorName,
314
318
  forceType: params.forceType,
315
- vector: params.vector,
319
+ vector: normalizedVector,
316
320
  boneName: params.boneName,
317
321
  isLocal: params.isLocal
318
322
  }, {
@@ -1,5 +1,5 @@
1
1
  import { BaseTool } from './base-tool.js';
2
- import { ISequenceTools } from '../types/tool-interfaces.js';
2
+ import { ISequenceTools, StandardActionResponse } from '../types/tool-interfaces.js';
3
3
  export interface LevelSequence {
4
4
  path: string;
5
5
  name: string;
@@ -28,80 +28,80 @@ export declare class SequenceTools extends BaseTool implements ISequenceTools {
28
28
  name: string;
29
29
  path?: string;
30
30
  timeoutMs?: number;
31
- }): Promise<any>;
31
+ }): Promise<StandardActionResponse>;
32
32
  open(params: {
33
33
  path: string;
34
- }): Promise<any>;
34
+ }): Promise<StandardActionResponse>;
35
35
  addCamera(params: {
36
36
  spawnable?: boolean;
37
37
  path?: string;
38
- }): Promise<any>;
38
+ }): Promise<StandardActionResponse>;
39
39
  addActor(params: {
40
40
  actorName: string;
41
41
  createBinding?: boolean;
42
42
  path?: string;
43
- }): Promise<any>;
43
+ }): Promise<StandardActionResponse>;
44
44
  play(params?: {
45
45
  path?: string;
46
46
  startTime?: number;
47
47
  loopMode?: 'once' | 'loop' | 'pingpong';
48
- }): Promise<any>;
48
+ }): Promise<StandardActionResponse>;
49
49
  pause(params?: {
50
50
  path?: string;
51
- }): Promise<any>;
51
+ }): Promise<StandardActionResponse>;
52
52
  stop(params?: {
53
53
  path?: string;
54
- }): Promise<any>;
54
+ }): Promise<StandardActionResponse>;
55
55
  setSequenceProperties(params: {
56
56
  path?: string;
57
57
  frameRate?: number;
58
58
  lengthInFrames?: number;
59
59
  playbackStart?: number;
60
60
  playbackEnd?: number;
61
- }): Promise<any>;
61
+ }): Promise<StandardActionResponse>;
62
62
  setDisplayRate(params: {
63
63
  path?: string;
64
64
  frameRate: string | number;
65
- }): Promise<any>;
65
+ }): Promise<StandardActionResponse>;
66
66
  getSequenceProperties(params: {
67
67
  path?: string;
68
- }): Promise<any>;
68
+ }): Promise<StandardActionResponse>;
69
69
  setPlaybackSpeed(params: {
70
70
  speed: number;
71
71
  path?: string;
72
- }): Promise<any>;
72
+ }): Promise<StandardActionResponse>;
73
73
  getBindings(params?: {
74
74
  path?: string;
75
- }): Promise<any>;
75
+ }): Promise<StandardActionResponse>;
76
76
  addActors(params: {
77
77
  actorNames: string[];
78
78
  path?: string;
79
- }): Promise<any>;
79
+ }): Promise<StandardActionResponse>;
80
80
  removeActors(params: {
81
81
  actorNames: string[];
82
82
  path?: string;
83
- }): Promise<any>;
83
+ }): Promise<StandardActionResponse>;
84
84
  addSpawnableFromClass(params: {
85
85
  className: string;
86
86
  path?: string;
87
- }): Promise<any>;
87
+ }): Promise<StandardActionResponse>;
88
88
  list(params?: {
89
89
  path?: string;
90
- }): Promise<any>;
90
+ }): Promise<StandardActionResponse>;
91
91
  duplicate(params: {
92
92
  path: string;
93
93
  destinationPath: string;
94
- }): Promise<any>;
94
+ }): Promise<StandardActionResponse>;
95
95
  rename(params: {
96
96
  path: string;
97
97
  newName: string;
98
- }): Promise<any>;
98
+ }): Promise<StandardActionResponse>;
99
99
  deleteSequence(params: {
100
100
  path: string;
101
- }): Promise<any>;
101
+ }): Promise<StandardActionResponse>;
102
102
  getMetadata(params: {
103
103
  path?: string;
104
- }): Promise<any>;
104
+ }): Promise<StandardActionResponse>;
105
105
  addKeyframe(params: {
106
106
  path?: string;
107
107
  bindingId?: string;
@@ -125,14 +125,14 @@ export declare class SequenceTools extends BaseTool implements ISequenceTools {
125
125
  z: number;
126
126
  };
127
127
  };
128
- }): Promise<any>;
128
+ }): Promise<StandardActionResponse>;
129
129
  listTracks(params: {
130
130
  path: string;
131
- }): Promise<any>;
131
+ }): Promise<StandardActionResponse>;
132
132
  setWorkRange(params: {
133
133
  path?: string;
134
134
  start: number;
135
135
  end: number;
136
- }): Promise<any>;
136
+ }): Promise<StandardActionResponse>;
137
137
  }
138
138
  //# sourceMappingURL=sequence.d.ts.map
@@ -1,4 +1,5 @@
1
1
  import { BaseTool } from './base-tool.js';
2
+ import { wasmIntegration } from '../wasm/index.js';
2
3
  export class SequenceTools extends BaseTool {
3
4
  sequenceCache = new Map();
4
5
  activeSequencePath;
@@ -214,6 +215,18 @@ export class SequenceTools extends BaseTool {
214
215
  frame: params.frame,
215
216
  value: params.value
216
217
  });
218
+ if (params.property === 'Transform' && params.value) {
219
+ const loc = params.value.location;
220
+ const rot = params.value.rotation;
221
+ const scale = params.value.scale;
222
+ if (loc && rot && scale) {
223
+ const locArr = [loc.x, loc.y, loc.z];
224
+ const rotArr = [rot.pitch, rot.yaw, rot.roll];
225
+ const scaleArr = [scale.x, scale.y, scale.z];
226
+ wasmIntegration.composeTransform(locArr, rotArr, scaleArr);
227
+ console.error('[WASM] Using composeTransform for keyframe validation');
228
+ }
229
+ }
217
230
  if (!resp.success && this.isUnknownActionResponse(resp)) {
218
231
  return { success: false, error: 'UNKNOWN_PLUGIN_ACTION', message: 'Automation plugin does not implement sequence_add_keyframe' };
219
232
  }
@@ -69,7 +69,6 @@ export declare class UITools {
69
69
  setWidgetText(_params: {
70
70
  key: string;
71
71
  value: string;
72
- componentName?: string;
73
72
  }): Promise<{
74
73
  success: boolean;
75
74
  message: string;
@@ -81,7 +80,6 @@ export declare class UITools {
81
80
  setWidgetImage(_params: {
82
81
  key: string;
83
82
  texturePath: string;
84
- componentName?: string;
85
83
  }): Promise<{
86
84
  success: boolean;
87
85
  message: string;
@@ -0,0 +1,115 @@
1
+ export interface AutomationResponse {
2
+ success: boolean;
3
+ message?: string;
4
+ error?: string | {
5
+ message: string;
6
+ code?: string;
7
+ };
8
+ result?: unknown;
9
+ warnings?: string[];
10
+ details?: unknown;
11
+ data?: unknown;
12
+ [key: string]: unknown;
13
+ }
14
+ export interface LevelResponse extends AutomationResponse {
15
+ levelPath?: string;
16
+ level?: string;
17
+ path?: string;
18
+ packagePath?: string;
19
+ objectPath?: string;
20
+ currentMap?: string;
21
+ currentMapPath?: string;
22
+ currentWorldLevels?: unknown[];
23
+ allMaps?: unknown[];
24
+ partitioned?: boolean;
25
+ streaming?: boolean;
26
+ loaded?: boolean;
27
+ visible?: boolean;
28
+ skipped?: boolean;
29
+ reason?: string;
30
+ }
31
+ export interface ActorResponse extends AutomationResponse {
32
+ actorName?: string;
33
+ actorLabel?: string;
34
+ actorPath?: string;
35
+ actors?: unknown[];
36
+ components?: unknown[];
37
+ location?: {
38
+ x: number;
39
+ y: number;
40
+ z: number;
41
+ };
42
+ rotation?: {
43
+ pitch: number;
44
+ yaw: number;
45
+ roll: number;
46
+ };
47
+ scale?: {
48
+ x: number;
49
+ y: number;
50
+ z: number;
51
+ };
52
+ transform?: unknown;
53
+ tags?: string[];
54
+ properties?: Record<string, unknown>;
55
+ deleted?: boolean;
56
+ deletedCount?: number;
57
+ }
58
+ export interface AssetResponse extends AutomationResponse {
59
+ assetPath?: string;
60
+ asset?: string;
61
+ assets?: unknown[];
62
+ source?: string;
63
+ saved?: boolean;
64
+ metadata?: Record<string, unknown>;
65
+ tags?: string[];
66
+ graph?: Record<string, unknown[]>;
67
+ }
68
+ export interface EditorResponse extends AutomationResponse {
69
+ viewMode?: string;
70
+ fov?: number;
71
+ location?: {
72
+ x: number;
73
+ y: number;
74
+ z: number;
75
+ };
76
+ rotation?: {
77
+ pitch: number;
78
+ yaw: number;
79
+ roll: number;
80
+ };
81
+ cameraSettings?: unknown;
82
+ camera?: {
83
+ location?: unknown;
84
+ rotation?: unknown;
85
+ };
86
+ resolution?: {
87
+ width: number;
88
+ height: number;
89
+ };
90
+ filename?: string;
91
+ filePath?: string;
92
+ isPlaying?: boolean;
93
+ isPaused?: boolean;
94
+ isInPIE?: boolean;
95
+ playSessionId?: string;
96
+ bookmarkName?: string;
97
+ bookmarks?: unknown[];
98
+ realtime?: boolean;
99
+ }
100
+ export interface SequenceResponse extends AutomationResponse {
101
+ sequencePath?: string;
102
+ sequence?: string;
103
+ bindingId?: string;
104
+ trackName?: string;
105
+ keyframe?: unknown;
106
+ frameNumber?: number;
107
+ length?: number;
108
+ playbackPosition?: number;
109
+ requestId?: string;
110
+ }
111
+ export interface ConsoleResponse extends AutomationResponse {
112
+ output?: string;
113
+ command?: string;
114
+ }
115
+ //# sourceMappingURL=automation-responses.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=automation-responses.js.map
@@ -0,0 +1,249 @@
1
+ export interface BaseResponse {
2
+ success: boolean;
3
+ message?: string;
4
+ error?: string;
5
+ errorCode?: string;
6
+ }
7
+ export interface Vector3 {
8
+ x: number;
9
+ y: number;
10
+ z: number;
11
+ }
12
+ export interface Rotator {
13
+ pitch: number;
14
+ yaw: number;
15
+ roll: number;
16
+ }
17
+ export interface Transform {
18
+ location?: Vector3;
19
+ rotation?: Rotator;
20
+ scale?: Vector3;
21
+ }
22
+ export interface SpawnActorResponse extends BaseResponse {
23
+ actorName?: string;
24
+ actorPath?: string;
25
+ classPath?: string;
26
+ }
27
+ export interface DeleteActorResponse extends BaseResponse {
28
+ deletedCount?: number;
29
+ deletedActors?: string[];
30
+ }
31
+ export interface GetTransformResponse extends BaseResponse {
32
+ location?: Vector3;
33
+ rotation?: Rotator;
34
+ scale?: Vector3;
35
+ }
36
+ export interface SetTransformResponse extends BaseResponse {
37
+ actorName?: string;
38
+ }
39
+ export interface FindActorsResponse extends BaseResponse {
40
+ actors?: Array<{
41
+ name: string;
42
+ label?: string;
43
+ class?: string;
44
+ path?: string;
45
+ }>;
46
+ count?: number;
47
+ }
48
+ export interface GetComponentsResponse extends BaseResponse {
49
+ components?: Array<{
50
+ name: string;
51
+ type: string;
52
+ properties?: Record<string, unknown>;
53
+ }>;
54
+ }
55
+ export interface ApplyForceResponse extends BaseResponse {
56
+ actorName?: string;
57
+ forceApplied?: Vector3;
58
+ }
59
+ export interface AssetInfo {
60
+ name: string;
61
+ path: string;
62
+ class?: string;
63
+ packagePath?: string;
64
+ size?: number;
65
+ }
66
+ export interface ListAssetsResponse extends BaseResponse {
67
+ assets?: AssetInfo[];
68
+ count?: number;
69
+ directory?: string;
70
+ }
71
+ export interface CreateAssetResponse extends BaseResponse {
72
+ assetPath?: string;
73
+ assetName?: string;
74
+ }
75
+ export interface DeleteAssetResponse extends BaseResponse {
76
+ deletedPath?: string;
77
+ deletedCount?: number;
78
+ }
79
+ export interface GetDependenciesResponse extends BaseResponse {
80
+ dependencies?: string[];
81
+ referencers?: string[];
82
+ count?: number;
83
+ }
84
+ export interface AssetExistsResponse extends BaseResponse {
85
+ exists?: boolean;
86
+ assetPath?: string;
87
+ }
88
+ export interface CreateBlueprintResponse extends BaseResponse {
89
+ blueprintPath?: string;
90
+ blueprintName?: string;
91
+ parentClass?: string;
92
+ }
93
+ export interface GetBlueprintResponse extends BaseResponse {
94
+ path?: string;
95
+ name?: string;
96
+ parentClass?: string;
97
+ variables?: Array<{
98
+ name: string;
99
+ type: string;
100
+ defaultValue?: unknown;
101
+ }>;
102
+ functions?: Array<{
103
+ name: string;
104
+ parameters?: Array<{
105
+ name: string;
106
+ type: string;
107
+ }>;
108
+ returnType?: string;
109
+ }>;
110
+ components?: Array<{
111
+ name: string;
112
+ type: string;
113
+ properties?: Record<string, unknown>;
114
+ }>;
115
+ }
116
+ export interface AddVariableResponse extends BaseResponse {
117
+ variableName?: string;
118
+ variableType?: string;
119
+ }
120
+ export interface CreateNodeResponse extends BaseResponse {
121
+ nodeId?: string;
122
+ nodeName?: string;
123
+ }
124
+ export interface ConnectPinsResponse extends BaseResponse {
125
+ connected?: boolean;
126
+ fromNode?: string;
127
+ toNode?: string;
128
+ }
129
+ export interface LoadLevelResponse extends BaseResponse {
130
+ levelPath?: string;
131
+ levelName?: string;
132
+ }
133
+ export interface SaveLevelResponse extends BaseResponse {
134
+ savedPath?: string;
135
+ }
136
+ export interface ListLevelsResponse extends BaseResponse {
137
+ levels?: Array<{
138
+ name: string;
139
+ path: string;
140
+ isLoaded?: boolean;
141
+ isVisible?: boolean;
142
+ }>;
143
+ }
144
+ export interface BuildLightingResponse extends BaseResponse {
145
+ quality?: string;
146
+ buildTime?: number;
147
+ }
148
+ export interface PlayInEditorResponse extends BaseResponse {
149
+ isPlaying?: boolean;
150
+ isPaused?: boolean;
151
+ }
152
+ export interface SetCameraResponse extends BaseResponse {
153
+ location?: Vector3;
154
+ rotation?: Rotator;
155
+ fov?: number;
156
+ }
157
+ export interface ScreenshotResponse extends BaseResponse {
158
+ filePath?: string;
159
+ width?: number;
160
+ height?: number;
161
+ }
162
+ export interface ViewModeResponse extends BaseResponse {
163
+ viewMode?: string;
164
+ }
165
+ export interface CreateSequenceResponse extends BaseResponse {
166
+ sequencePath?: string;
167
+ sequenceName?: string;
168
+ }
169
+ export interface AddActorToSequenceResponse extends BaseResponse {
170
+ bindingId?: string;
171
+ actorName?: string;
172
+ }
173
+ export interface AddKeyframeResponse extends BaseResponse {
174
+ frameNumber?: number;
175
+ property?: string;
176
+ value?: unknown;
177
+ }
178
+ export interface PlaySoundResponse extends BaseResponse {
179
+ soundPath?: string;
180
+ audioComponentId?: string;
181
+ }
182
+ export interface CreateSoundCueResponse extends BaseResponse {
183
+ cuePath?: string;
184
+ cueName?: string;
185
+ }
186
+ export interface SpawnEffectResponse extends BaseResponse {
187
+ effectName?: string;
188
+ effectPath?: string;
189
+ location?: Vector3;
190
+ }
191
+ export interface CreateNiagaraSystemResponse extends BaseResponse {
192
+ systemPath?: string;
193
+ systemName?: string;
194
+ }
195
+ export interface SpawnLightResponse extends BaseResponse {
196
+ lightName?: string;
197
+ lightType?: string;
198
+ location?: Vector3;
199
+ }
200
+ export interface SetupGIResponse extends BaseResponse {
201
+ method?: string;
202
+ bounces?: number;
203
+ }
204
+ export interface CreateAnimBlueprintResponse extends BaseResponse {
205
+ blueprintPath?: string;
206
+ skeletonPath?: string;
207
+ }
208
+ export interface PlayMontageResponse extends BaseResponse {
209
+ montagePath?: string;
210
+ playRate?: number;
211
+ }
212
+ export interface ConsoleCommandResponse extends BaseResponse {
213
+ command?: string;
214
+ output?: string;
215
+ }
216
+ export interface ProfileResponse extends BaseResponse {
217
+ profileType?: string;
218
+ enabled?: boolean;
219
+ }
220
+ export interface SetCVarResponse extends BaseResponse {
221
+ cvarName?: string;
222
+ value?: string;
223
+ }
224
+ export interface InspectObjectResponse extends BaseResponse {
225
+ objectPath?: string;
226
+ className?: string;
227
+ properties?: Record<string, unknown>;
228
+ }
229
+ export interface GetPropertyResponse extends BaseResponse {
230
+ propertyName?: string;
231
+ value?: unknown;
232
+ propertyType?: string;
233
+ }
234
+ export interface SetPropertyResponse extends BaseResponse {
235
+ propertyName?: string;
236
+ newValue?: unknown;
237
+ }
238
+ export interface CreateLandscapeResponse extends BaseResponse {
239
+ landscapeName?: string;
240
+ componentCount?: {
241
+ x: number;
242
+ y: number;
243
+ };
244
+ }
245
+ export interface AddFoliageResponse extends BaseResponse {
246
+ foliageType?: string;
247
+ instanceCount?: number;
248
+ }
249
+ //# sourceMappingURL=responses.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=responses.js.map