unreal-engine-mcp-server 0.5.4 → 0.5.5

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 (468) hide show
  1. package/dist/automation/bridge.d.ts.map +1 -0
  2. package/dist/automation/bridge.js.map +1 -0
  3. package/dist/automation/connection-manager.d.ts.map +1 -0
  4. package/dist/automation/connection-manager.js.map +1 -0
  5. package/dist/automation/handshake.d.ts.map +1 -0
  6. package/dist/automation/handshake.js.map +1 -0
  7. package/dist/automation/index.d.ts.map +1 -0
  8. package/dist/automation/index.js.map +1 -0
  9. package/dist/automation/message-handler.d.ts.map +1 -0
  10. package/dist/automation/message-handler.js.map +1 -0
  11. package/dist/automation/request-tracker.d.ts.map +1 -0
  12. package/dist/automation/request-tracker.js.map +1 -0
  13. package/dist/automation/types.d.ts.map +1 -0
  14. package/dist/automation/types.js.map +1 -0
  15. package/dist/cli.d.ts.map +1 -0
  16. package/dist/cli.js +4 -3
  17. package/dist/cli.js.map +1 -0
  18. package/dist/config/class-aliases.d.ts.map +1 -0
  19. package/dist/config/class-aliases.js.map +1 -0
  20. package/dist/config.d.ts.map +1 -0
  21. package/dist/config.js.map +1 -0
  22. package/dist/constants.d.ts.map +1 -0
  23. package/dist/constants.js.map +1 -0
  24. package/dist/graphql/loaders.d.ts.map +1 -0
  25. package/dist/graphql/loaders.js.map +1 -0
  26. package/dist/graphql/resolvers.d.ts.map +1 -0
  27. package/dist/graphql/resolvers.js +29 -29
  28. package/dist/graphql/resolvers.js.map +1 -0
  29. package/dist/graphql/schema.d.ts.map +1 -0
  30. package/dist/graphql/schema.js.map +1 -0
  31. package/dist/graphql/server.d.ts.map +1 -0
  32. package/dist/graphql/server.js.map +1 -0
  33. package/dist/graphql/types.d.ts.map +1 -0
  34. package/dist/graphql/types.js.map +1 -0
  35. package/dist/handlers/resource-handlers.d.ts.map +1 -0
  36. package/dist/handlers/resource-handlers.js.map +1 -0
  37. package/dist/index.d.ts +1 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +64 -7
  40. package/dist/index.js.map +1 -0
  41. package/dist/resources/actors.d.ts.map +1 -0
  42. package/dist/resources/actors.js.map +1 -0
  43. package/dist/resources/assets.d.ts.map +1 -0
  44. package/dist/resources/assets.js +6 -4
  45. package/dist/resources/assets.js.map +1 -0
  46. package/dist/resources/levels.d.ts.map +1 -0
  47. package/dist/resources/levels.js.map +1 -0
  48. package/dist/server/resource-registry.d.ts.map +1 -0
  49. package/dist/server/resource-registry.js.map +1 -0
  50. package/dist/server/tool-registry.d.ts.map +1 -0
  51. package/dist/server/tool-registry.js.map +1 -0
  52. package/dist/server-setup.d.ts.map +1 -0
  53. package/dist/server-setup.js.map +1 -0
  54. package/dist/services/health-monitor.d.ts.map +1 -0
  55. package/dist/services/health-monitor.js.map +1 -0
  56. package/dist/services/metrics-server.d.ts.map +1 -0
  57. package/dist/services/metrics-server.js.map +1 -0
  58. package/dist/tools/actors.d.ts.map +1 -0
  59. package/dist/tools/actors.js +3 -1
  60. package/dist/tools/actors.js.map +1 -0
  61. package/dist/tools/animation.d.ts.map +1 -0
  62. package/dist/tools/animation.js +2 -2
  63. package/dist/tools/animation.js.map +1 -0
  64. package/dist/tools/assets.d.ts.map +1 -0
  65. package/dist/tools/assets.js.map +1 -0
  66. package/dist/tools/audio.d.ts.map +1 -0
  67. package/dist/tools/audio.js.map +1 -0
  68. package/dist/tools/base-tool.d.ts.map +1 -0
  69. package/dist/tools/base-tool.js.map +1 -0
  70. package/dist/tools/behavior-tree.d.ts.map +1 -0
  71. package/dist/tools/behavior-tree.js.map +1 -0
  72. package/dist/tools/blueprint.d.ts.map +1 -0
  73. package/dist/tools/blueprint.js +4 -2
  74. package/dist/tools/blueprint.js.map +1 -0
  75. package/dist/tools/consolidated-tool-definitions.d.ts.map +1 -0
  76. package/dist/tools/consolidated-tool-definitions.js.map +1 -0
  77. package/dist/tools/consolidated-tool-handlers.d.ts.map +1 -0
  78. package/dist/tools/consolidated-tool-handlers.js.map +1 -0
  79. package/dist/tools/debug.d.ts.map +1 -0
  80. package/dist/tools/debug.js +3 -1
  81. package/dist/tools/debug.js.map +1 -0
  82. package/dist/tools/dynamic-handler-registry.d.ts.map +1 -0
  83. package/dist/tools/dynamic-handler-registry.js +3 -1
  84. package/dist/tools/dynamic-handler-registry.js.map +1 -0
  85. package/dist/tools/editor.d.ts.map +1 -0
  86. package/dist/tools/editor.js +1 -1
  87. package/dist/tools/editor.js.map +1 -0
  88. package/dist/tools/engine.d.ts.map +1 -0
  89. package/dist/tools/engine.js.map +1 -0
  90. package/dist/tools/environment.d.ts.map +1 -0
  91. package/dist/tools/environment.js +2 -2
  92. package/dist/tools/environment.js.map +1 -0
  93. package/dist/tools/foliage.d.ts.map +1 -0
  94. package/dist/tools/foliage.js.map +1 -0
  95. package/dist/tools/handlers/actor-handlers.d.ts +1 -1
  96. package/dist/tools/handlers/actor-handlers.d.ts.map +1 -0
  97. package/dist/tools/handlers/actor-handlers.js +6 -5
  98. package/dist/tools/handlers/actor-handlers.js.map +1 -0
  99. package/dist/tools/handlers/animation-handlers.d.ts.map +1 -0
  100. package/dist/tools/handlers/animation-handlers.js.map +1 -0
  101. package/dist/tools/handlers/argument-helper.d.ts.map +1 -0
  102. package/dist/tools/handlers/argument-helper.js.map +1 -0
  103. package/dist/tools/handlers/asset-handlers.d.ts.map +1 -0
  104. package/dist/tools/handlers/asset-handlers.js +5 -1
  105. package/dist/tools/handlers/asset-handlers.js.map +1 -0
  106. package/dist/tools/handlers/audio-handlers.d.ts.map +1 -0
  107. package/dist/tools/handlers/audio-handlers.js.map +1 -0
  108. package/dist/tools/handlers/blueprint-handlers.d.ts.map +1 -0
  109. package/dist/tools/handlers/blueprint-handlers.js +2 -1
  110. package/dist/tools/handlers/blueprint-handlers.js.map +1 -0
  111. package/dist/tools/handlers/common-handlers.d.ts.map +1 -0
  112. package/dist/tools/handlers/common-handlers.js.map +1 -0
  113. package/dist/tools/handlers/editor-handlers.d.ts.map +1 -0
  114. package/dist/tools/handlers/editor-handlers.js +12 -2
  115. package/dist/tools/handlers/editor-handlers.js.map +1 -0
  116. package/dist/tools/handlers/effect-handlers.d.ts.map +1 -0
  117. package/dist/tools/handlers/effect-handlers.js.map +1 -0
  118. package/dist/tools/handlers/environment-handlers.d.ts.map +1 -0
  119. package/dist/tools/handlers/environment-handlers.js.map +1 -0
  120. package/dist/tools/handlers/graph-handlers.d.ts.map +1 -0
  121. package/dist/tools/handlers/graph-handlers.js +61 -1
  122. package/dist/tools/handlers/graph-handlers.js.map +1 -0
  123. package/dist/tools/handlers/input-handlers.d.ts.map +1 -0
  124. package/dist/tools/handlers/input-handlers.js.map +1 -0
  125. package/dist/tools/handlers/inspect-handlers.d.ts.map +1 -0
  126. package/dist/tools/handlers/inspect-handlers.js.map +1 -0
  127. package/dist/tools/handlers/level-handlers.d.ts.map +1 -0
  128. package/dist/tools/handlers/level-handlers.js.map +1 -0
  129. package/dist/tools/handlers/lighting-handlers.d.ts.map +1 -0
  130. package/dist/tools/handlers/lighting-handlers.js +23 -1
  131. package/dist/tools/handlers/lighting-handlers.js.map +1 -0
  132. package/dist/tools/handlers/performance-handlers.d.ts.map +1 -0
  133. package/dist/tools/handlers/performance-handlers.js +15 -2
  134. package/dist/tools/handlers/performance-handlers.js.map +1 -0
  135. package/dist/tools/handlers/pipeline-handlers.d.ts.map +1 -0
  136. package/dist/tools/handlers/pipeline-handlers.js.map +1 -0
  137. package/dist/tools/handlers/sequence-handlers.d.ts.map +1 -0
  138. package/dist/tools/handlers/sequence-handlers.js.map +1 -0
  139. package/dist/tools/handlers/system-handlers.d.ts.map +1 -0
  140. package/dist/tools/handlers/system-handlers.js +16 -1
  141. package/dist/tools/handlers/system-handlers.js.map +1 -0
  142. package/dist/tools/input.d.ts.map +1 -0
  143. package/dist/tools/input.js +3 -1
  144. package/dist/tools/input.js.map +1 -0
  145. package/dist/tools/introspection.d.ts.map +1 -0
  146. package/dist/tools/introspection.js.map +1 -0
  147. package/dist/tools/landscape.d.ts.map +1 -0
  148. package/dist/tools/landscape.js +3 -1
  149. package/dist/tools/landscape.js.map +1 -0
  150. package/dist/tools/level.d.ts.map +1 -0
  151. package/dist/tools/level.js.map +1 -0
  152. package/dist/tools/lighting.d.ts.map +1 -0
  153. package/dist/tools/lighting.js +3 -1
  154. package/dist/tools/lighting.js.map +1 -0
  155. package/dist/tools/logs.d.ts.map +1 -0
  156. package/dist/tools/logs.js.map +1 -0
  157. package/dist/tools/materials.d.ts.map +1 -0
  158. package/dist/tools/materials.js +3 -1
  159. package/dist/tools/materials.js.map +1 -0
  160. package/dist/tools/niagara.d.ts.map +1 -0
  161. package/dist/tools/niagara.js +7 -5
  162. package/dist/tools/niagara.js.map +1 -0
  163. package/dist/tools/performance.d.ts.map +1 -0
  164. package/dist/tools/performance.js.map +1 -0
  165. package/dist/tools/physics.d.ts.map +1 -0
  166. package/dist/tools/physics.js +9 -7
  167. package/dist/tools/physics.js.map +1 -0
  168. package/dist/tools/property-dictionary.d.ts.map +1 -0
  169. package/dist/tools/property-dictionary.js.map +1 -0
  170. package/dist/tools/sequence.d.ts.map +1 -0
  171. package/dist/tools/sequence.js +3 -1
  172. package/dist/tools/sequence.js.map +1 -0
  173. package/dist/tools/tool-definition-utils.d.ts.map +1 -0
  174. package/dist/tools/tool-definition-utils.js.map +1 -0
  175. package/dist/tools/ui.d.ts.map +1 -0
  176. package/dist/tools/ui.js +3 -1
  177. package/dist/tools/ui.js.map +1 -0
  178. package/dist/types/automation-responses.d.ts.map +1 -0
  179. package/dist/types/automation-responses.js.map +1 -0
  180. package/dist/types/env.d.ts.map +1 -0
  181. package/dist/types/env.js.map +1 -0
  182. package/dist/types/handler-types.d.ts.map +1 -0
  183. package/dist/types/handler-types.js.map +1 -0
  184. package/dist/types/tool-interfaces.d.ts.map +1 -0
  185. package/dist/types/tool-interfaces.js.map +1 -0
  186. package/dist/types/tool-types.d.ts.map +1 -0
  187. package/dist/types/tool-types.js.map +1 -0
  188. package/dist/unreal-bridge.d.ts +1 -0
  189. package/dist/unreal-bridge.d.ts.map +1 -0
  190. package/dist/unreal-bridge.js +8 -0
  191. package/dist/unreal-bridge.js.map +1 -0
  192. package/dist/utils/command-validator.d.ts.map +1 -0
  193. package/dist/utils/command-validator.js.map +1 -0
  194. package/dist/utils/elicitation.d.ts.map +1 -0
  195. package/dist/utils/elicitation.js.map +1 -0
  196. package/dist/utils/error-handler.d.ts.map +1 -0
  197. package/dist/utils/error-handler.js.map +1 -0
  198. package/dist/utils/ini-reader.d.ts.map +1 -0
  199. package/dist/utils/ini-reader.js.map +1 -0
  200. package/dist/utils/logger.d.ts.map +1 -0
  201. package/dist/utils/logger.js.map +1 -0
  202. package/dist/utils/normalize.d.ts.map +1 -0
  203. package/dist/utils/normalize.js.map +1 -0
  204. package/dist/utils/path-security.d.ts.map +1 -0
  205. package/dist/utils/path-security.js.map +1 -0
  206. package/dist/utils/response-factory.d.ts.map +1 -0
  207. package/dist/utils/response-factory.js +3 -1
  208. package/dist/utils/response-factory.js.map +1 -0
  209. package/dist/utils/response-validator.d.ts.map +1 -0
  210. package/dist/utils/response-validator.js.map +1 -0
  211. package/dist/utils/result-helpers.d.ts.map +1 -0
  212. package/dist/utils/result-helpers.js.map +1 -0
  213. package/dist/utils/safe-json.d.ts.map +1 -0
  214. package/dist/utils/safe-json.js.map +1 -0
  215. package/dist/utils/unreal-command-queue.d.ts.map +1 -0
  216. package/dist/utils/unreal-command-queue.js.map +1 -0
  217. package/dist/utils/validation.d.ts.map +1 -0
  218. package/dist/utils/validation.js.map +1 -0
  219. package/dist/wasm/index.d.ts.map +1 -0
  220. package/dist/wasm/index.js.map +1 -0
  221. package/package.json +12 -34
  222. package/server.json +2 -2
  223. package/.dockerignore +0 -57
  224. package/.env.example +0 -26
  225. package/.env.production +0 -61
  226. package/.eslintrc.json +0 -0
  227. package/.eslintrc.override.json +0 -8
  228. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -94
  229. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  230. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -56
  231. package/.github/copilot-instructions.md +0 -478
  232. package/.github/dependabot.yml +0 -19
  233. package/.github/labeler.yml +0 -24
  234. package/.github/labels.yml +0 -70
  235. package/.github/pull_request_template.md +0 -42
  236. package/.github/release-drafter-config.yml +0 -51
  237. package/.github/workflows/auto-merge.yml +0 -38
  238. package/.github/workflows/ci.yml +0 -38
  239. package/.github/workflows/dependency-review.yml +0 -17
  240. package/.github/workflows/gemini-issue-triage.yml +0 -172
  241. package/.github/workflows/greetings.yml +0 -27
  242. package/.github/workflows/labeler.yml +0 -17
  243. package/.github/workflows/links.yml +0 -80
  244. package/.github/workflows/pr-size-labeler.yml +0 -137
  245. package/.github/workflows/publish-mcp.yml +0 -79
  246. package/.github/workflows/release-drafter.yml +0 -24
  247. package/.github/workflows/release.yml +0 -112
  248. package/.github/workflows/semantic-pull-request.yml +0 -35
  249. package/.github/workflows/smoke-test.yml +0 -36
  250. package/.github/workflows/stale.yml +0 -28
  251. package/CONTRIBUTING.md +0 -140
  252. package/Dockerfile +0 -37
  253. package/GEMINI.md +0 -115
  254. package/Public/Plugin_setup_guide.mp4 +0 -0
  255. package/Public/icon.png +0 -0
  256. package/claude_desktop_config_example.json +0 -15
  257. package/dist/types/responses.d.ts +0 -249
  258. package/dist/types/responses.js +0 -2
  259. package/docs/GraphQL-API.md +0 -888
  260. package/docs/Migration-Guide-v0.5.0.md +0 -684
  261. package/docs/Roadmap.md +0 -53
  262. package/docs/WebAssembly-Integration.md +0 -628
  263. package/docs/editor-plugin-extension.md +0 -370
  264. package/docs/handler-mapping.md +0 -249
  265. package/docs/native-automation-progress.md +0 -128
  266. package/docs/testing-guide.md +0 -423
  267. package/eslint.config.mjs +0 -68
  268. package/mcp-config-example.json +0 -14
  269. package/plugins/McpAutomationBridge/Config/FilterPlugin.ini +0 -8
  270. package/plugins/McpAutomationBridge/McpAutomationBridge.uplugin +0 -64
  271. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/McpAutomationBridge.Build.cs +0 -189
  272. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.cpp +0 -22
  273. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.h +0 -30
  274. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeHelpers.h +0 -1983
  275. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeModule.cpp +0 -72
  276. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSettings.cpp +0 -46
  277. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSubsystem.cpp +0 -846
  278. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AnimationHandlers.cpp +0 -2393
  279. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetQueryHandlers.cpp +0 -300
  280. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetWorkflowHandlers.cpp +0 -2807
  281. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AudioHandlers.cpp +0 -1087
  282. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BehaviorTreeHandlers.cpp +0 -488
  283. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.cpp +0 -643
  284. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.h +0 -31
  285. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintGraphHandlers.cpp +0 -1094
  286. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers.cpp +0 -5750
  287. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers_List.cpp +0 -152
  288. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ControlHandlers.cpp +0 -2614
  289. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_DebugHandlers.cpp +0 -42
  290. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EditorFunctionHandlers.cpp +0 -1237
  291. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EffectHandlers.cpp +0 -1725
  292. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EnvironmentHandlers.cpp +0 -2265
  293. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_FoliageHandlers.cpp +0 -954
  294. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InputHandlers.cpp +0 -209
  295. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InsightsHandlers.cpp +0 -41
  296. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LandscapeHandlers.cpp +0 -1164
  297. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LevelHandlers.cpp +0 -762
  298. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LightingHandlers.cpp +0 -663
  299. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LogHandlers.cpp +0 -136
  300. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_MaterialGraphHandlers.cpp +0 -494
  301. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraGraphHandlers.cpp +0 -278
  302. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraHandlers.cpp +0 -625
  303. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PerformanceHandlers.cpp +0 -401
  304. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PipelineHandlers.cpp +0 -67
  305. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ProcessRequest.cpp +0 -472
  306. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PropertyHandlers.cpp +0 -2634
  307. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_RenderHandlers.cpp +0 -189
  308. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.cpp +0 -917
  309. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.h +0 -39
  310. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequenceHandlers.cpp +0 -2706
  311. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequencerHandlers.cpp +0 -519
  312. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_TestHandlers.cpp +0 -38
  313. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_UiHandlers.cpp +0 -668
  314. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_WorldPartitionHandlers.cpp +0 -346
  315. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.cpp +0 -1345
  316. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.h +0 -149
  317. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpConnectionManager.cpp +0 -782
  318. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSettings.h +0 -115
  319. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSubsystem.h +0 -796
  320. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpConnectionManager.h +0 -117
  321. package/scripts/check-unreal-connection.mjs +0 -19
  322. package/scripts/clean-tmp.js +0 -23
  323. package/scripts/patch-wasm.js +0 -26
  324. package/scripts/run-all-tests.mjs +0 -136
  325. package/scripts/smoke-test.ts +0 -94
  326. package/scripts/sync-mcp-plugin.js +0 -143
  327. package/scripts/test-no-plugin-alternates.mjs +0 -113
  328. package/scripts/validate-server.js +0 -46
  329. package/scripts/verify-automation-bridge.js +0 -200
  330. package/src/automation/bridge.ts +0 -630
  331. package/src/automation/connection-manager.ts +0 -148
  332. package/src/automation/handshake.ts +0 -99
  333. package/src/automation/index.ts +0 -2
  334. package/src/automation/message-handler.ts +0 -192
  335. package/src/automation/request-tracker.ts +0 -155
  336. package/src/automation/types.ts +0 -108
  337. package/src/cli.ts +0 -34
  338. package/src/config/class-aliases.ts +0 -65
  339. package/src/config.ts +0 -73
  340. package/src/constants.ts +0 -29
  341. package/src/graphql/loaders.ts +0 -244
  342. package/src/graphql/resolvers.ts +0 -1008
  343. package/src/graphql/schema.ts +0 -452
  344. package/src/graphql/server.ts +0 -156
  345. package/src/graphql/types.ts +0 -10
  346. package/src/handlers/resource-handlers.ts +0 -186
  347. package/src/index.ts +0 -243
  348. package/src/resources/actors.ts +0 -127
  349. package/src/resources/assets.ts +0 -286
  350. package/src/resources/levels.ts +0 -68
  351. package/src/server/resource-registry.ts +0 -47
  352. package/src/server/tool-registry.ts +0 -354
  353. package/src/server-setup.ts +0 -114
  354. package/src/services/health-monitor.ts +0 -132
  355. package/src/services/metrics-server.ts +0 -176
  356. package/src/tools/actors.ts +0 -564
  357. package/src/tools/animation.ts +0 -941
  358. package/src/tools/assets.ts +0 -394
  359. package/src/tools/audio.ts +0 -499
  360. package/src/tools/base-tool.ts +0 -52
  361. package/src/tools/behavior-tree.ts +0 -45
  362. package/src/tools/blueprint.ts +0 -940
  363. package/src/tools/consolidated-tool-definitions.ts +0 -1256
  364. package/src/tools/consolidated-tool-handlers.ts +0 -302
  365. package/src/tools/debug.ts +0 -622
  366. package/src/tools/dynamic-handler-registry.ts +0 -33
  367. package/src/tools/editor.ts +0 -435
  368. package/src/tools/engine.ts +0 -43
  369. package/src/tools/environment.ts +0 -281
  370. package/src/tools/foliage.ts +0 -596
  371. package/src/tools/handlers/actor-handlers.ts +0 -244
  372. package/src/tools/handlers/animation-handlers.ts +0 -237
  373. package/src/tools/handlers/argument-helper.ts +0 -142
  374. package/src/tools/handlers/asset-handlers.ts +0 -550
  375. package/src/tools/handlers/audio-handlers.ts +0 -194
  376. package/src/tools/handlers/blueprint-handlers.ts +0 -380
  377. package/src/tools/handlers/common-handlers.ts +0 -108
  378. package/src/tools/handlers/editor-handlers.ts +0 -124
  379. package/src/tools/handlers/effect-handlers.ts +0 -224
  380. package/src/tools/handlers/environment-handlers.ts +0 -183
  381. package/src/tools/handlers/graph-handlers.ts +0 -117
  382. package/src/tools/handlers/input-handlers.ts +0 -28
  383. package/src/tools/handlers/inspect-handlers.ts +0 -450
  384. package/src/tools/handlers/level-handlers.ts +0 -253
  385. package/src/tools/handlers/lighting-handlers.ts +0 -151
  386. package/src/tools/handlers/performance-handlers.ts +0 -132
  387. package/src/tools/handlers/pipeline-handlers.ts +0 -194
  388. package/src/tools/handlers/sequence-handlers.ts +0 -438
  389. package/src/tools/handlers/system-handlers.ts +0 -564
  390. package/src/tools/input.ts +0 -160
  391. package/src/tools/introspection.ts +0 -689
  392. package/src/tools/landscape.ts +0 -649
  393. package/src/tools/level.ts +0 -989
  394. package/src/tools/lighting.ts +0 -1052
  395. package/src/tools/logs.ts +0 -219
  396. package/src/tools/materials.ts +0 -295
  397. package/src/tools/niagara.ts +0 -485
  398. package/src/tools/performance.ts +0 -661
  399. package/src/tools/physics.ts +0 -679
  400. package/src/tools/property-dictionary.ts +0 -98
  401. package/src/tools/sequence.ts +0 -385
  402. package/src/tools/tool-definition-utils.ts +0 -35
  403. package/src/tools/ui.ts +0 -452
  404. package/src/types/automation-responses.ts +0 -119
  405. package/src/types/env.ts +0 -17
  406. package/src/types/handler-types.ts +0 -442
  407. package/src/types/responses.ts +0 -355
  408. package/src/types/tool-interfaces.ts +0 -250
  409. package/src/types/tool-types.ts +0 -575
  410. package/src/unreal-bridge.ts +0 -693
  411. package/src/utils/command-validator.ts +0 -139
  412. package/src/utils/elicitation.ts +0 -132
  413. package/src/utils/error-handler.ts +0 -287
  414. package/src/utils/ini-reader.ts +0 -86
  415. package/src/utils/logger.ts +0 -35
  416. package/src/utils/normalize.test.ts +0 -162
  417. package/src/utils/normalize.ts +0 -146
  418. package/src/utils/path-security.ts +0 -43
  419. package/src/utils/response-factory.ts +0 -44
  420. package/src/utils/response-validator.ts +0 -395
  421. package/src/utils/result-helpers.ts +0 -195
  422. package/src/utils/safe-json.test.ts +0 -90
  423. package/src/utils/safe-json.ts +0 -70
  424. package/src/utils/unreal-command-queue.ts +0 -166
  425. package/src/utils/validation.test.ts +0 -184
  426. package/src/utils/validation.ts +0 -312
  427. package/src/wasm/index.ts +0 -838
  428. package/test-server.mjs +0 -100
  429. package/tests/test-animation.mjs +0 -369
  430. package/tests/test-asset-advanced.mjs +0 -82
  431. package/tests/test-asset-graph.mjs +0 -311
  432. package/tests/test-audio.mjs +0 -417
  433. package/tests/test-automation-timeouts.mjs +0 -98
  434. package/tests/test-behavior-tree.mjs +0 -444
  435. package/tests/test-blueprint-graph.mjs +0 -410
  436. package/tests/test-blueprint.mjs +0 -577
  437. package/tests/test-client-mode.mjs +0 -86
  438. package/tests/test-console-command.mjs +0 -56
  439. package/tests/test-control-actor.mjs +0 -425
  440. package/tests/test-control-editor.mjs +0 -112
  441. package/tests/test-graphql.mjs +0 -372
  442. package/tests/test-input.mjs +0 -349
  443. package/tests/test-inspect.mjs +0 -302
  444. package/tests/test-landscape.mjs +0 -316
  445. package/tests/test-lighting.mjs +0 -428
  446. package/tests/test-manage-asset.mjs +0 -438
  447. package/tests/test-manage-level.mjs +0 -89
  448. package/tests/test-materials.mjs +0 -356
  449. package/tests/test-niagara.mjs +0 -185
  450. package/tests/test-no-inline-python.mjs +0 -122
  451. package/tests/test-performance.mjs +0 -539
  452. package/tests/test-plugin-handshake.mjs +0 -82
  453. package/tests/test-runner.mjs +0 -993
  454. package/tests/test-sequence.mjs +0 -104
  455. package/tests/test-system.mjs +0 -96
  456. package/tests/test-wasm.mjs +0 -283
  457. package/tests/test-world-partition.mjs +0 -215
  458. package/tsconfig.json +0 -56
  459. package/vitest.config.ts +0 -35
  460. package/wasm/Cargo.lock +0 -363
  461. package/wasm/Cargo.toml +0 -42
  462. package/wasm/LICENSE +0 -21
  463. package/wasm/README.md +0 -253
  464. package/wasm/src/dependency_resolver.rs +0 -377
  465. package/wasm/src/lib.rs +0 -153
  466. package/wasm/src/property_parser.rs +0 -271
  467. package/wasm/src/transform_math.rs +0 -396
  468. package/wasm/tests/integration.rs +0 -109
