unreal-engine-mcp-server 0.4.7 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. package/.env.example +26 -0
  2. package/.env.production +38 -7
  3. package/.eslintrc.json +0 -54
  4. package/.eslintrc.override.json +8 -0
  5. package/.github/ISSUE_TEMPLATE/bug_report.yml +94 -0
  6. package/.github/ISSUE_TEMPLATE/config.yml +8 -0
  7. package/.github/ISSUE_TEMPLATE/feature_request.yml +56 -0
  8. package/.github/copilot-instructions.md +478 -45
  9. package/.github/dependabot.yml +19 -0
  10. package/.github/labeler.yml +24 -0
  11. package/.github/labels.yml +70 -0
  12. package/.github/pull_request_template.md +42 -0
  13. package/.github/release-drafter-config.yml +51 -0
  14. package/.github/workflows/auto-merge.yml +38 -0
  15. package/.github/workflows/ci.yml +38 -0
  16. package/.github/workflows/dependency-review.yml +17 -0
  17. package/.github/workflows/gemini-issue-triage.yml +172 -0
  18. package/.github/workflows/greetings.yml +27 -0
  19. package/.github/workflows/labeler.yml +17 -0
  20. package/.github/workflows/links.yml +80 -0
  21. package/.github/workflows/pr-size-labeler.yml +137 -0
  22. package/.github/workflows/publish-mcp.yml +13 -7
  23. package/.github/workflows/release-drafter.yml +23 -0
  24. package/.github/workflows/release.yml +112 -0
  25. package/.github/workflows/semantic-pull-request.yml +35 -0
  26. package/.github/workflows/smoke-test.yml +36 -0
  27. package/.github/workflows/stale.yml +28 -0
  28. package/CHANGELOG.md +338 -31
  29. package/CONTRIBUTING.md +140 -0
  30. package/GEMINI.md +115 -0
  31. package/Public/Plugin_setup_guide.mp4 +0 -0
  32. package/README.md +189 -128
  33. package/claude_desktop_config_example.json +7 -6
  34. package/dist/automation/bridge.d.ts +50 -0
  35. package/dist/automation/bridge.js +452 -0
  36. package/dist/automation/connection-manager.d.ts +23 -0
  37. package/dist/automation/connection-manager.js +107 -0
  38. package/dist/automation/handshake.d.ts +11 -0
  39. package/dist/automation/handshake.js +89 -0
  40. package/dist/automation/index.d.ts +3 -0
  41. package/dist/automation/index.js +3 -0
  42. package/dist/automation/message-handler.d.ts +12 -0
  43. package/dist/automation/message-handler.js +149 -0
  44. package/dist/automation/request-tracker.d.ts +25 -0
  45. package/dist/automation/request-tracker.js +98 -0
  46. package/dist/automation/types.d.ts +130 -0
  47. package/dist/automation/types.js +2 -0
  48. package/dist/cli.js +32 -5
  49. package/dist/config.d.ts +26 -0
  50. package/dist/config.js +59 -0
  51. package/dist/constants.d.ts +16 -0
  52. package/dist/constants.js +16 -0
  53. package/dist/graphql/loaders.d.ts +64 -0
  54. package/dist/graphql/loaders.js +117 -0
  55. package/dist/graphql/resolvers.d.ts +268 -0
  56. package/dist/graphql/resolvers.js +746 -0
  57. package/dist/graphql/schema.d.ts +5 -0
  58. package/dist/graphql/schema.js +437 -0
  59. package/dist/graphql/server.d.ts +26 -0
  60. package/dist/graphql/server.js +117 -0
  61. package/dist/graphql/types.d.ts +9 -0
  62. package/dist/graphql/types.js +2 -0
  63. package/dist/handlers/resource-handlers.d.ts +20 -0
  64. package/dist/handlers/resource-handlers.js +180 -0
  65. package/dist/index.d.ts +33 -18
  66. package/dist/index.js +130 -619
  67. package/dist/resources/actors.d.ts +17 -12
  68. package/dist/resources/actors.js +56 -76
  69. package/dist/resources/assets.d.ts +6 -14
  70. package/dist/resources/assets.js +115 -147
  71. package/dist/resources/levels.d.ts +13 -13
  72. package/dist/resources/levels.js +25 -34
  73. package/dist/server/resource-registry.d.ts +20 -0
  74. package/dist/server/resource-registry.js +37 -0
  75. package/dist/server/tool-registry.d.ts +23 -0
  76. package/dist/server/tool-registry.js +322 -0
  77. package/dist/server-setup.d.ts +20 -0
  78. package/dist/server-setup.js +71 -0
  79. package/dist/services/health-monitor.d.ts +34 -0
  80. package/dist/services/health-monitor.js +105 -0
  81. package/dist/services/metrics-server.d.ts +11 -0
  82. package/dist/services/metrics-server.js +105 -0
  83. package/dist/tools/actors.d.ts +163 -9
  84. package/dist/tools/actors.js +356 -311
  85. package/dist/tools/animation.d.ts +135 -4
  86. package/dist/tools/animation.js +510 -411
  87. package/dist/tools/assets.d.ts +75 -29
  88. package/dist/tools/assets.js +265 -284
  89. package/dist/tools/audio.d.ts +102 -42
  90. package/dist/tools/audio.js +272 -685
  91. package/dist/tools/base-tool.d.ts +17 -0
  92. package/dist/tools/base-tool.js +46 -0
  93. package/dist/tools/behavior-tree.d.ts +94 -0
  94. package/dist/tools/behavior-tree.js +39 -0
  95. package/dist/tools/blueprint.d.ts +208 -126
  96. package/dist/tools/blueprint.js +685 -832
  97. package/dist/tools/consolidated-tool-definitions.d.ts +5462 -1781
  98. package/dist/tools/consolidated-tool-definitions.js +829 -496
  99. package/dist/tools/consolidated-tool-handlers.d.ts +2 -1
  100. package/dist/tools/consolidated-tool-handlers.js +198 -1027
  101. package/dist/tools/debug.d.ts +143 -85
  102. package/dist/tools/debug.js +234 -180
  103. package/dist/tools/dynamic-handler-registry.d.ts +13 -0
  104. package/dist/tools/dynamic-handler-registry.js +23 -0
  105. package/dist/tools/editor.d.ts +30 -83
  106. package/dist/tools/editor.js +247 -244
  107. package/dist/tools/engine.d.ts +10 -4
  108. package/dist/tools/engine.js +13 -5
  109. package/dist/tools/environment.d.ts +30 -0
  110. package/dist/tools/environment.js +267 -0
  111. package/dist/tools/foliage.d.ts +65 -99
  112. package/dist/tools/foliage.js +221 -331
  113. package/dist/tools/handlers/actor-handlers.d.ts +3 -0
  114. package/dist/tools/handlers/actor-handlers.js +227 -0
  115. package/dist/tools/handlers/animation-handlers.d.ts +3 -0
  116. package/dist/tools/handlers/animation-handlers.js +185 -0
  117. package/dist/tools/handlers/argument-helper.d.ts +16 -0
  118. package/dist/tools/handlers/argument-helper.js +80 -0
  119. package/dist/tools/handlers/asset-handlers.d.ts +3 -0
  120. package/dist/tools/handlers/asset-handlers.js +496 -0
  121. package/dist/tools/handlers/audio-handlers.d.ts +3 -0
  122. package/dist/tools/handlers/audio-handlers.js +166 -0
  123. package/dist/tools/handlers/blueprint-handlers.d.ts +4 -0
  124. package/dist/tools/handlers/blueprint-handlers.js +358 -0
  125. package/dist/tools/handlers/common-handlers.d.ts +14 -0
  126. package/dist/tools/handlers/common-handlers.js +56 -0
  127. package/dist/tools/handlers/editor-handlers.d.ts +3 -0
  128. package/dist/tools/handlers/editor-handlers.js +119 -0
  129. package/dist/tools/handlers/effect-handlers.d.ts +3 -0
  130. package/dist/tools/handlers/effect-handlers.js +171 -0
  131. package/dist/tools/handlers/environment-handlers.d.ts +3 -0
  132. package/dist/tools/handlers/environment-handlers.js +170 -0
  133. package/dist/tools/handlers/graph-handlers.d.ts +3 -0
  134. package/dist/tools/handlers/graph-handlers.js +90 -0
  135. package/dist/tools/handlers/input-handlers.d.ts +3 -0
  136. package/dist/tools/handlers/input-handlers.js +21 -0
  137. package/dist/tools/handlers/inspect-handlers.d.ts +3 -0
  138. package/dist/tools/handlers/inspect-handlers.js +383 -0
  139. package/dist/tools/handlers/level-handlers.d.ts +3 -0
  140. package/dist/tools/handlers/level-handlers.js +237 -0
  141. package/dist/tools/handlers/lighting-handlers.d.ts +3 -0
  142. package/dist/tools/handlers/lighting-handlers.js +144 -0
  143. package/dist/tools/handlers/performance-handlers.d.ts +3 -0
  144. package/dist/tools/handlers/performance-handlers.js +130 -0
  145. package/dist/tools/handlers/pipeline-handlers.d.ts +3 -0
  146. package/dist/tools/handlers/pipeline-handlers.js +110 -0
  147. package/dist/tools/handlers/sequence-handlers.d.ts +3 -0
  148. package/dist/tools/handlers/sequence-handlers.js +376 -0
  149. package/dist/tools/handlers/system-handlers.d.ts +4 -0
  150. package/dist/tools/handlers/system-handlers.js +506 -0
  151. package/dist/tools/input.d.ts +19 -0
  152. package/dist/tools/input.js +89 -0
  153. package/dist/tools/introspection.d.ts +103 -40
  154. package/dist/tools/introspection.js +425 -568
  155. package/dist/tools/landscape.d.ts +54 -93
  156. package/dist/tools/landscape.js +284 -409
  157. package/dist/tools/level.d.ts +66 -27
  158. package/dist/tools/level.js +647 -675
  159. package/dist/tools/lighting.d.ts +77 -38
  160. package/dist/tools/lighting.js +445 -943
  161. package/dist/tools/logs.d.ts +3 -3
  162. package/dist/tools/logs.js +5 -57
  163. package/dist/tools/materials.d.ts +91 -24
  164. package/dist/tools/materials.js +194 -118
  165. package/dist/tools/niagara.d.ts +149 -39
  166. package/dist/tools/niagara.js +267 -182
  167. package/dist/tools/performance.d.ts +27 -13
  168. package/dist/tools/performance.js +203 -122
  169. package/dist/tools/physics.d.ts +32 -77
  170. package/dist/tools/physics.js +175 -582
  171. package/dist/tools/property-dictionary.d.ts +13 -0
  172. package/dist/tools/property-dictionary.js +82 -0
  173. package/dist/tools/sequence.d.ts +85 -60
  174. package/dist/tools/sequence.js +208 -747
  175. package/dist/tools/tool-definition-utils.d.ts +59 -0
  176. package/dist/tools/tool-definition-utils.js +35 -0
  177. package/dist/tools/ui.d.ts +64 -34
  178. package/dist/tools/ui.js +134 -214
  179. package/dist/types/automation-responses.d.ts +115 -0
  180. package/dist/types/automation-responses.js +2 -0
  181. package/dist/types/env.d.ts +0 -3
  182. package/dist/types/env.js +0 -7
  183. package/dist/types/responses.d.ts +249 -0
  184. package/dist/types/responses.js +2 -0
  185. package/dist/types/tool-interfaces.d.ts +898 -0
  186. package/dist/types/tool-interfaces.js +2 -0
  187. package/dist/types/tool-types.d.ts +183 -19
  188. package/dist/types/tool-types.js +0 -4
  189. package/dist/unreal-bridge.d.ts +24 -131
  190. package/dist/unreal-bridge.js +364 -1506
  191. package/dist/utils/command-validator.d.ts +9 -0
  192. package/dist/utils/command-validator.js +68 -0
  193. package/dist/utils/elicitation.d.ts +1 -1
  194. package/dist/utils/elicitation.js +12 -15
  195. package/dist/utils/error-handler.d.ts +2 -51
  196. package/dist/utils/error-handler.js +11 -87
  197. package/dist/utils/ini-reader.d.ts +3 -0
  198. package/dist/utils/ini-reader.js +69 -0
  199. package/dist/utils/logger.js +9 -6
  200. package/dist/utils/normalize.d.ts +3 -0
  201. package/dist/utils/normalize.js +56 -0
  202. package/dist/utils/path-security.d.ts +2 -0
  203. package/dist/utils/path-security.js +24 -0
  204. package/dist/utils/response-factory.d.ts +7 -0
  205. package/dist/utils/response-factory.js +27 -0
  206. package/dist/utils/response-validator.d.ts +3 -24
  207. package/dist/utils/response-validator.js +130 -81
  208. package/dist/utils/result-helpers.d.ts +4 -5
  209. package/dist/utils/result-helpers.js +15 -16
  210. package/dist/utils/safe-json.js +5 -11
  211. package/dist/utils/unreal-command-queue.d.ts +24 -0
  212. package/dist/utils/unreal-command-queue.js +120 -0
  213. package/dist/utils/validation.d.ts +0 -40
  214. package/dist/utils/validation.js +1 -78
  215. package/dist/wasm/index.d.ts +70 -0
  216. package/dist/wasm/index.js +535 -0
  217. package/docs/GraphQL-API.md +888 -0
  218. package/docs/Migration-Guide-v0.5.0.md +684 -0
  219. package/docs/Roadmap.md +53 -0
  220. package/docs/WebAssembly-Integration.md +628 -0
  221. package/docs/editor-plugin-extension.md +370 -0
  222. package/docs/handler-mapping.md +242 -0
  223. package/docs/native-automation-progress.md +128 -0
  224. package/docs/testing-guide.md +423 -0
  225. package/mcp-config-example.json +6 -6
  226. package/package.json +67 -28
  227. package/plugins/McpAutomationBridge/Config/FilterPlugin.ini +8 -0
  228. package/plugins/McpAutomationBridge/McpAutomationBridge.uplugin +64 -0
  229. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/McpAutomationBridge.Build.cs +189 -0
  230. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.cpp +22 -0
  231. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.h +30 -0
  232. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeHelpers.h +1983 -0
  233. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeModule.cpp +72 -0
  234. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSettings.cpp +46 -0
  235. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSubsystem.cpp +581 -0
  236. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AnimationHandlers.cpp +2394 -0
  237. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetQueryHandlers.cpp +300 -0
  238. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetWorkflowHandlers.cpp +2807 -0
  239. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AudioHandlers.cpp +1087 -0
  240. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BehaviorTreeHandlers.cpp +488 -0
  241. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.cpp +643 -0
  242. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.h +31 -0
  243. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintGraphHandlers.cpp +1184 -0
  244. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers.cpp +5652 -0
  245. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers_List.cpp +152 -0
  246. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ControlHandlers.cpp +2614 -0
  247. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_DebugHandlers.cpp +42 -0
  248. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EditorFunctionHandlers.cpp +1237 -0
  249. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EffectHandlers.cpp +1701 -0
  250. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EnvironmentHandlers.cpp +2145 -0
  251. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_FoliageHandlers.cpp +954 -0
  252. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InputHandlers.cpp +209 -0
  253. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InsightsHandlers.cpp +41 -0
  254. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LandscapeHandlers.cpp +1164 -0
  255. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LevelHandlers.cpp +762 -0
  256. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LightingHandlers.cpp +634 -0
  257. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LogHandlers.cpp +136 -0
  258. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_MaterialGraphHandlers.cpp +494 -0
  259. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraGraphHandlers.cpp +278 -0
  260. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraHandlers.cpp +625 -0
  261. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PerformanceHandlers.cpp +401 -0
  262. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PipelineHandlers.cpp +67 -0
  263. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ProcessRequest.cpp +735 -0
  264. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PropertyHandlers.cpp +2634 -0
  265. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_RenderHandlers.cpp +189 -0
  266. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.cpp +917 -0
  267. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.h +39 -0
  268. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequenceHandlers.cpp +2670 -0
  269. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequencerHandlers.cpp +519 -0
  270. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_TestHandlers.cpp +38 -0
  271. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_UiHandlers.cpp +668 -0
  272. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_WorldPartitionHandlers.cpp +346 -0
  273. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.cpp +1330 -0
  274. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.h +149 -0
  275. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpConnectionManager.cpp +783 -0
  276. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSettings.h +115 -0
  277. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSubsystem.h +796 -0
  278. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpConnectionManager.h +117 -0
  279. package/scripts/check-unreal-connection.mjs +19 -0
  280. package/scripts/clean-tmp.js +23 -0
  281. package/scripts/patch-wasm.js +26 -0
  282. package/scripts/run-all-tests.mjs +136 -0
  283. package/scripts/smoke-test.ts +94 -0
  284. package/scripts/sync-mcp-plugin.js +143 -0
  285. package/scripts/test-no-plugin-alternates.mjs +113 -0
  286. package/scripts/validate-server.js +46 -0
  287. package/scripts/verify-automation-bridge.js +200 -0
  288. package/server.json +58 -21
  289. package/src/automation/bridge.ts +558 -0
  290. package/src/automation/connection-manager.ts +130 -0
  291. package/src/automation/handshake.ts +99 -0
  292. package/src/automation/index.ts +2 -0
  293. package/src/automation/message-handler.ts +167 -0
  294. package/src/automation/request-tracker.ts +123 -0
  295. package/src/automation/types.ts +107 -0
  296. package/src/cli.ts +33 -6
  297. package/src/config.ts +73 -0
  298. package/src/constants.ts +19 -0
  299. package/src/graphql/loaders.ts +244 -0
  300. package/src/graphql/resolvers.ts +1008 -0
  301. package/src/graphql/schema.ts +452 -0
  302. package/src/graphql/server.ts +156 -0
  303. package/src/graphql/types.ts +10 -0
  304. package/src/handlers/resource-handlers.ts +186 -0
  305. package/src/index.ts +166 -664
  306. package/src/resources/actors.ts +58 -76
  307. package/src/resources/assets.ts +148 -134
  308. package/src/resources/levels.ts +28 -33
  309. package/src/server/resource-registry.ts +47 -0
  310. package/src/server/tool-registry.ts +354 -0
  311. package/src/server-setup.ts +114 -0
  312. package/src/services/health-monitor.ts +132 -0
  313. package/src/services/metrics-server.ts +142 -0
  314. package/src/tools/actors.ts +426 -323
  315. package/src/tools/animation.ts +672 -461
  316. package/src/tools/assets.ts +364 -289
  317. package/src/tools/audio.ts +323 -766
  318. package/src/tools/base-tool.ts +52 -0
  319. package/src/tools/behavior-tree.ts +45 -0
  320. package/src/tools/blueprint.ts +792 -970
  321. package/src/tools/consolidated-tool-definitions.ts +993 -515
  322. package/src/tools/consolidated-tool-handlers.ts +258 -1146
  323. package/src/tools/debug.ts +292 -187
  324. package/src/tools/dynamic-handler-registry.ts +33 -0
  325. package/src/tools/editor.ts +329 -253
  326. package/src/tools/engine.ts +14 -3
  327. package/src/tools/environment.ts +281 -0
  328. package/src/tools/foliage.ts +330 -392
  329. package/src/tools/handlers/actor-handlers.ts +265 -0
  330. package/src/tools/handlers/animation-handlers.ts +237 -0
  331. package/src/tools/handlers/argument-helper.ts +142 -0
  332. package/src/tools/handlers/asset-handlers.ts +532 -0
  333. package/src/tools/handlers/audio-handlers.ts +194 -0
  334. package/src/tools/handlers/blueprint-handlers.ts +380 -0
  335. package/src/tools/handlers/common-handlers.ts +87 -0
  336. package/src/tools/handlers/editor-handlers.ts +123 -0
  337. package/src/tools/handlers/effect-handlers.ts +220 -0
  338. package/src/tools/handlers/environment-handlers.ts +183 -0
  339. package/src/tools/handlers/graph-handlers.ts +116 -0
  340. package/src/tools/handlers/input-handlers.ts +28 -0
  341. package/src/tools/handlers/inspect-handlers.ts +450 -0
  342. package/src/tools/handlers/level-handlers.ts +252 -0
  343. package/src/tools/handlers/lighting-handlers.ts +147 -0
  344. package/src/tools/handlers/performance-handlers.ts +132 -0
  345. package/src/tools/handlers/pipeline-handlers.ts +127 -0
  346. package/src/tools/handlers/sequence-handlers.ts +415 -0
  347. package/src/tools/handlers/system-handlers.ts +564 -0
  348. package/src/tools/input.ts +101 -0
  349. package/src/tools/introspection.ts +493 -584
  350. package/src/tools/landscape.ts +418 -507
  351. package/src/tools/level.ts +786 -708
  352. package/src/tools/lighting.ts +588 -984
  353. package/src/tools/logs.ts +9 -57
  354. package/src/tools/materials.ts +237 -121
  355. package/src/tools/niagara.ts +335 -168
  356. package/src/tools/performance.ts +320 -169
  357. package/src/tools/physics.ts +274 -613
  358. package/src/tools/property-dictionary.ts +98 -0
  359. package/src/tools/sequence.ts +276 -820
  360. package/src/tools/tool-definition-utils.ts +35 -0
  361. package/src/tools/ui.ts +205 -283
  362. package/src/types/automation-responses.ts +119 -0
  363. package/src/types/env.ts +0 -10
  364. package/src/types/responses.ts +355 -0
  365. package/src/types/tool-interfaces.ts +250 -0
  366. package/src/types/tool-types.ts +243 -21
  367. package/src/unreal-bridge.ts +460 -1550
  368. package/src/utils/command-validator.ts +76 -0
  369. package/src/utils/elicitation.ts +10 -7
  370. package/src/utils/error-handler.ts +14 -90
  371. package/src/utils/ini-reader.ts +86 -0
  372. package/src/utils/logger.ts +8 -3
  373. package/src/utils/normalize.test.ts +162 -0
  374. package/src/utils/normalize.ts +60 -0
  375. package/src/utils/path-security.ts +43 -0
  376. package/src/utils/response-factory.ts +44 -0
  377. package/src/utils/response-validator.ts +176 -56
  378. package/src/utils/result-helpers.ts +21 -19
  379. package/src/utils/safe-json.test.ts +90 -0
  380. package/src/utils/safe-json.ts +14 -11
  381. package/src/utils/unreal-command-queue.ts +152 -0
  382. package/src/utils/validation.test.ts +184 -0
  383. package/src/utils/validation.ts +4 -1
  384. package/src/wasm/index.ts +838 -0
  385. package/test-server.mjs +100 -0
  386. package/tests/run-unreal-tool-tests.mjs +242 -14
  387. package/tests/test-animation.mjs +369 -0
  388. package/tests/test-asset-advanced.mjs +82 -0
  389. package/tests/test-asset-errors.mjs +35 -0
  390. package/tests/test-asset-graph.mjs +311 -0
  391. package/tests/test-audio.mjs +417 -0
  392. package/tests/test-automation-timeouts.mjs +98 -0
  393. package/tests/test-behavior-tree.mjs +444 -0
  394. package/tests/test-blueprint-graph.mjs +410 -0
  395. package/tests/test-blueprint.mjs +577 -0
  396. package/tests/test-client-mode.mjs +86 -0
  397. package/tests/test-console-command.mjs +56 -0
  398. package/tests/test-control-actor.mjs +425 -0
  399. package/tests/test-control-editor.mjs +112 -0
  400. package/tests/test-graphql.mjs +372 -0
  401. package/tests/test-input.mjs +349 -0
  402. package/tests/test-inspect.mjs +302 -0
  403. package/tests/test-landscape.mjs +316 -0
  404. package/tests/test-lighting.mjs +428 -0
  405. package/tests/test-manage-asset.mjs +438 -0
  406. package/tests/test-manage-level.mjs +89 -0
  407. package/tests/test-materials.mjs +356 -0
  408. package/tests/test-niagara.mjs +185 -0
  409. package/tests/test-no-inline-python.mjs +122 -0
  410. package/tests/test-performance.mjs +539 -0
  411. package/tests/test-plugin-handshake.mjs +82 -0
  412. package/tests/test-runner.mjs +933 -0
  413. package/tests/test-sequence.mjs +104 -0
  414. package/tests/test-system.mjs +96 -0
  415. package/tests/test-wasm.mjs +283 -0
  416. package/tests/test-world-partition.mjs +215 -0
  417. package/tsconfig.json +3 -3
  418. package/vitest.config.ts +35 -0
  419. package/wasm/Cargo.lock +363 -0
  420. package/wasm/Cargo.toml +42 -0
  421. package/wasm/LICENSE +21 -0
  422. package/wasm/README.md +253 -0
  423. package/wasm/src/dependency_resolver.rs +377 -0
  424. package/wasm/src/lib.rs +153 -0
  425. package/wasm/src/property_parser.rs +271 -0
  426. package/wasm/src/transform_math.rs +396 -0
  427. package/wasm/tests/integration.rs +109 -0
  428. package/.github/workflows/smithery-build.yml +0 -29
  429. package/dist/prompts/index.d.ts +0 -21
  430. package/dist/prompts/index.js +0 -217
  431. package/dist/tools/build_environment_advanced.d.ts +0 -65
  432. package/dist/tools/build_environment_advanced.js +0 -633
  433. package/dist/tools/rc.d.ts +0 -110
  434. package/dist/tools/rc.js +0 -437
  435. package/dist/tools/visual.d.ts +0 -40
  436. package/dist/tools/visual.js +0 -282
  437. package/dist/utils/http.d.ts +0 -6
  438. package/dist/utils/http.js +0 -151
  439. package/dist/utils/python-output.d.ts +0 -18
  440. package/dist/utils/python-output.js +0 -290
  441. package/dist/utils/python.d.ts +0 -2
  442. package/dist/utils/python.js +0 -4
  443. package/dist/utils/stdio-redirect.d.ts +0 -2
  444. package/dist/utils/stdio-redirect.js +0 -20
  445. package/docs/unreal-tool-test-cases.md +0 -574
  446. package/smithery.yaml +0 -29
  447. package/src/prompts/index.ts +0 -249
  448. package/src/tools/build_environment_advanced.ts +0 -732
  449. package/src/tools/rc.ts +0 -515
  450. package/src/tools/visual.ts +0 -281
  451. package/src/utils/http.ts +0 -187
  452. package/src/utils/python-output.ts +0 -351
  453. package/src/utils/python.ts +0 -3
  454. package/src/utils/stdio-redirect.ts +0 -18
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tool-interfaces.js.map
@@ -1,7 +1,3 @@
1
- /**
2
- * Auto-generated TypeScript types from tool schemas
3
- * This provides type safety and IntelliSense support
4
- */
5
1
  export interface BaseToolResponse {
6
2
  success: boolean;
7
3
  message?: string;
@@ -18,6 +14,7 @@ export interface ManageAssetResponse extends BaseToolResponse {
18
14
  assets?: AssetInfo[];
19
15
  paths?: string[];
20
16
  materialPath?: string;
17
+ materialInstancePath?: string;
21
18
  }
22
19
  export interface Vector3D {
23
20
  x: number;
@@ -31,8 +28,25 @@ export interface Rotation3D {
31
28
  }
32
29
  export interface ControlActorResponse extends BaseToolResponse {
33
30
  actor?: string;
34
- deleted?: string;
31
+ actorName?: string;
32
+ actorPath?: string;
33
+ componentName?: string;
34
+ componentPath?: string;
35
+ componentClass?: string;
36
+ componentPaths?: Array<{
37
+ name: string;
38
+ path: string;
39
+ class?: string;
40
+ }>;
41
+ components?: Array<Record<string, unknown>>;
42
+ actors?: Array<Record<string, unknown>>;
43
+ deleted?: string | string[];
44
+ deletedCount?: number;
45
+ missing?: string[];
35
46
  physicsEnabled?: boolean;
47
+ visible?: boolean;
48
+ tag?: string;
49
+ snapshotName?: string;
36
50
  }
37
51
  export interface ControlEditorResponse extends BaseToolResponse {
38
52
  playing?: boolean;
@@ -52,6 +66,13 @@ export interface AnimationPhysicsResponse extends BaseToolResponse {
52
66
  playing?: boolean;
53
67
  playRate?: number;
54
68
  ragdollActive?: boolean;
69
+ path?: string;
70
+ blendSpacePath?: string;
71
+ skeletonPath?: string;
72
+ controlRigPath?: string;
73
+ twoDimensional?: boolean;
74
+ warnings?: string[];
75
+ details?: unknown;
55
76
  }
56
77
  export interface CreateEffectResponse extends BaseToolResponse {
57
78
  effectName?: string;
@@ -123,6 +144,59 @@ export interface ToolParameters {
123
144
  actorName: string;
124
145
  force: Vector3D;
125
146
  };
147
+ SpawnBlueprintParams: {
148
+ blueprintPath: string;
149
+ actorName?: string;
150
+ location?: Vector3D;
151
+ rotation?: Rotation3D;
152
+ };
153
+ SetTransformParams: {
154
+ actorName: string;
155
+ location?: Vector3D;
156
+ rotation?: Rotation3D;
157
+ scale?: Vector3D;
158
+ };
159
+ SetVisibilityParams: {
160
+ actorName: string;
161
+ visible: boolean;
162
+ };
163
+ ComponentParams: {
164
+ actorName: string;
165
+ componentType?: string;
166
+ componentName?: string;
167
+ properties?: Record<string, unknown>;
168
+ };
169
+ DuplicateActorParams: {
170
+ actorName: string;
171
+ newName?: string;
172
+ offset?: Vector3D;
173
+ };
174
+ AttachActorParams: {
175
+ childActor: string;
176
+ parentActor: string;
177
+ };
178
+ DetachActorParams: {
179
+ actorName: string;
180
+ };
181
+ TagActorParams: {
182
+ actorName: string;
183
+ tag: string;
184
+ };
185
+ FindByTagParams: {
186
+ tag: string;
187
+ matchType?: string;
188
+ };
189
+ FindByNameParams: {
190
+ name: string;
191
+ };
192
+ BlueprintVariablesParams: {
193
+ actorName: string;
194
+ variables: Record<string, unknown>;
195
+ };
196
+ SnapshotActorParams: {
197
+ actorName: string;
198
+ snapshotName: string;
199
+ };
126
200
  SetCameraParams: {
127
201
  location?: Vector3D;
128
202
  rotation?: Rotation3D;
@@ -134,12 +208,12 @@ export interface ToolParameters {
134
208
  command: string;
135
209
  };
136
210
  }
137
- export type AssetAction = 'list' | 'import' | 'create_material';
138
- export type ActorAction = 'spawn' | 'delete' | 'apply_force';
211
+ export type AssetAction = 'list' | 'import' | 'create_material' | 'create_material_instance';
212
+ export type ActorAction = 'spawn' | 'spawn_blueprint' | 'delete' | 'delete_by_tag' | 'duplicate' | 'apply_force' | 'set_transform' | 'get_transform' | 'set_visibility' | 'add_component' | 'set_component_properties' | 'get_components' | 'add_tag' | 'find_by_tag' | 'find_by_name' | 'set_blueprint_variables' | 'create_snapshot' | 'attach' | 'detach';
139
213
  export type EditorAction = 'play' | 'stop' | 'set_camera' | 'set_view_mode';
140
214
  export type LevelAction = 'load' | 'save' | 'stream' | 'create_light' | 'build_lighting';
141
- export type AnimationAction = 'create_animation_bp' | 'play_montage' | 'setup_ragdoll';
142
- export type EffectAction = 'particle' | 'niagara' | 'debug_shape';
215
+ export type AnimationAction = 'create_animation_bp' | 'create_anim_blueprint' | 'create_animation_blueprint' | 'play_montage' | 'play_anim_montage' | 'setup_ragdoll' | 'activate_ragdoll' | 'configure_vehicle' | 'create_blend_space' | 'create_state_machine' | 'setup_ik' | 'create_procedural_anim' | 'create_blend_tree' | 'setup_retargeting' | 'setup_physics_simulation' | 'create_animation_asset' | 'cleanup';
216
+ export type EffectAction = 'particle' | 'niagara' | 'debug_shape' | 'spawn_niagara' | 'set_niagara_parameter' | 'clear_debug_shapes' | 'create_dynamic_light' | 'cleanup';
143
217
  export type BlueprintAction = 'create' | 'add_component';
144
218
  export type EnvironmentAction = 'create_landscape' | 'sculpt' | 'add_foliage' | 'paint_foliage';
145
219
  export type SystemAction = 'profile' | 'show_fps' | 'set_quality' | 'play_sound' | 'create_widget' | 'show_widget' | 'screenshot' | 'engine_start' | 'engine_quit' | 'read_log';
@@ -153,6 +227,8 @@ export interface ConsolidatedToolParams {
153
227
  destinationPath?: string;
154
228
  name?: string;
155
229
  path?: string;
230
+ parentMaterial?: string;
231
+ parameters?: Record<string, any>;
156
232
  };
157
233
  control_actor: {
158
234
  action: ActorAction;
@@ -160,13 +236,40 @@ export interface ConsolidatedToolParams {
160
236
  classPath?: string;
161
237
  location?: Vector3D;
162
238
  rotation?: Rotation3D;
239
+ scale?: Vector3D;
163
240
  force?: Vector3D;
241
+ blueprintPath?: string;
242
+ componentType?: string;
243
+ componentName?: string;
244
+ properties?: Record<string, unknown>;
245
+ visible?: boolean;
246
+ newName?: string;
247
+ offset?: Vector3D;
248
+ tag?: string;
249
+ matchType?: string;
250
+ variables?: Record<string, unknown>;
251
+ snapshotName?: string;
252
+ childActor?: string;
253
+ parentActor?: string;
254
+ actorNames?: string[];
164
255
  };
165
256
  control_editor: {
166
257
  action: EditorAction;
167
258
  location?: Vector3D;
168
259
  rotation?: Rotation3D;
169
260
  viewMode?: string;
261
+ speed?: number;
262
+ filename?: string;
263
+ fov?: number;
264
+ width?: number;
265
+ height?: number;
266
+ command?: string;
267
+ steps?: number;
268
+ frameRate?: number;
269
+ durationSeconds?: number;
270
+ bookmarkName?: string;
271
+ category?: string;
272
+ preferences?: Record<string, unknown>;
170
273
  };
171
274
  manage_level: {
172
275
  action: LevelAction;
@@ -185,13 +288,63 @@ export interface ConsolidatedToolParams {
185
288
  action: AnimationAction;
186
289
  name?: string;
187
290
  actorName?: string;
291
+ savePath?: string;
292
+ path?: string;
188
293
  skeletonPath?: string;
294
+ blueprintName?: string;
295
+ blueprintPath?: string;
189
296
  montagePath?: string;
190
297
  animationPath?: string;
191
298
  playRate?: number;
192
299
  physicsAssetName?: string;
193
300
  blendWeight?: number;
194
- savePath?: string;
301
+ meshPath?: string;
302
+ assignToMesh?: boolean;
303
+ previewSkeleton?: string;
304
+ generateConstraints?: boolean;
305
+ vehicleName?: string;
306
+ vehicleType?: 'Car' | 'Bike' | 'Tank' | 'Aircraft' | string;
307
+ wheels?: Array<{
308
+ name: string;
309
+ radius: number;
310
+ width: number;
311
+ mass: number;
312
+ isSteering?: boolean;
313
+ isDriving?: boolean;
314
+ }>;
315
+ engine?: {
316
+ maxRPM: number;
317
+ torqueCurve: Array<[number, number]>;
318
+ };
319
+ transmission?: {
320
+ gears: number[];
321
+ finalDriveRatio: number;
322
+ };
323
+ pluginDependencies?: string[];
324
+ dimensions?: number | [number, number];
325
+ horizontalAxis?: {
326
+ name?: string;
327
+ minValue?: number;
328
+ maxValue?: number;
329
+ };
330
+ verticalAxis?: {
331
+ name?: string;
332
+ minValue?: number;
333
+ maxValue?: number;
334
+ };
335
+ samples?: any[];
336
+ states?: any[];
337
+ transitions?: any[];
338
+ chain?: any;
339
+ effector?: any;
340
+ sourceSkeleton?: string;
341
+ targetSkeleton?: string;
342
+ assets?: string[];
343
+ retargetAssets?: string[];
344
+ suffix?: string;
345
+ overwrite?: boolean;
346
+ artifacts?: string[];
347
+ assetType?: string;
195
348
  };
196
349
  create_effect: {
197
350
  action: EffectAction;
@@ -203,6 +356,20 @@ export interface ConsolidatedToolParams {
203
356
  shape?: string;
204
357
  size?: number;
205
358
  color?: [number, number, number, number];
359
+ lightName?: string;
360
+ lightType?: 'Point' | 'Spot' | 'Directional' | 'Rect' | string;
361
+ intensity?: number;
362
+ rotation?: Rotation3D;
363
+ pulse?: {
364
+ enabled?: boolean;
365
+ frequency?: number;
366
+ };
367
+ filter?: string;
368
+ systemName?: string;
369
+ parameterName?: string;
370
+ parameterType?: string;
371
+ value?: any;
372
+ isUserParameter?: boolean;
206
373
  duration?: number;
207
374
  };
208
375
  manage_blueprint: {
@@ -212,6 +379,9 @@ export interface ConsolidatedToolParams {
212
379
  componentType?: string;
213
380
  componentName?: string;
214
381
  savePath?: string;
382
+ waitForCompletion?: boolean;
383
+ applyAndSave?: boolean;
384
+ waitForCompletionTimeoutMs?: number;
215
385
  };
216
386
  build_environment: {
217
387
  action: EnvironmentAction;
@@ -240,15 +410,9 @@ export interface ConsolidatedToolParams {
240
410
  widgetName?: string;
241
411
  widgetType?: string;
242
412
  visible?: boolean;
243
- resolution?: string;
244
- projectPath?: string;
245
- editorExe?: string;
246
- filter_category?: string | string[];
247
- filter_level?: 'Error' | 'Warning' | 'Log' | 'Verbose' | 'VeryVerbose' | 'All';
248
- lines?: number;
249
- log_path?: string;
250
- include_prefixes?: string[];
251
- exclude_categories?: string[];
413
+ width?: number;
414
+ height?: number;
415
+ windowed?: boolean;
252
416
  };
253
417
  console_command: {
254
418
  command: string;
@@ -1,6 +1,2 @@
1
- /**
2
- * Auto-generated TypeScript types from tool schemas
3
- * This provides type safety and IntelliSense support
4
- */
5
1
  export {};
6
2
  //# sourceMappingURL=tool-types.js.map
@@ -1,92 +1,42 @@
1
- interface RcCallBody {
2
- objectPath: string;
3
- functionName: string;
4
- parameters?: Record<string, any>;
5
- generateTransaction?: boolean;
6
- }
1
+ import type { AutomationBridge } from './automation/index.js';
7
2
  export declare class UnrealBridge {
8
- private ws?;
9
- private http;
10
- private env;
11
3
  private log;
12
4
  private connected;
13
- private reconnectTimer?;
14
- private reconnectAttempts;
15
- private readonly MAX_RECONNECT_ATTEMPTS;
16
- private readonly BASE_RECONNECT_DELAY;
17
- private autoReconnectEnabled;
18
- private engineVersionCache?;
19
- private readonly ENGINE_VERSION_TTL_MS;
20
- private lastPongReceived;
21
- private pingInterval?;
22
- private readonly PING_INTERVAL_MS;
23
- private readonly PONG_TIMEOUT_MS;
5
+ private automationBridge?;
6
+ private automationBridgeListeners?;
24
7
  private commandQueue;
25
- private isProcessing;
26
- private readonly MIN_COMMAND_DELAY;
27
- private readonly MAX_COMMAND_DELAY;
28
- private readonly STAT_COMMAND_DELAY;
29
- private lastCommandTime;
30
- private lastStatCommandTime;
31
- private consoleObjectCache;
32
- private readonly CONSOLE_CACHE_TTL;
33
- private pluginStatusCache;
34
- private readonly PLUGIN_CACHE_TTL;
35
- private readonly UNSAFE_VIEWMODES;
36
- private readonly HARD_BLOCKED_VIEWMODES;
37
- private readonly VIEWMODE_ALIASES;
38
- private readonly PYTHON_TEMPLATES;
39
8
  get isConnected(): boolean;
40
- /**
41
- * Attempt to connect with exponential backoff retry strategy
42
- * Uses optimized retry pattern from TypeScript best practices
43
- * @param maxAttempts Maximum number of connection attempts
44
- * @param timeoutMs Timeout for each connection attempt in milliseconds
45
- * @param retryDelayMs Initial delay between retry attempts in milliseconds
46
- * @returns Promise that resolves to true if connected, false otherwise
47
- */
9
+ setAutomationBridge(automationBridge?: AutomationBridge): void;
10
+ getAutomationBridge(): AutomationBridge;
48
11
  private connectPromise?;
49
12
  tryConnect(maxAttempts?: number, timeoutMs?: number, retryDelayMs?: number): Promise<boolean>;
50
13
  connect(timeoutMs?: number): Promise<void>;
51
- httpCall<T = any>(path: string, method?: 'GET' | 'POST' | 'PUT', body?: any): Promise<T>;
52
- private parsePythonJsonResult;
53
- ensurePluginsEnabled(pluginNames: string[], context?: string): Promise<string[]>;
54
- call(body: RcCallBody): Promise<any>;
55
- getExposed(): Promise<any>;
56
- executeConsoleCommand(command: string, options?: {
57
- allowPython?: boolean;
58
- }): Promise<any>;
59
- summarizeConsoleCommand(command: string, response: any): {
60
- command: string;
61
- output: string;
62
- logLines: any[];
63
- returnValue: any;
64
- raw: any;
65
- };
14
+ private waitForAutomationConnection;
15
+ getObjectProperty(params: {
16
+ objectPath: string;
17
+ propertyName: string;
18
+ timeoutMs?: number;
19
+ allowAlternate?: boolean;
20
+ }): Promise<Record<string, any>>;
21
+ setObjectProperty(params: {
22
+ objectPath: string;
23
+ propertyName: string;
24
+ value: unknown;
25
+ markDirty?: boolean;
26
+ timeoutMs?: number;
27
+ allowAlternate?: boolean;
28
+ }): Promise<Record<string, any>>;
29
+ executeConsoleCommand(command: string, _options?: Record<string, never>): Promise<any>;
66
30
  executeConsoleCommands(commands: Iterable<string | {
67
31
  command: string;
68
32
  priority?: number;
69
- allowPython?: boolean;
70
33
  }>, options?: {
71
34
  continueOnError?: boolean;
72
35
  delayMs?: number;
73
36
  }): Promise<any[]>;
74
- executePython(command: string): Promise<any>;
75
- setAutoReconnectEnabled(enabled: boolean): void;
76
- private scheduleReconnect;
77
- disconnect(): Promise<void>;
78
- /**
79
- * Enhanced Editor Function Access
80
- * Use Python scripting as a bridge to access modern Editor Subsystem functions
81
- */
82
- executeEditorFunction(functionName: string, params?: Record<string, any>): Promise<any>;
83
- /**
84
- * Execute Python script and parse the result
85
- */
86
- executePythonWithResult(script: string): Promise<any>;
87
- /**
88
- * Get the Unreal Engine version via Python and parse major/minor/patch.
89
- */
37
+ executeEditorFunction(functionName: string, params?: Record<string, any>, _options?: {
38
+ timeoutMs?: number;
39
+ }): Promise<any>;
90
40
  getEngineVersion(): Promise<{
91
41
  version: string;
92
42
  major: number;
@@ -94,71 +44,14 @@ export declare class UnrealBridge {
94
44
  patch: number;
95
45
  isUE56OrAbove: boolean;
96
46
  }>;
97
- /**
98
- * Query feature flags (Python availability, editor subsystems) via Python.
99
- */
100
47
  getFeatureFlags(): Promise<{
101
- pythonEnabled: boolean;
102
48
  subsystems: {
103
49
  unrealEditor: boolean;
104
50
  levelEditor: boolean;
105
51
  editorActor: boolean;
106
52
  };
107
53
  }>;
108
- /**
109
- * Fallback commands when Python is not available
110
- */
111
- private executeFallbackCommand;
112
- /**
113
- * SOLUTION 2: Safe ViewMode Switching
114
- * Prevent crashes by validating and safely switching viewmodes
115
- */
116
- setSafeViewMode(mode: string): Promise<any>;
117
- /**
118
- * Get safe alternative for unsafe viewmodes
119
- */
120
- private getSafeAlternative;
121
- /**
122
- * SOLUTION 3: Command Throttling and Queueing
123
- * Prevent rapid command execution that can overwhelm the engine
124
- */
125
54
  private executeThrottledCommand;
126
- /**
127
- * Process command queue with appropriate delays
128
- */
129
- private processCommandQueue;
130
- /**
131
- * Calculate appropriate delay based on command priority and type
132
- */
133
- private calculateDelay;
134
- /**
135
- * SOLUTION 4: Enhanced Asset Creation
136
- * Use Python scripting for complex asset creation that requires editor scripting
137
- */
138
- createComplexAsset(assetType: string, params: Record<string, any>): Promise<any>;
139
- /**
140
- * Start the command processor
141
- */
142
- private startCommandProcessor;
143
- /**
144
- * Clean expired entries from console object cache
145
- */
146
- private cleanConsoleCache;
147
- /**
148
- * Helper delay function
149
- */
150
55
  private delay;
151
- /**
152
- * Batch command execution with proper delays
153
- */
154
- executeBatch(commands: Array<{
155
- command: string;
156
- priority?: number;
157
- }>): Promise<any[]>;
158
- /**
159
- * Get safe console commands for common operations
160
- */
161
- getSafeCommands(): Record<string, string>;
162
56
  }
163
- export {};
164
57
  //# sourceMappingURL=unreal-bridge.d.ts.map