unreal-engine-mcp-server 0.5.3 → 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 (480) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/dist/automation/bridge.d.ts +1 -0
  3. package/dist/automation/bridge.d.ts.map +1 -0
  4. package/dist/automation/bridge.js +62 -4
  5. package/dist/automation/bridge.js.map +1 -0
  6. package/dist/automation/connection-manager.d.ts.map +1 -0
  7. package/dist/automation/connection-manager.js.map +1 -0
  8. package/dist/automation/handshake.d.ts.map +1 -0
  9. package/dist/automation/handshake.js.map +1 -0
  10. package/dist/automation/index.d.ts.map +1 -0
  11. package/dist/automation/index.js.map +1 -0
  12. package/dist/automation/message-handler.d.ts.map +1 -0
  13. package/dist/automation/message-handler.js.map +1 -0
  14. package/dist/automation/request-tracker.d.ts.map +1 -0
  15. package/dist/automation/request-tracker.js.map +1 -0
  16. package/dist/automation/types.d.ts +1 -0
  17. package/dist/automation/types.d.ts.map +1 -0
  18. package/dist/automation/types.js.map +1 -0
  19. package/dist/cli.d.ts.map +1 -0
  20. package/dist/cli.js +4 -3
  21. package/dist/cli.js.map +1 -0
  22. package/dist/config/class-aliases.d.ts.map +1 -0
  23. package/dist/config/class-aliases.js.map +1 -0
  24. package/dist/config.d.ts.map +1 -0
  25. package/dist/config.js.map +1 -0
  26. package/dist/constants.d.ts +2 -0
  27. package/dist/constants.d.ts.map +1 -0
  28. package/dist/constants.js +2 -0
  29. package/dist/constants.js.map +1 -0
  30. package/dist/graphql/loaders.d.ts.map +1 -0
  31. package/dist/graphql/loaders.js.map +1 -0
  32. package/dist/graphql/resolvers.d.ts.map +1 -0
  33. package/dist/graphql/resolvers.js +29 -29
  34. package/dist/graphql/resolvers.js.map +1 -0
  35. package/dist/graphql/schema.d.ts.map +1 -0
  36. package/dist/graphql/schema.js.map +1 -0
  37. package/dist/graphql/server.d.ts +0 -1
  38. package/dist/graphql/server.d.ts.map +1 -0
  39. package/dist/graphql/server.js +15 -16
  40. package/dist/graphql/server.js.map +1 -0
  41. package/dist/graphql/types.d.ts.map +1 -0
  42. package/dist/graphql/types.js.map +1 -0
  43. package/dist/handlers/resource-handlers.d.ts.map +1 -0
  44. package/dist/handlers/resource-handlers.js.map +1 -0
  45. package/dist/index.d.ts +1 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +64 -7
  48. package/dist/index.js.map +1 -0
  49. package/dist/resources/actors.d.ts.map +1 -0
  50. package/dist/resources/actors.js.map +1 -0
  51. package/dist/resources/assets.d.ts.map +1 -0
  52. package/dist/resources/assets.js +6 -4
  53. package/dist/resources/assets.js.map +1 -0
  54. package/dist/resources/levels.d.ts.map +1 -0
  55. package/dist/resources/levels.js.map +1 -0
  56. package/dist/server/resource-registry.d.ts.map +1 -0
  57. package/dist/server/resource-registry.js.map +1 -0
  58. package/dist/server/tool-registry.d.ts.map +1 -0
  59. package/dist/server/tool-registry.js.map +1 -0
  60. package/dist/server-setup.d.ts.map +1 -0
  61. package/dist/server-setup.js.map +1 -0
  62. package/dist/services/health-monitor.d.ts.map +1 -0
  63. package/dist/services/health-monitor.js.map +1 -0
  64. package/dist/services/metrics-server.d.ts.map +1 -0
  65. package/dist/services/metrics-server.js +3 -3
  66. package/dist/services/metrics-server.js.map +1 -0
  67. package/dist/tools/actors.d.ts.map +1 -0
  68. package/dist/tools/actors.js +3 -1
  69. package/dist/tools/actors.js.map +1 -0
  70. package/dist/tools/animation.d.ts.map +1 -0
  71. package/dist/tools/animation.js +2 -2
  72. package/dist/tools/animation.js.map +1 -0
  73. package/dist/tools/assets.d.ts.map +1 -0
  74. package/dist/tools/assets.js.map +1 -0
  75. package/dist/tools/audio.d.ts.map +1 -0
  76. package/dist/tools/audio.js.map +1 -0
  77. package/dist/tools/base-tool.d.ts.map +1 -0
  78. package/dist/tools/base-tool.js.map +1 -0
  79. package/dist/tools/behavior-tree.d.ts.map +1 -0
  80. package/dist/tools/behavior-tree.js.map +1 -0
  81. package/dist/tools/blueprint.d.ts.map +1 -0
  82. package/dist/tools/blueprint.js +4 -2
  83. package/dist/tools/blueprint.js.map +1 -0
  84. package/dist/tools/consolidated-tool-definitions.d.ts.map +1 -0
  85. package/dist/tools/consolidated-tool-definitions.js.map +1 -0
  86. package/dist/tools/consolidated-tool-handlers.d.ts.map +1 -0
  87. package/dist/tools/consolidated-tool-handlers.js.map +1 -0
  88. package/dist/tools/debug.d.ts.map +1 -0
  89. package/dist/tools/debug.js +3 -1
  90. package/dist/tools/debug.js.map +1 -0
  91. package/dist/tools/dynamic-handler-registry.d.ts.map +1 -0
  92. package/dist/tools/dynamic-handler-registry.js +3 -1
  93. package/dist/tools/dynamic-handler-registry.js.map +1 -0
  94. package/dist/tools/editor.d.ts.map +1 -0
  95. package/dist/tools/editor.js +1 -1
  96. package/dist/tools/editor.js.map +1 -0
  97. package/dist/tools/engine.d.ts.map +1 -0
  98. package/dist/tools/engine.js.map +1 -0
  99. package/dist/tools/environment.d.ts.map +1 -0
  100. package/dist/tools/environment.js +2 -2
  101. package/dist/tools/environment.js.map +1 -0
  102. package/dist/tools/foliage.d.ts.map +1 -0
  103. package/dist/tools/foliage.js.map +1 -0
  104. package/dist/tools/handlers/actor-handlers.d.ts +1 -1
  105. package/dist/tools/handlers/actor-handlers.d.ts.map +1 -0
  106. package/dist/tools/handlers/actor-handlers.js +6 -5
  107. package/dist/tools/handlers/actor-handlers.js.map +1 -0
  108. package/dist/tools/handlers/animation-handlers.d.ts.map +1 -0
  109. package/dist/tools/handlers/animation-handlers.js.map +1 -0
  110. package/dist/tools/handlers/argument-helper.d.ts.map +1 -0
  111. package/dist/tools/handlers/argument-helper.js.map +1 -0
  112. package/dist/tools/handlers/asset-handlers.d.ts.map +1 -0
  113. package/dist/tools/handlers/asset-handlers.js +5 -1
  114. package/dist/tools/handlers/asset-handlers.js.map +1 -0
  115. package/dist/tools/handlers/audio-handlers.d.ts.map +1 -0
  116. package/dist/tools/handlers/audio-handlers.js.map +1 -0
  117. package/dist/tools/handlers/blueprint-handlers.d.ts.map +1 -0
  118. package/dist/tools/handlers/blueprint-handlers.js +2 -1
  119. package/dist/tools/handlers/blueprint-handlers.js.map +1 -0
  120. package/dist/tools/handlers/common-handlers.d.ts.map +1 -0
  121. package/dist/tools/handlers/common-handlers.js.map +1 -0
  122. package/dist/tools/handlers/editor-handlers.d.ts.map +1 -0
  123. package/dist/tools/handlers/editor-handlers.js +12 -2
  124. package/dist/tools/handlers/editor-handlers.js.map +1 -0
  125. package/dist/tools/handlers/effect-handlers.d.ts.map +1 -0
  126. package/dist/tools/handlers/effect-handlers.js.map +1 -0
  127. package/dist/tools/handlers/environment-handlers.d.ts.map +1 -0
  128. package/dist/tools/handlers/environment-handlers.js.map +1 -0
  129. package/dist/tools/handlers/graph-handlers.d.ts.map +1 -0
  130. package/dist/tools/handlers/graph-handlers.js +61 -1
  131. package/dist/tools/handlers/graph-handlers.js.map +1 -0
  132. package/dist/tools/handlers/input-handlers.d.ts.map +1 -0
  133. package/dist/tools/handlers/input-handlers.js.map +1 -0
  134. package/dist/tools/handlers/inspect-handlers.d.ts.map +1 -0
  135. package/dist/tools/handlers/inspect-handlers.js.map +1 -0
  136. package/dist/tools/handlers/level-handlers.d.ts.map +1 -0
  137. package/dist/tools/handlers/level-handlers.js.map +1 -0
  138. package/dist/tools/handlers/lighting-handlers.d.ts.map +1 -0
  139. package/dist/tools/handlers/lighting-handlers.js +23 -1
  140. package/dist/tools/handlers/lighting-handlers.js.map +1 -0
  141. package/dist/tools/handlers/performance-handlers.d.ts.map +1 -0
  142. package/dist/tools/handlers/performance-handlers.js +15 -2
  143. package/dist/tools/handlers/performance-handlers.js.map +1 -0
  144. package/dist/tools/handlers/pipeline-handlers.d.ts.map +1 -0
  145. package/dist/tools/handlers/pipeline-handlers.js +61 -7
  146. package/dist/tools/handlers/pipeline-handlers.js.map +1 -0
  147. package/dist/tools/handlers/sequence-handlers.d.ts.map +1 -0
  148. package/dist/tools/handlers/sequence-handlers.js.map +1 -0
  149. package/dist/tools/handlers/system-handlers.d.ts.map +1 -0
  150. package/dist/tools/handlers/system-handlers.js +16 -1
  151. package/dist/tools/handlers/system-handlers.js.map +1 -0
  152. package/dist/tools/input.d.ts.map +1 -0
  153. package/dist/tools/input.js +3 -1
  154. package/dist/tools/input.js.map +1 -0
  155. package/dist/tools/introspection.d.ts.map +1 -0
  156. package/dist/tools/introspection.js.map +1 -0
  157. package/dist/tools/landscape.d.ts.map +1 -0
  158. package/dist/tools/landscape.js +3 -1
  159. package/dist/tools/landscape.js.map +1 -0
  160. package/dist/tools/level.d.ts.map +1 -0
  161. package/dist/tools/level.js.map +1 -0
  162. package/dist/tools/lighting.d.ts.map +1 -0
  163. package/dist/tools/lighting.js +3 -1
  164. package/dist/tools/lighting.js.map +1 -0
  165. package/dist/tools/logs.d.ts.map +1 -0
  166. package/dist/tools/logs.js.map +1 -0
  167. package/dist/tools/materials.d.ts.map +1 -0
  168. package/dist/tools/materials.js +3 -1
  169. package/dist/tools/materials.js.map +1 -0
  170. package/dist/tools/niagara.d.ts.map +1 -0
  171. package/dist/tools/niagara.js +7 -5
  172. package/dist/tools/niagara.js.map +1 -0
  173. package/dist/tools/performance.d.ts.map +1 -0
  174. package/dist/tools/performance.js.map +1 -0
  175. package/dist/tools/physics.d.ts.map +1 -0
  176. package/dist/tools/physics.js +9 -7
  177. package/dist/tools/physics.js.map +1 -0
  178. package/dist/tools/property-dictionary.d.ts.map +1 -0
  179. package/dist/tools/property-dictionary.js.map +1 -0
  180. package/dist/tools/sequence.d.ts.map +1 -0
  181. package/dist/tools/sequence.js +3 -1
  182. package/dist/tools/sequence.js.map +1 -0
  183. package/dist/tools/tool-definition-utils.d.ts.map +1 -0
  184. package/dist/tools/tool-definition-utils.js.map +1 -0
  185. package/dist/tools/ui.d.ts.map +1 -0
  186. package/dist/tools/ui.js +3 -1
  187. package/dist/tools/ui.js.map +1 -0
  188. package/dist/types/automation-responses.d.ts.map +1 -0
  189. package/dist/types/automation-responses.js.map +1 -0
  190. package/dist/types/env.d.ts.map +1 -0
  191. package/dist/types/env.js.map +1 -0
  192. package/dist/types/handler-types.d.ts.map +1 -0
  193. package/dist/types/handler-types.js.map +1 -0
  194. package/dist/types/tool-interfaces.d.ts.map +1 -0
  195. package/dist/types/tool-interfaces.js.map +1 -0
  196. package/dist/types/tool-types.d.ts.map +1 -0
  197. package/dist/types/tool-types.js.map +1 -0
  198. package/dist/unreal-bridge.d.ts +1 -0
  199. package/dist/unreal-bridge.d.ts.map +1 -0
  200. package/dist/unreal-bridge.js +8 -0
  201. package/dist/unreal-bridge.js.map +1 -0
  202. package/dist/utils/command-validator.d.ts.map +1 -0
  203. package/dist/utils/command-validator.js.map +1 -0
  204. package/dist/utils/elicitation.d.ts.map +1 -0
  205. package/dist/utils/elicitation.js.map +1 -0
  206. package/dist/utils/error-handler.d.ts.map +1 -0
  207. package/dist/utils/error-handler.js.map +1 -0
  208. package/dist/utils/ini-reader.d.ts.map +1 -0
  209. package/dist/utils/ini-reader.js.map +1 -0
  210. package/dist/utils/logger.d.ts.map +1 -0
  211. package/dist/utils/logger.js.map +1 -0
  212. package/dist/utils/normalize.d.ts.map +1 -0
  213. package/dist/utils/normalize.js.map +1 -0
  214. package/dist/utils/path-security.d.ts.map +1 -0
  215. package/dist/utils/path-security.js.map +1 -0
  216. package/dist/utils/response-factory.d.ts.map +1 -0
  217. package/dist/utils/response-factory.js +3 -1
  218. package/dist/utils/response-factory.js.map +1 -0
  219. package/dist/utils/response-validator.d.ts.map +1 -0
  220. package/dist/utils/response-validator.js.map +1 -0
  221. package/dist/utils/result-helpers.d.ts.map +1 -0
  222. package/dist/utils/result-helpers.js.map +1 -0
  223. package/dist/utils/safe-json.d.ts.map +1 -0
  224. package/dist/utils/safe-json.js.map +1 -0
  225. package/dist/utils/unreal-command-queue.d.ts.map +1 -0
  226. package/dist/utils/unreal-command-queue.js.map +1 -0
  227. package/dist/utils/validation.d.ts.map +1 -0
  228. package/dist/utils/validation.js.map +1 -0
  229. package/dist/wasm/index.d.ts.map +1 -0
  230. package/dist/wasm/index.js.map +1 -0
  231. package/package.json +12 -34
  232. package/server.json +2 -2
  233. package/.dockerignore +0 -57
  234. package/.env.example +0 -26
  235. package/.env.production +0 -61
  236. package/.eslintrc.json +0 -0
  237. package/.eslintrc.override.json +0 -8
  238. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -94
  239. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  240. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -56
  241. package/.github/copilot-instructions.md +0 -478
  242. package/.github/dependabot.yml +0 -19
  243. package/.github/labeler.yml +0 -24
  244. package/.github/labels.yml +0 -70
  245. package/.github/pull_request_template.md +0 -42
  246. package/.github/release-drafter-config.yml +0 -51
  247. package/.github/workflows/auto-merge.yml +0 -38
  248. package/.github/workflows/ci.yml +0 -38
  249. package/.github/workflows/dependency-review.yml +0 -17
  250. package/.github/workflows/gemini-issue-triage.yml +0 -172
  251. package/.github/workflows/greetings.yml +0 -27
  252. package/.github/workflows/labeler.yml +0 -17
  253. package/.github/workflows/links.yml +0 -80
  254. package/.github/workflows/pr-size-labeler.yml +0 -137
  255. package/.github/workflows/publish-mcp.yml +0 -79
  256. package/.github/workflows/release-drafter.yml +0 -24
  257. package/.github/workflows/release.yml +0 -112
  258. package/.github/workflows/semantic-pull-request.yml +0 -35
  259. package/.github/workflows/smoke-test.yml +0 -36
  260. package/.github/workflows/stale.yml +0 -28
  261. package/CONTRIBUTING.md +0 -140
  262. package/Dockerfile +0 -37
  263. package/GEMINI.md +0 -115
  264. package/Public/Plugin_setup_guide.mp4 +0 -0
  265. package/Public/icon.png +0 -0
  266. package/claude_desktop_config_example.json +0 -15
  267. package/dist/types/responses.d.ts +0 -249
  268. package/dist/types/responses.js +0 -2
  269. package/docs/GraphQL-API.md +0 -888
  270. package/docs/Migration-Guide-v0.5.0.md +0 -684
  271. package/docs/Roadmap.md +0 -53
  272. package/docs/WebAssembly-Integration.md +0 -628
  273. package/docs/editor-plugin-extension.md +0 -370
  274. package/docs/handler-mapping.md +0 -249
  275. package/docs/native-automation-progress.md +0 -128
  276. package/docs/testing-guide.md +0 -423
  277. package/eslint.config.mjs +0 -68
  278. package/mcp-config-example.json +0 -14
  279. package/plugins/McpAutomationBridge/Config/FilterPlugin.ini +0 -8
  280. package/plugins/McpAutomationBridge/McpAutomationBridge.uplugin +0 -64
  281. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/McpAutomationBridge.Build.cs +0 -189
  282. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.cpp +0 -22
  283. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.h +0 -30
  284. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeHelpers.h +0 -1983
  285. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeModule.cpp +0 -72
  286. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSettings.cpp +0 -46
  287. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSubsystem.cpp +0 -846
  288. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AnimationHandlers.cpp +0 -2393
  289. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetQueryHandlers.cpp +0 -300
  290. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetWorkflowHandlers.cpp +0 -2807
  291. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AudioHandlers.cpp +0 -1087
  292. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BehaviorTreeHandlers.cpp +0 -488
  293. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.cpp +0 -643
  294. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.h +0 -31
  295. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintGraphHandlers.cpp +0 -1094
  296. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers.cpp +0 -5750
  297. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers_List.cpp +0 -152
  298. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ControlHandlers.cpp +0 -2614
  299. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_DebugHandlers.cpp +0 -42
  300. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EditorFunctionHandlers.cpp +0 -1237
  301. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EffectHandlers.cpp +0 -1725
  302. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EnvironmentHandlers.cpp +0 -2241
  303. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_FoliageHandlers.cpp +0 -954
  304. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InputHandlers.cpp +0 -209
  305. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InsightsHandlers.cpp +0 -41
  306. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LandscapeHandlers.cpp +0 -1164
  307. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LevelHandlers.cpp +0 -762
  308. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LightingHandlers.cpp +0 -663
  309. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LogHandlers.cpp +0 -136
  310. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_MaterialGraphHandlers.cpp +0 -494
  311. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraGraphHandlers.cpp +0 -278
  312. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraHandlers.cpp +0 -625
  313. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PerformanceHandlers.cpp +0 -401
  314. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PipelineHandlers.cpp +0 -67
  315. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ProcessRequest.cpp +0 -472
  316. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PropertyHandlers.cpp +0 -2634
  317. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_RenderHandlers.cpp +0 -189
  318. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.cpp +0 -917
  319. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.h +0 -39
  320. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequenceHandlers.cpp +0 -2706
  321. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequencerHandlers.cpp +0 -519
  322. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_TestHandlers.cpp +0 -38
  323. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_UiHandlers.cpp +0 -668
  324. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_WorldPartitionHandlers.cpp +0 -346
  325. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.cpp +0 -1330
  326. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.h +0 -149
  327. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpConnectionManager.cpp +0 -782
  328. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSettings.h +0 -115
  329. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSubsystem.h +0 -796
  330. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpConnectionManager.h +0 -117
  331. package/scripts/check-unreal-connection.mjs +0 -19
  332. package/scripts/clean-tmp.js +0 -23
  333. package/scripts/patch-wasm.js +0 -26
  334. package/scripts/run-all-tests.mjs +0 -136
  335. package/scripts/smoke-test.ts +0 -94
  336. package/scripts/sync-mcp-plugin.js +0 -143
  337. package/scripts/test-no-plugin-alternates.mjs +0 -113
  338. package/scripts/validate-server.js +0 -46
  339. package/scripts/verify-automation-bridge.js +0 -200
  340. package/src/automation/bridge.ts +0 -560
  341. package/src/automation/connection-manager.ts +0 -148
  342. package/src/automation/handshake.ts +0 -99
  343. package/src/automation/index.ts +0 -2
  344. package/src/automation/message-handler.ts +0 -192
  345. package/src/automation/request-tracker.ts +0 -155
  346. package/src/automation/types.ts +0 -107
  347. package/src/cli.ts +0 -34
  348. package/src/config/class-aliases.ts +0 -65
  349. package/src/config.ts +0 -73
  350. package/src/constants.ts +0 -24
  351. package/src/graphql/loaders.ts +0 -244
  352. package/src/graphql/resolvers.ts +0 -1008
  353. package/src/graphql/schema.ts +0 -452
  354. package/src/graphql/server.ts +0 -156
  355. package/src/graphql/types.ts +0 -10
  356. package/src/handlers/resource-handlers.ts +0 -186
  357. package/src/index.ts +0 -243
  358. package/src/resources/actors.ts +0 -127
  359. package/src/resources/assets.ts +0 -286
  360. package/src/resources/levels.ts +0 -68
  361. package/src/server/resource-registry.ts +0 -47
  362. package/src/server/tool-registry.ts +0 -354
  363. package/src/server-setup.ts +0 -114
  364. package/src/services/health-monitor.ts +0 -132
  365. package/src/services/metrics-server.ts +0 -176
  366. package/src/tools/actors.ts +0 -564
  367. package/src/tools/animation.ts +0 -941
  368. package/src/tools/assets.ts +0 -394
  369. package/src/tools/audio.ts +0 -499
  370. package/src/tools/base-tool.ts +0 -52
  371. package/src/tools/behavior-tree.ts +0 -45
  372. package/src/tools/blueprint.ts +0 -940
  373. package/src/tools/consolidated-tool-definitions.ts +0 -1256
  374. package/src/tools/consolidated-tool-handlers.ts +0 -302
  375. package/src/tools/debug.ts +0 -622
  376. package/src/tools/dynamic-handler-registry.ts +0 -33
  377. package/src/tools/editor.ts +0 -435
  378. package/src/tools/engine.ts +0 -43
  379. package/src/tools/environment.ts +0 -281
  380. package/src/tools/foliage.ts +0 -596
  381. package/src/tools/handlers/actor-handlers.ts +0 -244
  382. package/src/tools/handlers/animation-handlers.ts +0 -237
  383. package/src/tools/handlers/argument-helper.ts +0 -142
  384. package/src/tools/handlers/asset-handlers.ts +0 -550
  385. package/src/tools/handlers/audio-handlers.ts +0 -194
  386. package/src/tools/handlers/blueprint-handlers.ts +0 -380
  387. package/src/tools/handlers/common-handlers.ts +0 -108
  388. package/src/tools/handlers/editor-handlers.ts +0 -124
  389. package/src/tools/handlers/effect-handlers.ts +0 -224
  390. package/src/tools/handlers/environment-handlers.ts +0 -183
  391. package/src/tools/handlers/graph-handlers.ts +0 -117
  392. package/src/tools/handlers/input-handlers.ts +0 -28
  393. package/src/tools/handlers/inspect-handlers.ts +0 -450
  394. package/src/tools/handlers/level-handlers.ts +0 -253
  395. package/src/tools/handlers/lighting-handlers.ts +0 -151
  396. package/src/tools/handlers/performance-handlers.ts +0 -132
  397. package/src/tools/handlers/pipeline-handlers.ts +0 -128
  398. package/src/tools/handlers/sequence-handlers.ts +0 -438
  399. package/src/tools/handlers/system-handlers.ts +0 -564
  400. package/src/tools/input.ts +0 -160
  401. package/src/tools/introspection.ts +0 -689
  402. package/src/tools/landscape.ts +0 -649
  403. package/src/tools/level.ts +0 -989
  404. package/src/tools/lighting.ts +0 -1052
  405. package/src/tools/logs.ts +0 -219
  406. package/src/tools/materials.ts +0 -295
  407. package/src/tools/niagara.ts +0 -485
  408. package/src/tools/performance.ts +0 -661
  409. package/src/tools/physics.ts +0 -679
  410. package/src/tools/property-dictionary.ts +0 -98
  411. package/src/tools/sequence.ts +0 -385
  412. package/src/tools/tool-definition-utils.ts +0 -35
  413. package/src/tools/ui.ts +0 -452
  414. package/src/types/automation-responses.ts +0 -119
  415. package/src/types/env.ts +0 -17
  416. package/src/types/handler-types.ts +0 -442
  417. package/src/types/responses.ts +0 -355
  418. package/src/types/tool-interfaces.ts +0 -250
  419. package/src/types/tool-types.ts +0 -575
  420. package/src/unreal-bridge.ts +0 -693
  421. package/src/utils/command-validator.ts +0 -139
  422. package/src/utils/elicitation.ts +0 -132
  423. package/src/utils/error-handler.ts +0 -287
  424. package/src/utils/ini-reader.ts +0 -86
  425. package/src/utils/logger.ts +0 -35
  426. package/src/utils/normalize.test.ts +0 -162
  427. package/src/utils/normalize.ts +0 -146
  428. package/src/utils/path-security.ts +0 -43
  429. package/src/utils/response-factory.ts +0 -44
  430. package/src/utils/response-validator.ts +0 -395
  431. package/src/utils/result-helpers.ts +0 -195
  432. package/src/utils/safe-json.test.ts +0 -90
  433. package/src/utils/safe-json.ts +0 -70
  434. package/src/utils/unreal-command-queue.ts +0 -166
  435. package/src/utils/validation.test.ts +0 -184
  436. package/src/utils/validation.ts +0 -312
  437. package/src/wasm/index.ts +0 -838
  438. package/test-server.mjs +0 -100
  439. package/tests/run-unreal-tool-tests.mjs +0 -948
  440. package/tests/test-animation.mjs +0 -369
  441. package/tests/test-asset-advanced.mjs +0 -82
  442. package/tests/test-asset-errors.mjs +0 -35
  443. package/tests/test-asset-graph.mjs +0 -311
  444. package/tests/test-audio.mjs +0 -417
  445. package/tests/test-automation-timeouts.mjs +0 -98
  446. package/tests/test-behavior-tree.mjs +0 -444
  447. package/tests/test-blueprint-graph.mjs +0 -410
  448. package/tests/test-blueprint.mjs +0 -577
  449. package/tests/test-client-mode.mjs +0 -86
  450. package/tests/test-console-command.mjs +0 -56
  451. package/tests/test-control-actor.mjs +0 -425
  452. package/tests/test-control-editor.mjs +0 -112
  453. package/tests/test-graphql.mjs +0 -372
  454. package/tests/test-input.mjs +0 -349
  455. package/tests/test-inspect.mjs +0 -302
  456. package/tests/test-landscape.mjs +0 -316
  457. package/tests/test-lighting.mjs +0 -428
  458. package/tests/test-manage-asset.mjs +0 -438
  459. package/tests/test-manage-level.mjs +0 -89
  460. package/tests/test-materials.mjs +0 -356
  461. package/tests/test-niagara.mjs +0 -185
  462. package/tests/test-no-inline-python.mjs +0 -122
  463. package/tests/test-performance.mjs +0 -539
  464. package/tests/test-plugin-handshake.mjs +0 -82
  465. package/tests/test-runner.mjs +0 -933
  466. package/tests/test-sequence.mjs +0 -104
  467. package/tests/test-system.mjs +0 -96
  468. package/tests/test-wasm.mjs +0 -283
  469. package/tests/test-world-partition.mjs +0 -215
  470. package/tsconfig.json +0 -56
  471. package/vitest.config.ts +0 -35
  472. package/wasm/Cargo.lock +0 -363
  473. package/wasm/Cargo.toml +0 -42
  474. package/wasm/LICENSE +0 -21
  475. package/wasm/README.md +0 -253
  476. package/wasm/src/dependency_resolver.rs +0 -377
  477. package/wasm/src/lib.rs +0 -153
  478. package/wasm/src/property_parser.rs +0 -271
  479. package/wasm/src/transform_math.rs +0 -396
  480. 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
- };