@@ -1,796 +0,0 @@
1
- #pragma once
2
-
3
- #include "Containers/Ticker.h"
4
- #include "CoreMinimal.h"
5
- #include "Dom/JsonObject.h"
6
- #include "EditorSubsystem.h"
7
- #include "HAL/CriticalSection.h"
8
- #include "Templates/SharedPointer.h"
9
- #include "McpAutomationBridgeSubsystem.generated.h"
10
-
11
-
12
- UENUM(BlueprintType)
13
- enum class EMcpAutomationBridgeState : uint8 {
14
- Disconnected,
15
- Connecting,
16
- Connected
17
- };
18
-
19
- /** Minimal payload wrapper for incoming automation messages. */
20
- USTRUCT(BlueprintType)
21
- struct MCPAUTOMATIONBRIDGE_API FMcpAutomationMessage {
22
- GENERATED_BODY()
23
-
24
- UPROPERTY(BlueprintReadOnly, Category = "MCP Automation")
25
- FString Type;
26
-
27
- UPROPERTY(BlueprintReadOnly, Category = "MCP Automation")
28
- FString PayloadJson;
29
- };
30
-
31
- DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FMcpAutomationMessageReceived,
32
- const FMcpAutomationMessage &,
33
- Message);
34
-
35
- class FMcpBridgeWebSocket;
36
- DECLARE_LOG_CATEGORY_EXTERN(LogMcpAutomationBridgeSubsystem, Log, All);
37
-
38
- UCLASS()
39
- class MCPAUTOMATIONBRIDGE_API UMcpAutomationBridgeSubsystem
40
- : public UEditorSubsystem {
41
- GENERATED_BODY()
42
-
43
- public:
44
- virtual void Initialize(FSubsystemCollectionBase &Collection) override;
45
- virtual void Deinitialize() override;
46
-
47
- UFUNCTION(BlueprintCallable, Category = "MCP Automation")
48
- bool IsBridgeActive() const;
49
-
50
- UFUNCTION(BlueprintCallable, Category = "MCP Automation")
51
- EMcpAutomationBridgeState GetBridgeState() const;
52
-
53
- UFUNCTION(BlueprintCallable, Category = "MCP Automation")
54
- bool SendRawMessage(const FString &Message);
55
-
56
- UPROPERTY(BlueprintAssignable, Category = "MCP Automation")
57
- FMcpAutomationMessageReceived OnMessageReceived;
58
-
59
- // Public helpers for sending automation responses/errors. These need to be
60
- // callable from out-of-line helper functions and translation-unit-level
61
- // handlers that receive a UMcpAutomationBridgeSubsystem* (e.g. static
62
- // blueprint helper routines). They were previously declared private which
63
- // prevented those helpers from invoking them via a 'Self' pointer.
64
- void SendAutomationResponse(TSharedPtr<FMcpBridgeWebSocket> TargetSocket,
65
- const FString &RequestId, bool bSuccess,
66
- const FString &Message,
67
- const TSharedPtr<FJsonObject> &Result = nullptr,
68
- const FString &ErrorCode = FString());
69
- void SendAutomationError(TSharedPtr<FMcpBridgeWebSocket> TargetSocket,
70
- const FString &RequestId, const FString &Message,
71
- const FString &ErrorCode);
72
-
73
- bool ExecuteEditorCommands(const TArray<FString> &Commands,
74
- FString &OutErrorMessage);
75
- #if MCP_HAS_CONTROLRIG_FACTORY
76
- UBlueprint *CreateControlRigBlueprint(const FString &AssetName,
77
- const FString &PackagePath,
78
- USkeleton *TargetSkeleton,
79
- FString &OutError);
80
- #endif
81
-
82
- // Automation Handler Delegate
83
- using FAutomationHandler = TFunction<bool(const FString &, const FString &,
84
- const TSharedPtr<FJsonObject> &,
85
- TSharedPtr<FMcpBridgeWebSocket>)>;
86
-
87
- /**
88
- * Registers a handler for a specific automation action.
89
- * This allows for O(1) dispatch of automation requests and runtime
90
- * extensibility.
91
- */
92
- void RegisterHandler(const FString &Action, FAutomationHandler Handler);
93
-
94
- private:
95
- // Telemetry structs moved to McpConnectionManager
96
-
97
- bool Tick(float DeltaTime);
98
-
99
- // Connection Manager
100
- TSharedPtr<class FMcpConnectionManager> ConnectionManager;
101
-
102
- // Track a blueprint currently being modified by this subsystem request
103
- // so scope-exit handlers can reliably clear busy state without
104
- // attempting to capture local variables inside macros.
105
- FString CurrentBusyBlueprintKey;
106
- bool bCurrentBlueprintBusyMarked = false;
107
- bool bCurrentBlueprintBusyScheduled = false;
108
-
109
- // Pending automation request queue (thread-safe). Inbound socket threads
110
- // will enqueue requests here; the queue is drained sequentially on the
111
- // game thread to ensure deterministic processing order and avoid
112
- // reentrancy issues.
113
- struct FPendingAutomationRequest {
114
- FString RequestId;
115
- FString Action;
116
- TSharedPtr<FJsonObject> Payload;
117
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket;
118
- };
119
- TArray<FPendingAutomationRequest> PendingAutomationRequests;
120
- FCriticalSection PendingAutomationRequestsMutex;
121
- bool bPendingRequestsScheduled = false;
122
- void ProcessPendingAutomationRequests();
123
-
124
- void RecordAutomationTelemetry(const FString &RequestId, bool bSuccess,
125
- const FString &Message,
126
- const FString &ErrorCode);
127
-
128
- // Active Log Device
129
- TSharedPtr<FOutputDevice> LogCaptureDevice;
130
-
131
- // Action handlers (implemented in separate translation units)
132
- TMap<FString, FAutomationHandler> AutomationHandlers;
133
- void InitializeHandlers();
134
-
135
- /**
136
- * Handle lightweight, well-known editor function invocations sent from the
137
- * server. This action is intended as a native replacement for the
138
- * execute_editor_python fallback for common scripted templates (spawn,
139
- * delete, list actors, set viewport camera, asset existence checks, etc.).
140
- * When the plugin implements a native function we will handle it here and
141
- * avoid executing arbitrary Python inside the editor.
142
- */
143
- bool
144
- HandleExecuteEditorFunction(const FString &RequestId, const FString &Action,
145
- const TSharedPtr<FJsonObject> &Payload,
146
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
147
- bool
148
- HandleSetObjectProperty(const FString &RequestId, const FString &Action,
149
- const TSharedPtr<FJsonObject> &Payload,
150
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
151
- bool
152
- HandleGetObjectProperty(const FString &RequestId, const FString &Action,
153
- const TSharedPtr<FJsonObject> &Payload,
154
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
155
- // Array manipulation operations
156
- bool HandleArrayAppend(const FString &RequestId, const FString &Action,
157
- const TSharedPtr<FJsonObject> &Payload,
158
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
159
- bool HandleArrayRemove(const FString &RequestId, const FString &Action,
160
- const TSharedPtr<FJsonObject> &Payload,
161
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
162
- bool HandleArrayInsert(const FString &RequestId, const FString &Action,
163
- const TSharedPtr<FJsonObject> &Payload,
164
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
165
- bool HandleArrayGetElement(const FString &RequestId, const FString &Action,
166
- const TSharedPtr<FJsonObject> &Payload,
167
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
168
- bool HandleArraySetElement(const FString &RequestId, const FString &Action,
169
- const TSharedPtr<FJsonObject> &Payload,
170
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
171
- bool HandleArrayClear(const FString &RequestId, const FString &Action,
172
- const TSharedPtr<FJsonObject> &Payload,
173
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
174
- // Map manipulation operations
175
- bool HandleMapSetValue(const FString &RequestId, const FString &Action,
176
- const TSharedPtr<FJsonObject> &Payload,
177
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
178
- bool HandleMapGetValue(const FString &RequestId, const FString &Action,
179
- const TSharedPtr<FJsonObject> &Payload,
180
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
181
- bool HandleMapRemoveKey(const FString &RequestId, const FString &Action,
182
- const TSharedPtr<FJsonObject> &Payload,
183
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
184
- bool HandleMapHasKey(const FString &RequestId, const FString &Action,
185
- const TSharedPtr<FJsonObject> &Payload,
186
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
187
- bool HandleMapGetKeys(const FString &RequestId, const FString &Action,
188
- const TSharedPtr<FJsonObject> &Payload,
189
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
190
- bool HandleMapClear(const FString &RequestId, const FString &Action,
191
- const TSharedPtr<FJsonObject> &Payload,
192
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
193
- // Set manipulation operations
194
- bool HandleSetAdd(const FString &RequestId, const FString &Action,
195
- const TSharedPtr<FJsonObject> &Payload,
196
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
197
- bool HandleSetRemove(const FString &RequestId, const FString &Action,
198
- const TSharedPtr<FJsonObject> &Payload,
199
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
200
- bool HandleSetContains(const FString &RequestId, const FString &Action,
201
- const TSharedPtr<FJsonObject> &Payload,
202
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
203
- bool HandleSetClear(const FString &RequestId, const FString &Action,
204
- const TSharedPtr<FJsonObject> &Payload,
205
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
206
- // Asset-related automation actions implemented by the plugin (editor-only
207
- // operations)
208
- bool HandleAssetAction(const FString &RequestId, const FString &Action,
209
- const TSharedPtr<FJsonObject> &Payload,
210
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
211
- // Asset dependency graph traversal
212
- bool
213
- HandleGetAssetReferences(const FString &RequestId, const FString &Action,
214
- const TSharedPtr<FJsonObject> &Payload,
215
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
216
- bool
217
- HandleGetAssetDependencies(const FString &RequestId, const FString &Action,
218
- const TSharedPtr<FJsonObject> &Payload,
219
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
220
- // Actor/editor control actions implemented by the plugin
221
- bool
222
- HandleControlActorAction(const FString &RequestId, const FString &Action,
223
- const TSharedPtr<FJsonObject> &Payload,
224
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
225
- bool
226
- HandleControlEditorAction(const FString &RequestId, const FString &Action,
227
- const TSharedPtr<FJsonObject> &Payload,
228
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
229
- // Level and lighting helpers (top-level actions)
230
- bool HandleLevelAction(const FString &RequestId, const FString &Action,
231
- const TSharedPtr<FJsonObject> &Payload,
232
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
233
- bool HandleUiAction(const FString &RequestId, const FString &Action,
234
- const TSharedPtr<FJsonObject> &Payload,
235
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
236
- // Animation and physics related automation actions
237
- bool HandleAnimationPhysicsAction(
238
- const FString &RequestId, const FString &Action,
239
- const TSharedPtr<FJsonObject> &Payload,
240
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
241
- bool HandleEffectAction(const FString &RequestId, const FString &Action,
242
- const TSharedPtr<FJsonObject> &Payload,
243
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
244
- bool HandleBlueprintAction(const FString &RequestId, const FString &Action,
245
- const TSharedPtr<FJsonObject> &Payload,
246
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
247
- bool HandleSequenceAction(const FString &RequestId, const FString &Action,
248
- const TSharedPtr<FJsonObject> &Payload,
249
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
250
- bool HandleInputAction(const FString &RequestId, const FString &Action,
251
- const TSharedPtr<FJsonObject> &Payload,
252
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
253
- bool CreateNiagaraEffect(const FString &RequestId,
254
- const TSharedPtr<FJsonObject> &Payload,
255
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket,
256
- const FString &EffectName,
257
- const FString &DefaultSystemPath);
258
- // Audio related automation actions
259
- bool HandleAudioAction(const FString &RequestId, const FString &Action,
260
- const TSharedPtr<FJsonObject> &Payload,
261
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
262
- // Lighting related automation actions
263
- bool HandleLightingAction(const FString &RequestId, const FString &Action,
264
- const TSharedPtr<FJsonObject> &Payload,
265
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
266
- // Performance related automation actions
267
- bool
268
- HandlePerformanceAction(const FString &RequestId, const FString &Action,
269
- const TSharedPtr<FJsonObject> &Payload,
270
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
271
- // Environment building automation actions (landscape, foliage, etc.)
272
- bool HandleBuildEnvironmentAction(
273
- const FString &RequestId, const FString &Action,
274
- const TSharedPtr<FJsonObject> &Payload,
275
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
276
- bool HandleControlEnvironmentAction(
277
- const FString &RequestId, const FString &Action,
278
- const TSharedPtr<FJsonObject> &Payload,
279
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
280
- bool HandlePaintFoliage(const FString &RequestId, const FString &Action,
281
- const TSharedPtr<FJsonObject> &Payload,
282
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
283
- bool
284
- HandleGetFoliageInstances(const FString &RequestId, const FString &Action,
285
- const TSharedPtr<FJsonObject> &Payload,
286
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
287
- bool HandleRemoveFoliage(const FString &RequestId, const FString &Action,
288
- const TSharedPtr<FJsonObject> &Payload,
289
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
290
- // Asset workflow handlers
291
- bool
292
- HandleSourceControlCheckout(const FString &RequestId, const FString &Action,
293
- const TSharedPtr<FJsonObject> &Payload,
294
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
295
- bool
296
- HandleSourceControlSubmit(const FString &RequestId, const FString &Action,
297
- const TSharedPtr<FJsonObject> &Payload,
298
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
299
- bool HandleFixupRedirectors(const FString &RequestId, const FString &Action,
300
- const TSharedPtr<FJsonObject> &Payload,
301
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
302
- bool HandleBulkRenameAssets(const FString &RequestId, const FString &Action,
303
- const TSharedPtr<FJsonObject> &Payload,
304
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
305
- bool HandleBulkDeleteAssets(const FString &RequestId, const FString &Action,
306
- const TSharedPtr<FJsonObject> &Payload,
307
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
308
- bool
309
- HandleGenerateThumbnail(const FString &RequestId, const FString &Action,
310
- const TSharedPtr<FJsonObject> &Payload,
311
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
312
- // Landscape, foliage, and Niagara handlers
313
- bool HandleCreateLandscape(const FString &RequestId, const FString &Action,
314
- const TSharedPtr<FJsonObject> &Payload,
315
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
316
- bool HandleCreateProceduralTerrain(
317
- const FString &RequestId, const FString &Action,
318
- const TSharedPtr<FJsonObject> &Payload,
319
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
320
- bool HandleCreateProceduralFoliage(
321
- const FString &RequestId, const FString &Action,
322
- const TSharedPtr<FJsonObject> &Payload,
323
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
324
- bool HandleCreateLandscapeGrassType(
325
- const FString &RequestId, const FString &Action,
326
- const TSharedPtr<FJsonObject> &Payload,
327
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
328
- bool HandleGenerateLODs(const FString &RequestId, const FString &Action,
329
- const TSharedPtr<FJsonObject> &Payload,
330
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
331
- bool HandleBakeLightmap(const FString &RequestId, const FString &Action,
332
- const TSharedPtr<FJsonObject> &Payload,
333
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
334
- // Aggregate landscape editor that dispatches to specific edit ops
335
- bool HandleEditLandscape(const FString &RequestId, const FString &Action,
336
- const TSharedPtr<FJsonObject> &Payload,
337
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
338
- // Specific landscape edit operations
339
- bool HandleModifyHeightmap(const FString &RequestId, const FString &Action,
340
- const TSharedPtr<FJsonObject> &Payload,
341
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
342
- bool
343
- HandlePaintLandscapeLayer(const FString &RequestId, const FString &Action,
344
- const TSharedPtr<FJsonObject> &Payload,
345
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
346
- bool HandleSculptLandscape(const FString &RequestId, const FString &Action,
347
- const TSharedPtr<FJsonObject> &Payload,
348
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
349
- bool
350
- HandleSetLandscapeMaterial(const FString &RequestId, const FString &Action,
351
- const TSharedPtr<FJsonObject> &Payload,
352
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
353
- bool HandleCreateNiagaraSystemNative(
354
- const FString &RequestId, const FString &Action,
355
- const TSharedPtr<FJsonObject> &Payload,
356
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
357
- bool
358
- HandleAddSequencerKeyframe(const FString &RequestId, const FString &Action,
359
- const TSharedPtr<FJsonObject> &Payload,
360
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
361
- bool
362
- HandleManageSequencerTrack(const FString &RequestId, const FString &Action,
363
- const TSharedPtr<FJsonObject> &Payload,
364
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
365
- bool
366
- HandleCreateAnimBlueprint(const FString &RequestId, const FString &Action,
367
- const TSharedPtr<FJsonObject> &Payload,
368
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
369
- bool
370
- HandleCreateMaterialNodes(const FString &RequestId, const FString &Action,
371
- const TSharedPtr<FJsonObject> &Payload,
372
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
373
- // Niagara system handlers
374
- bool
375
- HandleCreateNiagaraSystem(const FString &RequestId, const FString &Action,
376
- const TSharedPtr<FJsonObject> &Payload,
377
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
378
- bool
379
- HandleCreateNiagaraRibbon(const FString &RequestId, const FString &Action,
380
- const TSharedPtr<FJsonObject> &Payload,
381
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
382
- bool
383
- HandleCreateNiagaraEmitter(const FString &RequestId, const FString &Action,
384
- const TSharedPtr<FJsonObject> &Payload,
385
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
386
- bool
387
- HandleSpawnNiagaraActor(const FString &RequestId, const FString &Action,
388
- const TSharedPtr<FJsonObject> &Payload,
389
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
390
- bool HandleModifyNiagaraParameter(
391
- const FString &RequestId, const FString &Action,
392
- const TSharedPtr<FJsonObject> &Payload,
393
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
394
- // Animation blueprint handlers
395
- bool HandlePlayAnimMontage(const FString &RequestId, const FString &Action,
396
- const TSharedPtr<FJsonObject> &Payload,
397
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
398
- bool HandleSetupRagdoll(const FString &RequestId, const FString &Action,
399
- const TSharedPtr<FJsonObject> &Payload,
400
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
401
- // Material graph handlers
402
- bool HandleAddMaterialTextureSample(
403
- const FString &RequestId, const FString &Action,
404
- const TSharedPtr<FJsonObject> &Payload,
405
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
406
- bool
407
- HandleAddMaterialExpression(const FString &RequestId, const FString &Action,
408
- const TSharedPtr<FJsonObject> &Payload,
409
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
410
- // Sequencer track handlers
411
- bool HandleAddCameraTrack(const FString &RequestId, const FString &Action,
412
- const TSharedPtr<FJsonObject> &Payload,
413
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
414
- bool
415
- HandleAddAnimationTrack(const FString &RequestId, const FString &Action,
416
- const TSharedPtr<FJsonObject> &Payload,
417
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
418
- bool
419
- HandleAddTransformTrack(const FString &RequestId, const FString &Action,
420
- const TSharedPtr<FJsonObject> &Payload,
421
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
422
- // Foliage handlers
423
- bool HandleAddFoliageType(const FString &RequestId, const FString &Action,
424
- const TSharedPtr<FJsonObject> &Payload,
425
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
426
- bool
427
- HandleAddFoliageInstances(const FString &RequestId, const FString &Action,
428
- const TSharedPtr<FJsonObject> &Payload,
429
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
430
- // SCS Blueprint authoring handler
431
- bool HandleSCSAction(const FString &RequestId, const FString &Action,
432
- const TSharedPtr<FJsonObject> &Payload,
433
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
434
-
435
- // Additional consolidated tool handlers
436
- bool
437
- HandleSystemControlAction(const FString &RequestId, const FString &Action,
438
- const TSharedPtr<FJsonObject> &Payload,
439
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
440
- bool
441
- HandleConsoleCommandAction(const FString &RequestId, const FString &Action,
442
- const TSharedPtr<FJsonObject> &Payload,
443
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
444
- bool HandleInspectAction(const FString &RequestId, const FString &Action,
445
- const TSharedPtr<FJsonObject> &Payload,
446
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
447
-
448
- // 1. Editor Authoring & Graph Editing
449
- bool
450
- HandleBlueprintGraphAction(const FString &RequestId, const FString &Action,
451
- const TSharedPtr<FJsonObject> &Payload,
452
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
453
- bool
454
- HandleNiagaraGraphAction(const FString &RequestId, const FString &Action,
455
- const TSharedPtr<FJsonObject> &Payload,
456
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
457
- bool HandleMaterialGraphAction(const FString &RequestId,
458
- const FString &Action,
459
- const TSharedPtr<FJsonObject> &Payload,
460
- TSharedPtr<FMcpBridgeWebSocket> Socket);
461
- bool
462
- HandleBehaviorTreeAction(const FString &RequestId, const FString &Action,
463
- const TSharedPtr<FJsonObject> &Payload,
464
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
465
- bool
466
- HandleWorldPartitionAction(const FString &RequestId, const FString &Action,
467
- const TSharedPtr<FJsonObject> &Payload,
468
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
469
- bool HandleRenderAction(const FString &RequestId, const FString &Action,
470
- const TSharedPtr<FJsonObject> &Payload,
471
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
472
- bool HandleListBlueprints(const FString &RequestId, const FString &Action,
473
- const TSharedPtr<FJsonObject> &Payload,
474
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
475
-
476
- // 2. Execution & Build / Test Pipeline
477
- bool HandlePipelineAction(const FString &RequestId, const FString &Action,
478
- const TSharedPtr<FJsonObject> &Payload,
479
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
480
- bool HandleTestAction(const FString &RequestId, const FString &Action,
481
- const TSharedPtr<FJsonObject> &Payload,
482
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
483
-
484
- // 3. Observability, Logs, Debugging & History
485
- bool HandleLogAction(const FString &RequestId, const FString &Action,
486
- const TSharedPtr<FJsonObject> &Payload,
487
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
488
- bool HandleDebugAction(const FString &RequestId, const FString &Action,
489
- const TSharedPtr<FJsonObject> &Payload,
490
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
491
- bool HandleAssetQueryAction(const FString &RequestId, const FString &Action,
492
- const TSharedPtr<FJsonObject> &Payload,
493
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
494
- bool HandleInsightsAction(const FString &RequestId, const FString &Action,
495
- const TSharedPtr<FJsonObject> &Payload,
496
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
497
-
498
- // 4. Input, UI, Hotkeys & Dialogs
499
- bool
500
- HandleUiAutomationAction(const FString &RequestId, const FString &Action,
501
- const TSharedPtr<FJsonObject> &Payload,
502
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
503
-
504
- private:
505
- // Ticker handle for managing the subsystems tick function
506
- FTSTicker::FDelegateHandle TickHandle;
507
-
508
- // Sequence helpers
509
- FString ResolveSequencePath(const TSharedPtr<FJsonObject> &Payload);
510
- TSharedPtr<FJsonObject> EnsureSequenceEntry(const FString &SeqPath);
511
-
512
- // Individual sequence action handlers
513
- bool HandleSequenceCreate(const FString &RequestId,
514
- const TSharedPtr<FJsonObject> &Payload,
515
- TSharedPtr<FMcpBridgeWebSocket> Socket);
516
- bool HandleSequenceSetDisplayRate(const FString &RequestId,
517
- const TSharedPtr<FJsonObject> &Payload,
518
- TSharedPtr<FMcpBridgeWebSocket> Socket);
519
- bool HandleSequenceSetProperties(const FString &RequestId,
520
- const TSharedPtr<FJsonObject> &Payload,
521
- TSharedPtr<FMcpBridgeWebSocket> Socket);
522
- bool HandleSequenceOpen(const FString &RequestId,
523
- const TSharedPtr<FJsonObject> &Payload,
524
- TSharedPtr<FMcpBridgeWebSocket> Socket);
525
- bool HandleSequenceAddCamera(const FString &RequestId,
526
- const TSharedPtr<FJsonObject> &Payload,
527
- TSharedPtr<FMcpBridgeWebSocket> Socket);
528
- bool HandleSequencePlay(const FString &RequestId,
529
- const TSharedPtr<FJsonObject> &Payload,
530
- TSharedPtr<FMcpBridgeWebSocket> Socket);
531
- bool HandleSequenceAddActor(const FString &RequestId,
532
- const TSharedPtr<FJsonObject> &Payload,
533
- TSharedPtr<FMcpBridgeWebSocket> Socket);
534
- bool HandleSequenceAddActors(const FString &RequestId,
535
- const TSharedPtr<FJsonObject> &Payload,
536
- TSharedPtr<FMcpBridgeWebSocket> Socket);
537
- bool HandleSequenceAddSpawnable(const FString &RequestId,
538
- const TSharedPtr<FJsonObject> &Payload,
539
- TSharedPtr<FMcpBridgeWebSocket> Socket);
540
- bool HandleSequenceRemoveActors(const FString &RequestId,
541
- const TSharedPtr<FJsonObject> &Payload,
542
- TSharedPtr<FMcpBridgeWebSocket> Socket);
543
- bool HandleSequenceGetBindings(const FString &RequestId,
544
- const TSharedPtr<FJsonObject> &Payload,
545
- TSharedPtr<FMcpBridgeWebSocket> Socket);
546
- bool HandleSequenceGetProperties(const FString &RequestId,
547
- const TSharedPtr<FJsonObject> &Payload,
548
- TSharedPtr<FMcpBridgeWebSocket> Socket);
549
- bool HandleSequenceSetPlaybackSpeed(const FString &RequestId,
550
- const TSharedPtr<FJsonObject> &Payload,
551
- TSharedPtr<FMcpBridgeWebSocket> Socket);
552
- bool HandleSequencePause(const FString &RequestId,
553
- const TSharedPtr<FJsonObject> &Payload,
554
- TSharedPtr<FMcpBridgeWebSocket> Socket);
555
- bool HandleSequenceStop(const FString &RequestId,
556
- const TSharedPtr<FJsonObject> &Payload,
557
- TSharedPtr<FMcpBridgeWebSocket> Socket);
558
- bool HandleSequenceList(const FString &RequestId,
559
- const TSharedPtr<FJsonObject> &Payload,
560
- TSharedPtr<FMcpBridgeWebSocket> Socket);
561
- bool HandleSequenceDuplicate(const FString &RequestId,
562
- const TSharedPtr<FJsonObject> &Payload,
563
- TSharedPtr<FMcpBridgeWebSocket> Socket);
564
- bool HandleSequenceRename(const FString &RequestId,
565
- const TSharedPtr<FJsonObject> &Payload,
566
- TSharedPtr<FMcpBridgeWebSocket> Socket);
567
- bool HandleSequenceDelete(const FString &RequestId,
568
- const TSharedPtr<FJsonObject> &Payload,
569
- TSharedPtr<FMcpBridgeWebSocket> Socket);
570
- bool HandleSequenceGetMetadata(const FString &RequestId,
571
- const TSharedPtr<FJsonObject> &Payload,
572
- TSharedPtr<FMcpBridgeWebSocket> Socket);
573
- bool HandleSequenceAddKeyframe(const FString &RequestId,
574
- const TSharedPtr<FJsonObject> &Payload,
575
- TSharedPtr<FMcpBridgeWebSocket> Socket);
576
-
577
- // Control handlers
578
- AActor *FindActorByName(const FString &Target);
579
-
580
- // Control Actor Subhandlers
581
- bool HandleControlActorSpawn(const FString &RequestId,
582
- const TSharedPtr<FJsonObject> &Payload,
583
- TSharedPtr<FMcpBridgeWebSocket> Socket);
584
- bool HandleControlActorSpawnBlueprint(const FString &RequestId,
585
- const TSharedPtr<FJsonObject> &Payload,
586
- TSharedPtr<FMcpBridgeWebSocket> Socket);
587
- bool HandleControlActorDelete(const FString &RequestId,
588
- const TSharedPtr<FJsonObject> &Payload,
589
- TSharedPtr<FMcpBridgeWebSocket> Socket);
590
- bool HandleControlActorApplyForce(const FString &RequestId,
591
- const TSharedPtr<FJsonObject> &Payload,
592
- TSharedPtr<FMcpBridgeWebSocket> Socket);
593
- bool HandleControlActorSetTransform(const FString &RequestId,
594
- const TSharedPtr<FJsonObject> &Payload,
595
- TSharedPtr<FMcpBridgeWebSocket> Socket);
596
- bool HandleControlActorGetTransform(const FString &RequestId,
597
- const TSharedPtr<FJsonObject> &Payload,
598
- TSharedPtr<FMcpBridgeWebSocket> Socket);
599
- bool HandleControlActorSetVisibility(const FString &RequestId,
600
- const TSharedPtr<FJsonObject> &Payload,
601
- TSharedPtr<FMcpBridgeWebSocket> Socket);
602
- bool HandleControlActorAddComponent(const FString &RequestId,
603
- const TSharedPtr<FJsonObject> &Payload,
604
- TSharedPtr<FMcpBridgeWebSocket> Socket);
605
- bool HandleSequenceAddSection(const FString &RequestId,
606
- const TSharedPtr<FJsonObject> &Payload,
607
- TSharedPtr<FMcpBridgeWebSocket> Socket);
608
- bool HandleSequenceSetTickResolution(const FString &RequestId,
609
- const TSharedPtr<FJsonObject> &Payload,
610
- TSharedPtr<FMcpBridgeWebSocket> Socket);
611
- bool HandleSequenceSetViewRange(const FString &RequestId,
612
- const TSharedPtr<FJsonObject> &Payload,
613
- TSharedPtr<FMcpBridgeWebSocket> Socket);
614
- bool HandleSequenceSetTrackMuted(const FString &RequestId,
615
- const TSharedPtr<FJsonObject> &Payload,
616
- TSharedPtr<FMcpBridgeWebSocket> Socket);
617
- bool HandleSequenceSetTrackSolo(const FString &RequestId,
618
- const TSharedPtr<FJsonObject> &Payload,
619
- TSharedPtr<FMcpBridgeWebSocket> Socket);
620
- bool HandleSequenceSetTrackLocked(const FString &RequestId,
621
- const TSharedPtr<FJsonObject> &Payload,
622
- TSharedPtr<FMcpBridgeWebSocket> Socket);
623
- bool HandleSequenceRemoveTrack(const FString &RequestId,
624
- const TSharedPtr<FJsonObject> &Payload,
625
- TSharedPtr<FMcpBridgeWebSocket> Socket);
626
-
627
- bool HandleControlActorSetComponentProperties(
628
- const FString &RequestId, const TSharedPtr<FJsonObject> &Payload,
629
- TSharedPtr<FMcpBridgeWebSocket> Socket);
630
- bool HandleControlActorGetComponents(const FString &RequestId,
631
- const TSharedPtr<FJsonObject> &Payload,
632
- TSharedPtr<FMcpBridgeWebSocket> Socket);
633
- bool HandleControlActorDuplicate(const FString &RequestId,
634
- const TSharedPtr<FJsonObject> &Payload,
635
- TSharedPtr<FMcpBridgeWebSocket> Socket);
636
- bool HandleControlActorAttach(const FString &RequestId,
637
- const TSharedPtr<FJsonObject> &Payload,
638
- TSharedPtr<FMcpBridgeWebSocket> Socket);
639
- bool HandleControlActorDetach(const FString &RequestId,
640
- const TSharedPtr<FJsonObject> &Payload,
641
- TSharedPtr<FMcpBridgeWebSocket> Socket);
642
- bool HandleControlActorFindByTag(const FString &RequestId,
643
- const TSharedPtr<FJsonObject> &Payload,
644
- TSharedPtr<FMcpBridgeWebSocket> Socket);
645
- bool HandleControlActorAddTag(const FString &RequestId,
646
- const TSharedPtr<FJsonObject> &Payload,
647
- TSharedPtr<FMcpBridgeWebSocket> Socket);
648
- bool HandleControlActorRemoveTag(const FString &RequestId,
649
- const TSharedPtr<FJsonObject> &Payload,
650
- TSharedPtr<FMcpBridgeWebSocket> Socket);
651
- bool HandleControlActorFindByName(const FString &RequestId,
652
- const TSharedPtr<FJsonObject> &Payload,
653
- TSharedPtr<FMcpBridgeWebSocket> Socket);
654
- bool HandleControlActorDeleteByTag(const FString &RequestId,
655
- const TSharedPtr<FJsonObject> &Payload,
656
- TSharedPtr<FMcpBridgeWebSocket> Socket);
657
- bool HandleControlActorSetBlueprintVariables(
658
- const FString &RequestId, const TSharedPtr<FJsonObject> &Payload,
659
- TSharedPtr<FMcpBridgeWebSocket> Socket);
660
- bool HandleControlActorCreateSnapshot(const FString &RequestId,
661
- const TSharedPtr<FJsonObject> &Payload,
662
- TSharedPtr<FMcpBridgeWebSocket> Socket);
663
- bool HandleControlActorList(const FString &RequestId,
664
- const TSharedPtr<FJsonObject> &Payload,
665
- TSharedPtr<FMcpBridgeWebSocket> Socket);
666
- bool HandleControlActorGet(const FString &RequestId,
667
- const TSharedPtr<FJsonObject> &Payload,
668
- TSharedPtr<FMcpBridgeWebSocket> Socket);
669
- bool
670
- HandleControlActorRestoreSnapshot(const FString &RequestId,
671
- const TSharedPtr<FJsonObject> &Payload,
672
- TSharedPtr<FMcpBridgeWebSocket> Socket);
673
- bool HandleControlActorExport(const FString &RequestId,
674
- const TSharedPtr<FJsonObject> &Payload,
675
- TSharedPtr<FMcpBridgeWebSocket> Socket);
676
- bool HandleControlActorGetBoundingBox(const FString &RequestId,
677
- const TSharedPtr<FJsonObject> &Payload,
678
- TSharedPtr<FMcpBridgeWebSocket> Socket);
679
- bool HandleControlActorGetMetadata(const FString &RequestId,
680
- const TSharedPtr<FJsonObject> &Payload,
681
- TSharedPtr<FMcpBridgeWebSocket> Socket);
682
-
683
- // Control Editor Subhandlers
684
- bool HandleControlEditorPlay(const FString &RequestId,
685
- const TSharedPtr<FJsonObject> &Payload,
686
- TSharedPtr<FMcpBridgeWebSocket> Socket);
687
- bool HandleControlEditorStop(const FString &RequestId,
688
- const TSharedPtr<FJsonObject> &Payload,
689
- TSharedPtr<FMcpBridgeWebSocket> Socket);
690
- bool HandleControlEditorEject(const FString &RequestId,
691
- const TSharedPtr<FJsonObject> &Payload,
692
- TSharedPtr<FMcpBridgeWebSocket> Socket);
693
- bool HandleControlEditorPossess(const FString &RequestId,
694
- const TSharedPtr<FJsonObject> &Payload,
695
- TSharedPtr<FMcpBridgeWebSocket> Socket);
696
- bool HandleControlEditorFocusActor(const FString &RequestId,
697
- const TSharedPtr<FJsonObject> &Payload,
698
- TSharedPtr<FMcpBridgeWebSocket> Socket);
699
- bool HandleControlEditorSetCamera(const FString &RequestId,
700
- const TSharedPtr<FJsonObject> &Payload,
701
- TSharedPtr<FMcpBridgeWebSocket> Socket);
702
- bool HandleControlEditorSetViewMode(const FString &RequestId,
703
- const TSharedPtr<FJsonObject> &Payload,
704
- TSharedPtr<FMcpBridgeWebSocket> Socket);
705
- bool HandleControlEditorOpenAsset(const FString &RequestId,
706
- const TSharedPtr<FJsonObject> &Payload,
707
- TSharedPtr<FMcpBridgeWebSocket> Socket);
708
-
709
- // Asset handlers
710
- bool HandleImportAsset(const FString &RequestId,
711
- const TSharedPtr<FJsonObject> &Payload,
712
- TSharedPtr<FMcpBridgeWebSocket> Socket);
713
- bool HandleCreateMaterial(const FString &RequestId,
714
- const TSharedPtr<FJsonObject> &Payload,
715
- TSharedPtr<FMcpBridgeWebSocket> Socket);
716
- bool HandleCreateMaterialInstance(const FString &RequestId,
717
- const TSharedPtr<FJsonObject> &Payload,
718
- TSharedPtr<FMcpBridgeWebSocket> Socket);
719
- bool HandleCreateNiagaraSystemAsset(const FString &RequestId,
720
- const TSharedPtr<FJsonObject> &Payload,
721
- TSharedPtr<FMcpBridgeWebSocket> Socket);
722
- bool HandleDuplicateAsset(const FString &RequestId,
723
- const TSharedPtr<FJsonObject> &Payload,
724
- TSharedPtr<FMcpBridgeWebSocket> Socket);
725
- bool HandleRenameAsset(const FString &RequestId,
726
- const TSharedPtr<FJsonObject> &Payload,
727
- TSharedPtr<FMcpBridgeWebSocket> Socket);
728
- bool HandleMoveAsset(const FString &RequestId,
729
- const TSharedPtr<FJsonObject> &Payload,
730
- TSharedPtr<FMcpBridgeWebSocket> Socket);
731
- bool HandleDeleteAssets(const FString &RequestId,
732
- const TSharedPtr<FJsonObject> &Payload,
733
- TSharedPtr<FMcpBridgeWebSocket> Socket);
734
- bool HandleListAssets(const FString &RequestId,
735
- const TSharedPtr<FJsonObject> &Payload,
736
- TSharedPtr<FMcpBridgeWebSocket> Socket);
737
- bool HandleGetAsset(const FString &RequestId,
738
- const TSharedPtr<FJsonObject> &Payload,
739
- TSharedPtr<FMcpBridgeWebSocket> Socket);
740
- bool HandleCreateFolder(const FString &RequestId,
741
- const TSharedPtr<FJsonObject> &Payload,
742
- TSharedPtr<FMcpBridgeWebSocket> Socket);
743
- bool HandleGetDependencies(const FString &RequestId,
744
- const TSharedPtr<FJsonObject> &Payload,
745
- TSharedPtr<FMcpBridgeWebSocket> Socket);
746
- bool HandleGetAssetGraph(const FString &RequestId,
747
- const TSharedPtr<FJsonObject> &Payload,
748
- TSharedPtr<FMcpBridgeWebSocket> Socket);
749
- bool HandleCreateThumbnail(const FString &RequestId,
750
- const TSharedPtr<FJsonObject> &Payload,
751
- TSharedPtr<FMcpBridgeWebSocket> Socket);
752
- bool HandleSetTags(const FString &RequestId,
753
- const TSharedPtr<FJsonObject> &Payload,
754
- TSharedPtr<FMcpBridgeWebSocket> Socket);
755
- bool HandleSetMetadata(const FString &RequestId,
756
- const TSharedPtr<FJsonObject> &Payload,
757
- TSharedPtr<FMcpBridgeWebSocket> Socket);
758
- bool HandleGetMetadata(const FString &RequestId,
759
- const TSharedPtr<FJsonObject> &Payload,
760
- TSharedPtr<FMcpBridgeWebSocket> Socket);
761
- bool HandleGenerateReport(const FString &RequestId,
762
- const TSharedPtr<FJsonObject> &Payload,
763
- TSharedPtr<FMcpBridgeWebSocket> Socket);
764
- bool HandleValidateAsset(const FString &RequestId,
765
- const TSharedPtr<FJsonObject> &Payload,
766
- TSharedPtr<FMcpBridgeWebSocket> Socket);
767
- bool HandleAddMaterialParameter(const FString &RequestId,
768
- const TSharedPtr<FJsonObject> &Payload,
769
- TSharedPtr<FMcpBridgeWebSocket> Socket);
770
- bool HandleListMaterialInstances(const FString &RequestId,
771
- const TSharedPtr<FJsonObject> &Payload,
772
- TSharedPtr<FMcpBridgeWebSocket> Socket);
773
- bool HandleResetInstanceParameters(const FString &RequestId,
774
- const TSharedPtr<FJsonObject> &Payload,
775
- TSharedPtr<FMcpBridgeWebSocket> Socket);
776
- bool HandleDoesAssetExist(const FString &RequestId,
777
- const TSharedPtr<FJsonObject> &Payload,
778
- TSharedPtr<FMcpBridgeWebSocket> Socket);
779
- bool HandleGetMaterialStats(const FString &RequestId,
780
- const TSharedPtr<FJsonObject> &Payload,
781
- TSharedPtr<FMcpBridgeWebSocket> Socket);
782
- bool HandleRebuildMaterial(const FString &RequestId,
783
- const TSharedPtr<FJsonObject> &Payload,
784
- TSharedPtr<FMcpBridgeWebSocket> Socket);
785
-
786
- // Lightweight snapshot cache for automation requests (e.g., create_snapshot)
787
- TMap<FString, FTransform> CachedActorSnapshots;
788
-
789
- /** Guards against reentrant automation request processing */
790
- bool bProcessingAutomationRequest = false;
791
-
792
- void
793
- ProcessAutomationRequest(const FString &RequestId, const FString &Action,
794
- const TSharedPtr<FJsonObject> &Payload,
795
- TSharedPtr<FMcpBridgeWebSocket> RequestingSocket);
796
- };