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
package/src/tools/ui.ts DELETED
@@ -1,452 +0,0 @@
1
- // UI tools for Unreal Engine
2
- import { UnrealBridge } from '../unreal-bridge.js';
3
- import { AutomationBridge } from '../automation/index.js';
4
- import { bestEffortInterpretedText, interpretStandardResult } from '../utils/result-helpers.js';
5
-
6
- export class UITools {
7
- private automationBridge?: AutomationBridge;
8
-
9
- constructor(private bridge: UnrealBridge, automationBridge?: AutomationBridge) {
10
- this.automationBridge = automationBridge;
11
- }
12
-
13
- setAutomationBridge(automationBridge?: AutomationBridge) {
14
- this.automationBridge = automationBridge;
15
- }
16
-
17
- // Create widget blueprint
18
- async createWidget(params: {
19
- name: string;
20
- type?: 'HUD' | 'Menu' | 'Inventory' | 'Dialog' | 'Custom';
21
- savePath?: string;
22
- }) {
23
- const path = params.savePath || '/Game/UI/Widgets';
24
-
25
- // Plugin-first: attempt to create the widget asset via the Automation Bridge.
26
- if (this.automationBridge && typeof this.automationBridge.sendAutomationRequest === 'function') {
27
- try {
28
- const resp = await this.automationBridge.sendAutomationRequest('system_control', {
29
- action: 'create_widget',
30
- name: params.name,
31
- widgetType: params.type,
32
- savePath: path
33
- });
34
- if (resp && resp.success !== false) {
35
- const result = resp.result ?? resp;
36
- const resultObj = result && typeof result === 'object' ? (result as Record<string, unknown>) : undefined;
37
- const widgetPath = typeof resultObj?.widgetPath === 'string' ? (resultObj.widgetPath as string) : `${path}/${params.name}`;
38
- const message = resp.message || `Widget created at ${widgetPath}`;
39
- return {
40
- success: true,
41
- message,
42
- widgetPath,
43
- exists: Boolean(resultObj?.exists),
44
- ...(resultObj || {})
45
- };
46
- }
47
- } catch (error) {
48
- console.warn('UITools.createWidget automation bridge request failed, falling back to editor function:', error);
49
- }
50
- }
51
-
52
- // Fallback: attempt to create the widget asset via the Automation
53
- // Bridge plugin using the generic CREATE_ASSET function. If the plugin
54
- // does not implement the action the bridge will fall back to executing
55
- // the Python template (deprecated and gated by server opt-in).
56
- try {
57
- const payload = {
58
- asset_name: params.name,
59
- package_path: path,
60
- factory_class: 'WidgetBlueprintFactory',
61
- asset_class: 'unreal.WidgetBlueprint'
62
- } as Record<string, unknown>;
63
-
64
- const resp = await this.bridge.executeEditorFunction('CREATE_ASSET', payload as any);
65
- const result = resp && typeof resp === 'object' ? (resp.result ?? resp) : resp;
66
-
67
- // Interpret common success shapes returned by plugin or Python template
68
- if (result && (result.success === true || result.created === true || Boolean(result.path))) {
69
- return { success: true, message: result.message ?? `Widget created at ${result.path ?? `${path}/${params.name}`}` };
70
- }
71
-
72
- // If plugin/template returned a structured failure, surface it
73
- if (result && result.success === false) {
74
- return { success: false, error: result.error ?? result.message ?? 'Failed to create widget blueprint', details: result };
75
- }
76
-
77
- // Fallback: if no structured response, return generic failure
78
- return { success: false, error: 'Failed to create widget blueprint' };
79
- } catch (e) {
80
- return { success: false, error: `Failed to create widget blueprint: ${e}` };
81
- }
82
- }
83
-
84
- // Show widget (convenience wrapper)
85
- async showWidget(widgetPath: string) {
86
- return this.addWidgetToViewport({ widgetClass: widgetPath });
87
- }
88
-
89
- // Add widget component
90
- async addWidgetComponent(_params: {
91
- widgetName: string;
92
- componentType: 'Button' | 'Text' | 'Image' | 'ProgressBar' | 'Slider' | 'CheckBox' | 'ComboBox' | 'TextBox' | 'ScrollBox' | 'Canvas' | 'VerticalBox' | 'HorizontalBox' | 'Grid' | 'Overlay';
93
- componentName: string;
94
- slot?: {
95
- position?: [number, number];
96
- size?: [number, number];
97
- anchor?: [number, number, number, number];
98
- alignment?: [number, number];
99
- };
100
- }) {
101
- if (!this.automationBridge) {
102
- throw new Error('Automation bridge required for widget component operations');
103
- }
104
-
105
- try {
106
- // Map correctly to McpAutomationBridge_UiHandlers.cpp: add_widget_child
107
- const response = await this.automationBridge.sendAutomationRequest('manage_ui', {
108
- action: 'add_widget_child', // Use 'action' inside payload for subAction
109
- widgetPath: _params.widgetName, // C++ expects 'widgetPath'
110
- childClass: _params.componentType, // C++ expects 'childClass'
111
- parentName: _params.slot ? 'Root' : undefined, // Rudimentary mapping
112
- });
113
-
114
- return response.success
115
- ? { success: true, message: response.message || 'Widget component added', ...(response.result || {}) }
116
- : { success: false, error: response.error || response.message || 'Failed to add widget component' };
117
- } catch (error) {
118
- return { success: false, error: `Failed to add widget component: ${error instanceof Error ? error.message : String(error)}` };
119
- }
120
- }
121
-
122
- // Set text (requires C++ plugin)
123
- async setWidgetText(_params: {
124
- key: string; // The widget name to find
125
- value: string; // The text to set
126
- }) {
127
- if (!this.automationBridge) {
128
- throw new Error('Automation bridge required for setting widget text');
129
- }
130
-
131
- try {
132
- // Changed to 'system_control' with subAction
133
- const response = await this.automationBridge.sendAutomationRequest('system_control', {
134
- subAction: 'set_widget_text',
135
- key: _params.key,
136
- value: _params.value
137
- });
138
-
139
- return response.success
140
- ? { success: true, message: response.message || 'Widget text set', ...(response.result || {}) }
141
- : { success: false, error: response.error || response.message || 'Failed to set widget text' };
142
- } catch (error) {
143
- return { success: false, error: `Failed to set widget text: ${error instanceof Error ? error.message : String(error)}` };
144
- }
145
- }
146
-
147
- // Set image (requires C++ plugin)
148
- async setWidgetImage(_params: {
149
- key: string;
150
- texturePath: string;
151
- }) {
152
- if (!this.automationBridge) {
153
- throw new Error('Automation bridge required for setting widget images');
154
- }
155
-
156
- try {
157
- const response = await this.automationBridge.sendAutomationRequest('system_control', {
158
- subAction: 'set_widget_image',
159
- key: _params.key,
160
- texturePath: _params.texturePath
161
- });
162
-
163
- return response.success
164
- ? { success: true, message: response.message || 'Widget image set', ...(response.result || {}) }
165
- : { success: false, error: response.error || response.message || 'Failed to set widget image' };
166
- } catch (error) {
167
- return { success: false, error: `Failed to set widget image: ${error instanceof Error ? error.message : String(error)}` };
168
- }
169
- }
170
-
171
- // Create HUD (requires C++ plugin)
172
- async createHUD(_params: {
173
- name: string;
174
- elements?: Array<any>;
175
- }) {
176
- if (!this.automationBridge) {
177
- throw new Error('Automation bridge required for creating HUDs');
178
- }
179
-
180
- // Default path assumption or require full path?
181
- // C++ expects 'widgetPath'. If name is just "MyHUD", we might need to resolve it.
182
- // For now, assume name is the path or user provides path.
183
- const widgetPath = _params.name.startsWith('/Game') ? _params.name : `/Game/UI/${_params.name}`;
184
-
185
- try {
186
- const response = await this.automationBridge.sendAutomationRequest('system_control', {
187
- subAction: 'create_hud',
188
- widgetPath: widgetPath
189
- });
190
-
191
- return response.success
192
- ? { success: true, message: response.message || 'HUD created', widgetName: (response.result as any)?.widgetName, ...(response.result || {}) }
193
- : { success: false, error: response.error || response.message || 'Failed to create HUD' };
194
- } catch (error) {
195
- return { success: false, error: `Failed to create HUD: ${error instanceof Error ? error.message : String(error)}` };
196
- }
197
- }
198
-
199
- async setWidgetVisibility(params: {
200
- key: string;
201
- visible: boolean;
202
- }) {
203
- if (!this.automationBridge) return { success: false, error: 'NO_BRIDGE' };
204
- const response = await this.automationBridge.sendAutomationRequest('system_control', {
205
- subAction: 'set_widget_visibility',
206
- key: params.key,
207
- visible: params.visible
208
- });
209
- return response.success
210
- ? { success: true, message: response.message || 'Widget visibility set', ...(response.result || {}) }
211
- : { success: false, error: response.error || response.message || 'Failed to set widget visibility' };
212
- }
213
-
214
- async removeWidgetFromViewport(params: {
215
- key?: string;
216
- }) {
217
- if (!this.automationBridge) return { success: false, error: 'NO_BRIDGE' };
218
- const response = await this.automationBridge.sendAutomationRequest('system_control', {
219
- subAction: 'remove_widget_from_viewport',
220
- key: params.key
221
- });
222
- return response.success
223
- ? { success: true, message: response.message || 'Widget removed from viewport', ...(response.result || {}) }
224
- : { success: false, error: response.error || response.message || 'Failed to remove widget from viewport' };
225
- }
226
-
227
-
228
- // Add widget to viewport
229
- async addWidgetToViewport(params: {
230
- widgetClass: string;
231
- zOrder?: number;
232
- playerIndex?: number;
233
- }) {
234
- const zOrder = params.zOrder ?? 0;
235
- const playerIndex = params.playerIndex ?? 0;
236
-
237
- try {
238
- const resp = await this.bridge.executeEditorFunction('ADD_WIDGET_TO_VIEWPORT', { widget_path: params.widgetClass, z_order: zOrder, player_index: playerIndex } as any);
239
- const interpreted = interpretStandardResult(resp, {
240
- successMessage: `Widget added to viewport with z-order ${zOrder}`,
241
- failureMessage: 'Failed to add widget to viewport'
242
- });
243
- if (interpreted.success) {
244
- return { success: true, message: interpreted.message };
245
- }
246
- return { success: false, error: interpreted.error ?? 'Failed to add widget to viewport', details: bestEffortInterpretedText(interpreted) };
247
- } catch (e) {
248
- return { success: false, error: `Failed to add widget to viewport: ${e}` };
249
- }
250
- }
251
-
252
-
253
- // Create menu
254
- async createMenu(params: {
255
- name: string;
256
- menuType: 'Main' | 'Pause' | 'Settings' | 'Inventory';
257
- buttons?: Array<{
258
- text: string;
259
- action: string;
260
- position?: [number, number];
261
- }>;
262
- }) {
263
- const commands: string[] = [];
264
-
265
- commands.push(`CreateMenuWidget ${params.name} ${params.menuType}`);
266
-
267
- if (params.buttons) {
268
- for (const button of params.buttons) {
269
- const pos = button.position || [0, 0];
270
- commands.push(`AddMenuButton ${params.name} "${button.text}" ${button.action} ${pos.join(' ')}`);
271
- }
272
- }
273
-
274
- await this.bridge.executeConsoleCommands(commands);
275
-
276
- return { success: true, message: `Menu ${params.name} created` };
277
- }
278
-
279
- // Set widget animation
280
- async createWidgetAnimation(params: {
281
- widgetName: string;
282
- animationName: string;
283
- duration: number;
284
- tracks?: Array<{
285
- componentName: string;
286
- property: 'Position' | 'Scale' | 'Rotation' | 'Opacity' | 'Color';
287
- keyframes: Array<{
288
- time: number;
289
- value: number | [number, number] | [number, number, number] | [number, number, number, number];
290
- }>;
291
- }>;
292
- }) {
293
- const commands: string[] = [];
294
-
295
- commands.push(`CreateWidgetAnimation ${params.widgetName} ${params.animationName} ${params.duration}`);
296
-
297
- if (params.tracks) {
298
- for (const track of params.tracks) {
299
- commands.push(`AddAnimationTrack ${params.widgetName}.${params.animationName} ${track.componentName} ${track.property}`);
300
-
301
- for (const keyframe of track.keyframes) {
302
- const value = Array.isArray(keyframe.value) ? keyframe.value.join(' ') : keyframe.value;
303
- commands.push(`AddAnimationKeyframe ${params.widgetName}.${params.animationName} ${track.componentName} ${keyframe.time} ${value}`);
304
- }
305
- }
306
- }
307
-
308
- await this.bridge.executeConsoleCommands(commands);
309
-
310
- return { success: true, message: `Animation ${params.animationName} created` };
311
- }
312
-
313
- // Play widget animation
314
- async playWidgetAnimation(params: {
315
- widgetName: string;
316
- animationName: string;
317
- playMode?: 'Forward' | 'Reverse' | 'PingPong';
318
- loops?: number;
319
- }) {
320
- const playMode = params.playMode || 'Forward';
321
- const loops = params.loops ?? 1;
322
-
323
- const command = `PlayWidgetAnimation ${params.widgetName} ${params.animationName} ${playMode} ${loops}`;
324
- return this.bridge.executeConsoleCommand(command);
325
- }
326
-
327
- // Set widget style
328
- async setWidgetStyle(params: {
329
- widgetName: string;
330
- componentName: string;
331
- style: {
332
- backgroundColor?: [number, number, number, number];
333
- borderColor?: [number, number, number, number];
334
- borderWidth?: number;
335
- padding?: [number, number, number, number];
336
- margin?: [number, number, number, number];
337
- };
338
- }) {
339
- const commands: string[] = [];
340
-
341
- if (params.style.backgroundColor) {
342
- commands.push(`SetWidgetBackgroundColor ${params.widgetName}.${params.componentName} ${params.style.backgroundColor.join(' ')}`);
343
- }
344
-
345
- if (params.style.borderColor) {
346
- commands.push(`SetWidgetBorderColor ${params.widgetName}.${params.componentName} ${params.style.borderColor.join(' ')}`);
347
- }
348
-
349
- if (params.style.borderWidth !== undefined) {
350
- commands.push(`SetWidgetBorderWidth ${params.widgetName}.${params.componentName} ${params.style.borderWidth}`);
351
- }
352
-
353
- if (params.style.padding) {
354
- commands.push(`SetWidgetPadding ${params.widgetName}.${params.componentName} ${params.style.padding.join(' ')}`);
355
- }
356
-
357
- if (params.style.margin) {
358
- commands.push(`SetWidgetMargin ${params.widgetName}.${params.componentName} ${params.style.margin.join(' ')}`);
359
- }
360
-
361
- await this.bridge.executeConsoleCommands(commands);
362
-
363
- return { success: true, message: 'Widget style updated' };
364
- }
365
-
366
- // Bind widget event
367
- async bindWidgetEvent(params: {
368
- widgetName: string;
369
- componentName: string;
370
- eventType: 'OnClicked' | 'OnPressed' | 'OnReleased' | 'OnHovered' | 'OnUnhovered' | 'OnTextChanged' | 'OnTextCommitted' | 'OnValueChanged';
371
- functionName: string;
372
- }) {
373
- const command = `BindWidgetEvent ${params.widgetName}.${params.componentName} ${params.eventType} ${params.functionName}`;
374
- return this.bridge.executeConsoleCommand(command);
375
- }
376
-
377
- // Set input mode
378
- async setInputMode(params: {
379
- mode: 'GameOnly' | 'UIOnly' | 'GameAndUI';
380
- showCursor?: boolean;
381
- lockCursor?: boolean;
382
- }) {
383
- const commands: string[] = [];
384
-
385
- commands.push(`SetInputMode ${params.mode}`);
386
-
387
- if (params.showCursor !== undefined) {
388
- commands.push(`ShowMouseCursor ${params.showCursor}`);
389
- }
390
-
391
- if (params.lockCursor !== undefined) {
392
- commands.push(`SetMouseLockMode ${params.lockCursor}`);
393
- }
394
-
395
- await this.bridge.executeConsoleCommands(commands);
396
-
397
- return { success: true, message: `Input mode set to ${params.mode}` };
398
- }
399
-
400
- // Create tooltip
401
- async createTooltip(params: {
402
- widgetName: string;
403
- componentName: string;
404
- text: string;
405
- delay?: number;
406
- }) {
407
- const delay = params.delay ?? 0.5;
408
- const command = `SetWidgetTooltip ${params.widgetName}.${params.componentName} "${params.text}" ${delay}`;
409
- return this.bridge.executeConsoleCommand(command);
410
- }
411
-
412
- // Create drag and drop
413
- async setupDragDrop(params: {
414
- widgetName: string;
415
- componentName: string;
416
- dragVisual?: string;
417
- dropTargets?: string[];
418
- }) {
419
- const commands = [];
420
-
421
- commands.push(`EnableDragDrop ${params.widgetName}.${params.componentName}`);
422
-
423
- if (params.dragVisual) {
424
- commands.push(`SetDragVisual ${params.widgetName}.${params.componentName} ${params.dragVisual}`);
425
- }
426
-
427
- if (params.dropTargets) {
428
- for (const target of params.dropTargets) {
429
- commands.push(`AddDropTarget ${params.widgetName}.${params.componentName} ${target}`);
430
- }
431
- }
432
-
433
- await this.bridge.executeConsoleCommands(commands);
434
-
435
- return { success: true, message: 'Drag and drop configured' };
436
- }
437
-
438
- // Create notification
439
- async showNotification(params: {
440
- text: string;
441
- duration?: number;
442
- type?: 'Info' | 'Success' | 'Warning' | 'Error';
443
- position?: 'TopLeft' | 'TopCenter' | 'TopRight' | 'BottomLeft' | 'BottomCenter' | 'BottomRight';
444
- }) {
445
- const duration = params.duration ?? 3.0;
446
- const type = params.type || 'Info';
447
- const position = params.position || 'TopRight';
448
-
449
- const command = `ShowNotification "${params.text}" ${duration} ${type} ${position}`;
450
- return this.bridge.executeConsoleCommand(command);
451
- }
452
- }
@@ -1,119 +0,0 @@
1
- /**
2
- * Common type definitions for automation bridge responses
3
- * Used to provide type safety for sendAutomationRequest calls
4
- */
5
-
6
- /**
7
- * Base response structure from the Automation Bridge
8
- * Most responses follow this pattern with optional additional fields
9
- */
10
- export interface AutomationResponse {
11
- success: boolean;
12
- message?: string;
13
- error?: string | { message: string; code?: string };
14
- result?: unknown;
15
- // Common additional fields
16
- warnings?: string[];
17
- details?: unknown;
18
- data?: unknown;
19
- [key: string]: unknown;
20
- }
21
-
22
- /**
23
- * Level-related response fields
24
- */
25
- export interface LevelResponse extends AutomationResponse {
26
- levelPath?: string;
27
- level?: string;
28
- path?: string;
29
- packagePath?: string;
30
- objectPath?: string;
31
- currentMap?: string;
32
- currentMapPath?: string;
33
- currentWorldLevels?: unknown[];
34
- allMaps?: unknown[];
35
- partitioned?: boolean;
36
- streaming?: boolean;
37
- loaded?: boolean;
38
- visible?: boolean;
39
- skipped?: boolean;
40
- reason?: string;
41
- }
42
-
43
- /**
44
- * Actor-related response fields
45
- */
46
- export interface ActorResponse extends AutomationResponse {
47
- actorName?: string;
48
- actorLabel?: string;
49
- actorPath?: string;
50
- actors?: unknown[];
51
- components?: unknown[];
52
- location?: { x: number; y: number; z: number };
53
- rotation?: { pitch: number; yaw: number; roll: number };
54
- scale?: { x: number; y: number; z: number };
55
- transform?: unknown;
56
- tags?: string[];
57
- properties?: Record<string, unknown>;
58
- deleted?: boolean;
59
- deletedCount?: number;
60
- }
61
-
62
- /**
63
- * Asset-related response fields
64
- */
65
- export interface AssetResponse extends AutomationResponse {
66
- assetPath?: string;
67
- asset?: string;
68
- assets?: unknown[];
69
- source?: string;
70
- saved?: boolean;
71
- metadata?: Record<string, unknown>;
72
- tags?: string[];
73
- graph?: Record<string, unknown[]>;
74
- }
75
-
76
- /**
77
- * Editor-related response fields
78
- */
79
- export interface EditorResponse extends AutomationResponse {
80
- viewMode?: string;
81
- fov?: number;
82
- location?: { x: number; y: number; z: number };
83
- rotation?: { pitch: number; yaw: number; roll: number };
84
- cameraSettings?: unknown;
85
- camera?: { location?: unknown; rotation?: unknown };
86
- resolution?: { width: number; height: number };
87
- filename?: string;
88
- filePath?: string;
89
- isPlaying?: boolean;
90
- isPaused?: boolean;
91
- isInPIE?: boolean;
92
- playSessionId?: string;
93
- bookmarkName?: string;
94
- bookmarks?: unknown[];
95
- realtime?: boolean;
96
- }
97
-
98
- /**
99
- * Sequence/Animation-related response fields
100
- */
101
- export interface SequenceResponse extends AutomationResponse {
102
- sequencePath?: string;
103
- sequence?: string;
104
- bindingId?: string;
105
- trackName?: string;
106
- keyframe?: unknown;
107
- frameNumber?: number;
108
- length?: number;
109
- playbackPosition?: number;
110
- requestId?: string;
111
- }
112
-
113
- /**
114
- * Console command response
115
- */
116
- export interface ConsoleResponse extends AutomationResponse {
117
- output?: string;
118
- command?: string;
119
- }
package/src/types/env.ts DELETED
@@ -1,17 +0,0 @@
1
- export interface Env {
2
- UE_PROJECT_PATH?: string;
3
- UE_EDITOR_EXE?: string;
4
- UE_SCREENSHOT_DIR?: string;
5
- }
6
-
7
- export function loadEnv(): Env {
8
- const projectPath = process.env.UE_PROJECT_PATH;
9
- const editorExe = process.env.UE_EDITOR_EXE;
10
- const screenshotDir = process.env.UE_SCREENSHOT_DIR;
11
-
12
- return {
13
- UE_PROJECT_PATH: projectPath,
14
- UE_EDITOR_EXE: editorExe,
15
- UE_SCREENSHOT_DIR: screenshotDir,
16
- };
17
- }