unreal-engine-mcp-server 0.5.4 → 0.5.6

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 (561) hide show
  1. package/CHANGELOG.md +350 -0
  2. package/dist/automation/bridge.d.ts.map +1 -0
  3. package/dist/automation/bridge.js +5 -4
  4. package/dist/automation/bridge.js.map +1 -0
  5. package/dist/automation/connection-manager.d.ts.map +1 -0
  6. package/dist/automation/connection-manager.js.map +1 -0
  7. package/dist/automation/handshake.d.ts.map +1 -0
  8. package/dist/automation/handshake.js.map +1 -0
  9. package/dist/automation/index.d.ts.map +1 -0
  10. package/dist/automation/index.js.map +1 -0
  11. package/dist/automation/message-handler.d.ts.map +1 -0
  12. package/dist/automation/message-handler.js.map +1 -0
  13. package/dist/automation/request-tracker.d.ts.map +1 -0
  14. package/dist/automation/request-tracker.js.map +1 -0
  15. package/dist/automation/types.d.ts +7 -0
  16. package/dist/automation/types.d.ts.map +1 -0
  17. package/dist/automation/types.js.map +1 -0
  18. package/dist/cli.d.ts.map +1 -0
  19. package/dist/cli.js +6 -4
  20. package/dist/cli.js.map +1 -0
  21. package/dist/config/class-aliases.d.ts.map +1 -0
  22. package/dist/config/class-aliases.js.map +1 -0
  23. package/dist/config.d.ts.map +1 -0
  24. package/dist/config.js.map +1 -0
  25. package/dist/constants.d.ts.map +1 -0
  26. package/dist/constants.js.map +1 -0
  27. package/dist/graphql/loaders.d.ts.map +1 -0
  28. package/dist/graphql/loaders.js.map +1 -0
  29. package/dist/graphql/resolvers.d.ts +174 -69
  30. package/dist/graphql/resolvers.d.ts.map +1 -0
  31. package/dist/graphql/resolvers.js +82 -67
  32. package/dist/graphql/resolvers.js.map +1 -0
  33. package/dist/graphql/schema.d.ts.map +1 -0
  34. package/dist/graphql/schema.js.map +1 -0
  35. package/dist/graphql/server.d.ts.map +1 -0
  36. package/dist/graphql/server.js.map +1 -0
  37. package/dist/graphql/types.d.ts.map +1 -0
  38. package/dist/graphql/types.js.map +1 -0
  39. package/dist/handlers/resource-handlers.d.ts.map +1 -0
  40. package/dist/handlers/resource-handlers.js.map +1 -0
  41. package/dist/index.d.ts +2 -1
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +70 -9
  44. package/dist/index.js.map +1 -0
  45. package/dist/resources/actors.d.ts +7 -4
  46. package/dist/resources/actors.d.ts.map +1 -0
  47. package/dist/resources/actors.js +15 -12
  48. package/dist/resources/actors.js.map +1 -0
  49. package/dist/resources/assets.d.ts +43 -2
  50. package/dist/resources/assets.d.ts.map +1 -0
  51. package/dist/resources/assets.js +21 -12
  52. package/dist/resources/assets.js.map +1 -0
  53. package/dist/resources/levels.d.ts.map +1 -0
  54. package/dist/resources/levels.js +7 -5
  55. package/dist/resources/levels.js.map +1 -0
  56. package/dist/schemas/index.d.ts +4 -0
  57. package/dist/schemas/index.d.ts.map +1 -0
  58. package/dist/schemas/index.js +4 -0
  59. package/dist/schemas/index.js.map +1 -0
  60. package/dist/schemas/parser.d.ts +20 -0
  61. package/dist/schemas/parser.d.ts.map +1 -0
  62. package/dist/schemas/parser.js +61 -0
  63. package/dist/schemas/parser.js.map +1 -0
  64. package/dist/schemas/primitives.d.ts +221 -0
  65. package/dist/schemas/primitives.d.ts.map +1 -0
  66. package/dist/schemas/primitives.js +115 -0
  67. package/dist/schemas/primitives.js.map +1 -0
  68. package/dist/schemas/responses.d.ts +362 -0
  69. package/dist/schemas/responses.d.ts.map +1 -0
  70. package/dist/schemas/responses.js +252 -0
  71. package/dist/schemas/responses.js.map +1 -0
  72. package/dist/server/resource-registry.d.ts.map +1 -0
  73. package/dist/server/resource-registry.js.map +1 -0
  74. package/dist/server/tool-registry.d.ts.map +1 -0
  75. package/dist/server/tool-registry.js +22 -17
  76. package/dist/server/tool-registry.js.map +1 -0
  77. package/dist/server-setup.d.ts.map +1 -0
  78. package/dist/server-setup.js.map +1 -0
  79. package/dist/services/health-monitor.d.ts +1 -1
  80. package/dist/services/health-monitor.d.ts.map +1 -0
  81. package/dist/services/health-monitor.js +4 -3
  82. package/dist/services/health-monitor.js.map +1 -0
  83. package/dist/services/metrics-server.d.ts.map +1 -0
  84. package/dist/services/metrics-server.js.map +1 -0
  85. package/dist/tools/actors.d.ts +27 -27
  86. package/dist/tools/actors.d.ts.map +1 -0
  87. package/dist/tools/actors.js +14 -10
  88. package/dist/tools/actors.js.map +1 -0
  89. package/dist/tools/animation.d.ts +15 -23
  90. package/dist/tools/animation.d.ts.map +1 -0
  91. package/dist/tools/animation.js +17 -13
  92. package/dist/tools/animation.js.map +1 -0
  93. package/dist/tools/assets.d.ts.map +1 -0
  94. package/dist/tools/assets.js +18 -12
  95. package/dist/tools/assets.js.map +1 -0
  96. package/dist/tools/audio.d.ts +10 -10
  97. package/dist/tools/audio.d.ts.map +1 -0
  98. package/dist/tools/audio.js.map +1 -0
  99. package/dist/tools/base-tool.d.ts.map +1 -0
  100. package/dist/tools/base-tool.js.map +1 -0
  101. package/dist/tools/behavior-tree.d.ts +24 -24
  102. package/dist/tools/behavior-tree.d.ts.map +1 -0
  103. package/dist/tools/behavior-tree.js.map +1 -0
  104. package/dist/tools/blueprint.d.ts +14 -3
  105. package/dist/tools/blueprint.d.ts.map +1 -0
  106. package/dist/tools/blueprint.js +5 -3
  107. package/dist/tools/blueprint.js.map +1 -0
  108. package/dist/tools/consolidated-tool-definitions.d.ts +32 -32
  109. package/dist/tools/consolidated-tool-definitions.d.ts.map +1 -0
  110. package/dist/tools/consolidated-tool-definitions.js.map +1 -0
  111. package/dist/tools/consolidated-tool-handlers.d.ts +1 -1
  112. package/dist/tools/consolidated-tool-handlers.d.ts.map +1 -0
  113. package/dist/tools/consolidated-tool-handlers.js +26 -21
  114. package/dist/tools/consolidated-tool-handlers.js.map +1 -0
  115. package/dist/tools/debug.d.ts +25 -7
  116. package/dist/tools/debug.d.ts.map +1 -0
  117. package/dist/tools/debug.js +3 -1
  118. package/dist/tools/debug.js.map +1 -0
  119. package/dist/tools/dynamic-handler-registry.d.ts +1 -1
  120. package/dist/tools/dynamic-handler-registry.d.ts.map +1 -0
  121. package/dist/tools/dynamic-handler-registry.js +3 -1
  122. package/dist/tools/dynamic-handler-registry.js.map +1 -0
  123. package/dist/tools/editor.d.ts.map +1 -0
  124. package/dist/tools/editor.js +8 -6
  125. package/dist/tools/editor.js.map +1 -0
  126. package/dist/tools/engine.d.ts +1 -1
  127. package/dist/tools/engine.d.ts.map +1 -0
  128. package/dist/tools/engine.js +4 -2
  129. package/dist/tools/engine.js.map +1 -0
  130. package/dist/tools/environment.d.ts.map +1 -0
  131. package/dist/tools/environment.js +4 -3
  132. package/dist/tools/environment.js.map +1 -0
  133. package/dist/tools/foliage.d.ts.map +1 -0
  134. package/dist/tools/foliage.js +8 -8
  135. package/dist/tools/foliage.js.map +1 -0
  136. package/dist/tools/handlers/actor-handlers.d.ts +2 -1
  137. package/dist/tools/handlers/actor-handlers.d.ts.map +1 -0
  138. package/dist/tools/handlers/actor-handlers.js +56 -33
  139. package/dist/tools/handlers/actor-handlers.js.map +1 -0
  140. package/dist/tools/handlers/animation-handlers.d.ts +2 -1
  141. package/dist/tools/handlers/animation-handlers.d.ts.map +1 -0
  142. package/dist/tools/handlers/animation-handlers.js +74 -67
  143. package/dist/tools/handlers/animation-handlers.js.map +1 -0
  144. package/dist/tools/handlers/argument-helper.d.ts +24 -4
  145. package/dist/tools/handlers/argument-helper.d.ts.map +1 -0
  146. package/dist/tools/handlers/argument-helper.js +139 -4
  147. package/dist/tools/handlers/argument-helper.js.map +1 -0
  148. package/dist/tools/handlers/asset-handlers.d.ts +2 -1
  149. package/dist/tools/handlers/asset-handlers.d.ts.map +1 -0
  150. package/dist/tools/handlers/asset-handlers.js +155 -94
  151. package/dist/tools/handlers/asset-handlers.js.map +1 -0
  152. package/dist/tools/handlers/audio-handlers.d.ts +2 -1
  153. package/dist/tools/handlers/audio-handlers.d.ts.map +1 -0
  154. package/dist/tools/handlers/audio-handlers.js +82 -80
  155. package/dist/tools/handlers/audio-handlers.js.map +1 -0
  156. package/dist/tools/handlers/blueprint-handlers.d.ts +3 -5
  157. package/dist/tools/handlers/blueprint-handlers.d.ts.map +1 -0
  158. package/dist/tools/handlers/blueprint-handlers.js +150 -142
  159. package/dist/tools/handlers/blueprint-handlers.js.map +1 -0
  160. package/dist/tools/handlers/common-handlers.d.ts +2 -3
  161. package/dist/tools/handlers/common-handlers.d.ts.map +1 -0
  162. package/dist/tools/handlers/common-handlers.js.map +1 -0
  163. package/dist/tools/handlers/editor-handlers.d.ts.map +1 -0
  164. package/dist/tools/handlers/editor-handlers.js +12 -2
  165. package/dist/tools/handlers/editor-handlers.js.map +1 -0
  166. package/dist/tools/handlers/effect-handlers.d.ts +2 -1
  167. package/dist/tools/handlers/effect-handlers.d.ts.map +1 -0
  168. package/dist/tools/handlers/effect-handlers.js +70 -68
  169. package/dist/tools/handlers/effect-handlers.js.map +1 -0
  170. package/dist/tools/handlers/environment-handlers.d.ts +2 -1
  171. package/dist/tools/handlers/environment-handlers.d.ts.map +1 -0
  172. package/dist/tools/handlers/environment-handlers.js +86 -74
  173. package/dist/tools/handlers/environment-handlers.js.map +1 -0
  174. package/dist/tools/handlers/graph-handlers.d.ts +1 -1
  175. package/dist/tools/handlers/graph-handlers.d.ts.map +1 -0
  176. package/dist/tools/handlers/graph-handlers.js +63 -2
  177. package/dist/tools/handlers/graph-handlers.js.map +1 -0
  178. package/dist/tools/handlers/input-handlers.d.ts +2 -5
  179. package/dist/tools/handlers/input-handlers.d.ts.map +1 -0
  180. package/dist/tools/handlers/input-handlers.js +5 -4
  181. package/dist/tools/handlers/input-handlers.js.map +1 -0
  182. package/dist/tools/handlers/inspect-handlers.d.ts +2 -1
  183. package/dist/tools/handlers/inspect-handlers.d.ts.map +1 -0
  184. package/dist/tools/handlers/inspect-handlers.js +61 -37
  185. package/dist/tools/handlers/inspect-handlers.js.map +1 -0
  186. package/dist/tools/handlers/level-handlers.d.ts +2 -2
  187. package/dist/tools/handlers/level-handlers.d.ts.map +1 -0
  188. package/dist/tools/handlers/level-handlers.js +43 -39
  189. package/dist/tools/handlers/level-handlers.js.map +1 -0
  190. package/dist/tools/handlers/lighting-handlers.d.ts +12 -1
  191. package/dist/tools/handlers/lighting-handlers.d.ts.map +1 -0
  192. package/dist/tools/handlers/lighting-handlers.js +90 -47
  193. package/dist/tools/handlers/lighting-handlers.js.map +1 -0
  194. package/dist/tools/handlers/performance-handlers.d.ts +2 -1
  195. package/dist/tools/handlers/performance-handlers.d.ts.map +1 -0
  196. package/dist/tools/handlers/performance-handlers.js +55 -40
  197. package/dist/tools/handlers/performance-handlers.js.map +1 -0
  198. package/dist/tools/handlers/pipeline-handlers.d.ts.map +1 -0
  199. package/dist/tools/handlers/pipeline-handlers.js.map +1 -0
  200. package/dist/tools/handlers/sequence-handlers.d.ts.map +1 -0
  201. package/dist/tools/handlers/sequence-handlers.js.map +1 -0
  202. package/dist/tools/handlers/system-handlers.d.ts +3 -2
  203. package/dist/tools/handlers/system-handlers.d.ts.map +1 -0
  204. package/dist/tools/handlers/system-handlers.js +105 -52
  205. package/dist/tools/handlers/system-handlers.js.map +1 -0
  206. package/dist/tools/input.d.ts.map +1 -0
  207. package/dist/tools/input.js +3 -1
  208. package/dist/tools/input.js.map +1 -0
  209. package/dist/tools/introspection.d.ts +14 -14
  210. package/dist/tools/introspection.d.ts.map +1 -0
  211. package/dist/tools/introspection.js +54 -45
  212. package/dist/tools/introspection.js.map +1 -0
  213. package/dist/tools/landscape.d.ts.map +1 -0
  214. package/dist/tools/landscape.js +15 -13
  215. package/dist/tools/landscape.js.map +1 -0
  216. package/dist/tools/level.d.ts.map +1 -0
  217. package/dist/tools/level.js +3 -2
  218. package/dist/tools/level.js.map +1 -0
  219. package/dist/tools/lighting.d.ts +32 -59
  220. package/dist/tools/lighting.d.ts.map +1 -0
  221. package/dist/tools/lighting.js +56 -19
  222. package/dist/tools/lighting.js.map +1 -0
  223. package/dist/tools/logs.d.ts.map +1 -0
  224. package/dist/tools/logs.js +2 -1
  225. package/dist/tools/logs.js.map +1 -0
  226. package/dist/tools/materials.d.ts +42 -14
  227. package/dist/tools/materials.d.ts.map +1 -0
  228. package/dist/tools/materials.js +15 -9
  229. package/dist/tools/materials.js.map +1 -0
  230. package/dist/tools/niagara.d.ts +63 -39
  231. package/dist/tools/niagara.d.ts.map +1 -0
  232. package/dist/tools/niagara.js +43 -33
  233. package/dist/tools/niagara.js.map +1 -0
  234. package/dist/tools/performance.d.ts +12 -11
  235. package/dist/tools/performance.d.ts.map +1 -0
  236. package/dist/tools/performance.js +3 -2
  237. package/dist/tools/performance.js.map +1 -0
  238. package/dist/tools/physics.d.ts +37 -20
  239. package/dist/tools/physics.d.ts.map +1 -0
  240. package/dist/tools/physics.js +37 -30
  241. package/dist/tools/physics.js.map +1 -0
  242. package/dist/tools/property-dictionary.d.ts.map +1 -0
  243. package/dist/tools/property-dictionary.js.map +1 -0
  244. package/dist/tools/sequence.d.ts +1 -1
  245. package/dist/tools/sequence.d.ts.map +1 -0
  246. package/dist/tools/sequence.js +8 -4
  247. package/dist/tools/sequence.js.map +1 -0
  248. package/dist/tools/tool-definition-utils.d.ts.map +1 -0
  249. package/dist/tools/tool-definition-utils.js.map +1 -0
  250. package/dist/tools/ui.d.ts +11 -11
  251. package/dist/tools/ui.d.ts.map +1 -0
  252. package/dist/tools/ui.js +7 -3
  253. package/dist/tools/ui.js.map +1 -0
  254. package/dist/types/automation-responses.d.ts.map +1 -0
  255. package/dist/types/automation-responses.js.map +1 -0
  256. package/dist/types/env.d.ts.map +1 -0
  257. package/dist/types/env.js.map +1 -0
  258. package/dist/types/handler-types.d.ts +112 -3
  259. package/dist/types/handler-types.d.ts.map +1 -0
  260. package/dist/types/handler-types.js.map +1 -0
  261. package/dist/types/tool-interfaces.d.ts +39 -21
  262. package/dist/types/tool-interfaces.d.ts.map +1 -0
  263. package/dist/types/tool-interfaces.js.map +1 -0
  264. package/dist/types/tool-types.d.ts +8 -8
  265. package/dist/types/tool-types.d.ts.map +1 -0
  266. package/dist/types/tool-types.js.map +1 -0
  267. package/dist/unreal-bridge.d.ts +8 -6
  268. package/dist/unreal-bridge.d.ts.map +1 -0
  269. package/dist/unreal-bridge.js +16 -3
  270. package/dist/unreal-bridge.js.map +1 -0
  271. package/dist/utils/command-validator.d.ts.map +1 -0
  272. package/dist/utils/command-validator.js.map +1 -0
  273. package/dist/utils/elicitation.d.ts +2 -5
  274. package/dist/utils/elicitation.d.ts.map +1 -0
  275. package/dist/utils/elicitation.js +3 -2
  276. package/dist/utils/elicitation.js.map +1 -0
  277. package/dist/utils/error-handler.d.ts.map +1 -0
  278. package/dist/utils/error-handler.js.map +1 -0
  279. package/dist/utils/ini-reader.d.ts +1 -1
  280. package/dist/utils/ini-reader.d.ts.map +1 -0
  281. package/dist/utils/ini-reader.js.map +1 -0
  282. package/dist/utils/logger.d.ts +4 -4
  283. package/dist/utils/logger.d.ts.map +1 -0
  284. package/dist/utils/logger.js.map +1 -0
  285. package/dist/utils/normalize.d.ts +2 -2
  286. package/dist/utils/normalize.d.ts.map +1 -0
  287. package/dist/utils/normalize.js +4 -3
  288. package/dist/utils/normalize.js.map +1 -0
  289. package/dist/utils/path-security.d.ts.map +1 -0
  290. package/dist/utils/path-security.js.map +1 -0
  291. package/dist/utils/response-factory.d.ts +2 -2
  292. package/dist/utils/response-factory.d.ts.map +1 -0
  293. package/dist/utils/response-factory.js +3 -1
  294. package/dist/utils/response-factory.js.map +1 -0
  295. package/dist/utils/response-validator.d.ts +4 -4
  296. package/dist/utils/response-validator.d.ts.map +1 -0
  297. package/dist/utils/response-validator.js +31 -23
  298. package/dist/utils/response-validator.js.map +1 -0
  299. package/dist/utils/result-helpers.d.ts.map +1 -0
  300. package/dist/utils/result-helpers.js.map +1 -0
  301. package/dist/utils/safe-json.d.ts.map +1 -0
  302. package/dist/utils/safe-json.js.map +1 -0
  303. package/dist/utils/unreal-command-queue.d.ts +2 -2
  304. package/dist/utils/unreal-command-queue.d.ts.map +1 -0
  305. package/dist/utils/unreal-command-queue.js +4 -3
  306. package/dist/utils/unreal-command-queue.js.map +1 -0
  307. package/dist/utils/validation.d.ts +1 -1
  308. package/dist/utils/validation.d.ts.map +1 -0
  309. package/dist/utils/validation.js.map +1 -0
  310. package/dist/wasm/index.d.ts +2 -2
  311. package/dist/wasm/index.d.ts.map +1 -0
  312. package/dist/wasm/index.js +11 -7
  313. package/dist/wasm/index.js.map +1 -0
  314. package/package.json +12 -34
  315. package/server.json +2 -2
  316. package/.dockerignore +0 -57
  317. package/.env.example +0 -26
  318. package/.env.production +0 -61
  319. package/.eslintrc.json +0 -0
  320. package/.eslintrc.override.json +0 -8
  321. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -94
  322. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  323. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -56
  324. package/.github/copilot-instructions.md +0 -478
  325. package/.github/dependabot.yml +0 -19
  326. package/.github/labeler.yml +0 -24
  327. package/.github/labels.yml +0 -70
  328. package/.github/pull_request_template.md +0 -42
  329. package/.github/release-drafter-config.yml +0 -51
  330. package/.github/workflows/auto-merge.yml +0 -38
  331. package/.github/workflows/ci.yml +0 -38
  332. package/.github/workflows/dependency-review.yml +0 -17
  333. package/.github/workflows/gemini-issue-triage.yml +0 -172
  334. package/.github/workflows/greetings.yml +0 -27
  335. package/.github/workflows/labeler.yml +0 -17
  336. package/.github/workflows/links.yml +0 -80
  337. package/.github/workflows/pr-size-labeler.yml +0 -137
  338. package/.github/workflows/publish-mcp.yml +0 -79
  339. package/.github/workflows/release-drafter.yml +0 -24
  340. package/.github/workflows/release.yml +0 -112
  341. package/.github/workflows/semantic-pull-request.yml +0 -35
  342. package/.github/workflows/smoke-test.yml +0 -36
  343. package/.github/workflows/stale.yml +0 -28
  344. package/CONTRIBUTING.md +0 -140
  345. package/Dockerfile +0 -37
  346. package/GEMINI.md +0 -115
  347. package/Public/Plugin_setup_guide.mp4 +0 -0
  348. package/Public/icon.png +0 -0
  349. package/claude_desktop_config_example.json +0 -15
  350. package/dist/types/responses.d.ts +0 -249
  351. package/dist/types/responses.js +0 -2
  352. package/docs/GraphQL-API.md +0 -888
  353. package/docs/Migration-Guide-v0.5.0.md +0 -684
  354. package/docs/Roadmap.md +0 -53
  355. package/docs/WebAssembly-Integration.md +0 -628
  356. package/docs/editor-plugin-extension.md +0 -370
  357. package/docs/handler-mapping.md +0 -249
  358. package/docs/native-automation-progress.md +0 -128
  359. package/docs/testing-guide.md +0 -423
  360. package/eslint.config.mjs +0 -68
  361. package/mcp-config-example.json +0 -14
  362. package/plugins/McpAutomationBridge/Config/FilterPlugin.ini +0 -8
  363. package/plugins/McpAutomationBridge/McpAutomationBridge.uplugin +0 -64
  364. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/McpAutomationBridge.Build.cs +0 -189
  365. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.cpp +0 -22
  366. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.h +0 -30
  367. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeHelpers.h +0 -1983
  368. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeModule.cpp +0 -72
  369. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSettings.cpp +0 -46
  370. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSubsystem.cpp +0 -846
  371. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AnimationHandlers.cpp +0 -2393
  372. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetQueryHandlers.cpp +0 -300
  373. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetWorkflowHandlers.cpp +0 -2807
  374. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AudioHandlers.cpp +0 -1087
  375. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BehaviorTreeHandlers.cpp +0 -488
  376. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.cpp +0 -643
  377. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.h +0 -31
  378. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintGraphHandlers.cpp +0 -1094
  379. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers.cpp +0 -5750
  380. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers_List.cpp +0 -152
  381. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ControlHandlers.cpp +0 -2614
  382. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_DebugHandlers.cpp +0 -42
  383. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EditorFunctionHandlers.cpp +0 -1237
  384. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EffectHandlers.cpp +0 -1725
  385. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EnvironmentHandlers.cpp +0 -2265
  386. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_FoliageHandlers.cpp +0 -954
  387. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InputHandlers.cpp +0 -209
  388. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InsightsHandlers.cpp +0 -41
  389. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LandscapeHandlers.cpp +0 -1164
  390. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LevelHandlers.cpp +0 -762
  391. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LightingHandlers.cpp +0 -663
  392. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LogHandlers.cpp +0 -136
  393. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_MaterialGraphHandlers.cpp +0 -494
  394. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraGraphHandlers.cpp +0 -278
  395. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraHandlers.cpp +0 -625
  396. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PerformanceHandlers.cpp +0 -401
  397. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PipelineHandlers.cpp +0 -67
  398. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ProcessRequest.cpp +0 -472
  399. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PropertyHandlers.cpp +0 -2634
  400. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_RenderHandlers.cpp +0 -189
  401. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.cpp +0 -917
  402. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.h +0 -39
  403. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequenceHandlers.cpp +0 -2706
  404. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequencerHandlers.cpp +0 -519
  405. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_TestHandlers.cpp +0 -38
  406. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_UiHandlers.cpp +0 -668
  407. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_WorldPartitionHandlers.cpp +0 -346
  408. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.cpp +0 -1345
  409. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.h +0 -149
  410. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpConnectionManager.cpp +0 -782
  411. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSettings.h +0 -115
  412. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSubsystem.h +0 -796
  413. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpConnectionManager.h +0 -117
  414. package/scripts/check-unreal-connection.mjs +0 -19
  415. package/scripts/clean-tmp.js +0 -23
  416. package/scripts/patch-wasm.js +0 -26
  417. package/scripts/run-all-tests.mjs +0 -136
  418. package/scripts/smoke-test.ts +0 -94
  419. package/scripts/sync-mcp-plugin.js +0 -143
  420. package/scripts/test-no-plugin-alternates.mjs +0 -113
  421. package/scripts/validate-server.js +0 -46
  422. package/scripts/verify-automation-bridge.js +0 -200
  423. package/src/automation/bridge.ts +0 -630
  424. package/src/automation/connection-manager.ts +0 -148
  425. package/src/automation/handshake.ts +0 -99
  426. package/src/automation/index.ts +0 -2
  427. package/src/automation/message-handler.ts +0 -192
  428. package/src/automation/request-tracker.ts +0 -155
  429. package/src/automation/types.ts +0 -108
  430. package/src/cli.ts +0 -34
  431. package/src/config/class-aliases.ts +0 -65
  432. package/src/config.ts +0 -73
  433. package/src/constants.ts +0 -29
  434. package/src/graphql/loaders.ts +0 -244
  435. package/src/graphql/resolvers.ts +0 -1008
  436. package/src/graphql/schema.ts +0 -452
  437. package/src/graphql/server.ts +0 -156
  438. package/src/graphql/types.ts +0 -10
  439. package/src/handlers/resource-handlers.ts +0 -186
  440. package/src/index.ts +0 -243
  441. package/src/resources/actors.ts +0 -127
  442. package/src/resources/assets.ts +0 -286
  443. package/src/resources/levels.ts +0 -68
  444. package/src/server/resource-registry.ts +0 -47
  445. package/src/server/tool-registry.ts +0 -354
  446. package/src/server-setup.ts +0 -114
  447. package/src/services/health-monitor.ts +0 -132
  448. package/src/services/metrics-server.ts +0 -176
  449. package/src/tools/actors.ts +0 -564
  450. package/src/tools/animation.ts +0 -941
  451. package/src/tools/assets.ts +0 -394
  452. package/src/tools/audio.ts +0 -499
  453. package/src/tools/base-tool.ts +0 -52
  454. package/src/tools/behavior-tree.ts +0 -45
  455. package/src/tools/blueprint.ts +0 -940
  456. package/src/tools/consolidated-tool-definitions.ts +0 -1256
  457. package/src/tools/consolidated-tool-handlers.ts +0 -302
  458. package/src/tools/debug.ts +0 -622
  459. package/src/tools/dynamic-handler-registry.ts +0 -33
  460. package/src/tools/editor.ts +0 -435
  461. package/src/tools/engine.ts +0 -43
  462. package/src/tools/environment.ts +0 -281
  463. package/src/tools/foliage.ts +0 -596
  464. package/src/tools/handlers/actor-handlers.ts +0 -244
  465. package/src/tools/handlers/animation-handlers.ts +0 -237
  466. package/src/tools/handlers/argument-helper.ts +0 -142
  467. package/src/tools/handlers/asset-handlers.ts +0 -550
  468. package/src/tools/handlers/audio-handlers.ts +0 -194
  469. package/src/tools/handlers/blueprint-handlers.ts +0 -380
  470. package/src/tools/handlers/common-handlers.ts +0 -108
  471. package/src/tools/handlers/editor-handlers.ts +0 -124
  472. package/src/tools/handlers/effect-handlers.ts +0 -224
  473. package/src/tools/handlers/environment-handlers.ts +0 -183
  474. package/src/tools/handlers/graph-handlers.ts +0 -117
  475. package/src/tools/handlers/input-handlers.ts +0 -28
  476. package/src/tools/handlers/inspect-handlers.ts +0 -450
  477. package/src/tools/handlers/level-handlers.ts +0 -253
  478. package/src/tools/handlers/lighting-handlers.ts +0 -151
  479. package/src/tools/handlers/performance-handlers.ts +0 -132
  480. package/src/tools/handlers/pipeline-handlers.ts +0 -194
  481. package/src/tools/handlers/sequence-handlers.ts +0 -438
  482. package/src/tools/handlers/system-handlers.ts +0 -564
  483. package/src/tools/input.ts +0 -160
  484. package/src/tools/introspection.ts +0 -689
  485. package/src/tools/landscape.ts +0 -649
  486. package/src/tools/level.ts +0 -989
  487. package/src/tools/lighting.ts +0 -1052
  488. package/src/tools/logs.ts +0 -219
  489. package/src/tools/materials.ts +0 -295
  490. package/src/tools/niagara.ts +0 -485
  491. package/src/tools/performance.ts +0 -661
  492. package/src/tools/physics.ts +0 -679
  493. package/src/tools/property-dictionary.ts +0 -98
  494. package/src/tools/sequence.ts +0 -385
  495. package/src/tools/tool-definition-utils.ts +0 -35
  496. package/src/tools/ui.ts +0 -452
  497. package/src/types/automation-responses.ts +0 -119
  498. package/src/types/env.ts +0 -17
  499. package/src/types/handler-types.ts +0 -442
  500. package/src/types/responses.ts +0 -355
  501. package/src/types/tool-interfaces.ts +0 -250
  502. package/src/types/tool-types.ts +0 -575
  503. package/src/unreal-bridge.ts +0 -693
  504. package/src/utils/command-validator.ts +0 -139
  505. package/src/utils/elicitation.ts +0 -132
  506. package/src/utils/error-handler.ts +0 -287
  507. package/src/utils/ini-reader.ts +0 -86
  508. package/src/utils/logger.ts +0 -35
  509. package/src/utils/normalize.test.ts +0 -162
  510. package/src/utils/normalize.ts +0 -146
  511. package/src/utils/path-security.ts +0 -43
  512. package/src/utils/response-factory.ts +0 -44
  513. package/src/utils/response-validator.ts +0 -395
  514. package/src/utils/result-helpers.ts +0 -195
  515. package/src/utils/safe-json.test.ts +0 -90
  516. package/src/utils/safe-json.ts +0 -70
  517. package/src/utils/unreal-command-queue.ts +0 -166
  518. package/src/utils/validation.test.ts +0 -184
  519. package/src/utils/validation.ts +0 -312
  520. package/src/wasm/index.ts +0 -838
  521. package/test-server.mjs +0 -100
  522. package/tests/test-animation.mjs +0 -369
  523. package/tests/test-asset-advanced.mjs +0 -82
  524. package/tests/test-asset-graph.mjs +0 -311
  525. package/tests/test-audio.mjs +0 -417
  526. package/tests/test-automation-timeouts.mjs +0 -98
  527. package/tests/test-behavior-tree.mjs +0 -444
  528. package/tests/test-blueprint-graph.mjs +0 -410
  529. package/tests/test-blueprint.mjs +0 -577
  530. package/tests/test-client-mode.mjs +0 -86
  531. package/tests/test-console-command.mjs +0 -56
  532. package/tests/test-control-actor.mjs +0 -425
  533. package/tests/test-control-editor.mjs +0 -112
  534. package/tests/test-graphql.mjs +0 -372
  535. package/tests/test-input.mjs +0 -349
  536. package/tests/test-inspect.mjs +0 -302
  537. package/tests/test-landscape.mjs +0 -316
  538. package/tests/test-lighting.mjs +0 -428
  539. package/tests/test-manage-asset.mjs +0 -438
  540. package/tests/test-manage-level.mjs +0 -89
  541. package/tests/test-materials.mjs +0 -356
  542. package/tests/test-niagara.mjs +0 -185
  543. package/tests/test-no-inline-python.mjs +0 -122
  544. package/tests/test-performance.mjs +0 -539
  545. package/tests/test-plugin-handshake.mjs +0 -82
  546. package/tests/test-runner.mjs +0 -993
  547. package/tests/test-sequence.mjs +0 -104
  548. package/tests/test-system.mjs +0 -96
  549. package/tests/test-wasm.mjs +0 -283
  550. package/tests/test-world-partition.mjs +0 -215
  551. package/tsconfig.json +0 -56
  552. package/vitest.config.ts +0 -35
  553. package/wasm/Cargo.lock +0 -363
  554. package/wasm/Cargo.toml +0 -42
  555. package/wasm/LICENSE +0 -21
  556. package/wasm/README.md +0 -253
  557. package/wasm/src/dependency_resolver.rs +0 -377
  558. package/wasm/src/lib.rs +0 -153
  559. package/wasm/src/property_parser.rs +0 -271
  560. package/wasm/src/transform_math.rs +0 -396
  561. package/wasm/tests/integration.rs +0 -109
@@ -14,77 +14,78 @@ function isNonEmptyString(val) {
14
14
  return typeof val === 'string' && val.trim().length > 0;
15
15
  }
16
16
  export async function handleEffectTools(action, args, tools) {
17
- if (!args || typeof args !== 'object') {
18
- args = {};
17
+ const argsTyped = args;
18
+ const mutableArgs = { ...args };
19
+ if (!mutableArgs || typeof mutableArgs !== 'object') {
19
20
  }
20
- ensureActionAndSubAction(action, args);
21
+ ensureActionAndSubAction(action, mutableArgs);
21
22
  if (action === 'create_niagara_system') {
22
23
  const res = await tools.niagaraTools.createSystem({
23
- name: args.name,
24
- savePath: args.savePath,
25
- template: args.template
24
+ name: argsTyped.name,
25
+ savePath: mutableArgs.savePath,
26
+ template: mutableArgs.template
26
27
  });
27
28
  return cleanObject(res);
28
29
  }
29
30
  if (action === 'create_niagara_emitter') {
30
31
  const res = await tools.niagaraTools.createEmitter({
31
- name: args.name,
32
- savePath: args.savePath,
33
- systemPath: args.systemPath,
34
- template: args.template
32
+ name: argsTyped.name,
33
+ savePath: mutableArgs.savePath,
34
+ systemPath: argsTyped.systemPath,
35
+ template: mutableArgs.template
35
36
  });
36
37
  return cleanObject(res);
37
38
  }
38
- if (args.action === 'particle') {
39
+ if (mutableArgs.action === 'particle') {
39
40
  const presets = {
40
41
  'Default': '/StarterContent/Particles/P_Steam_Lit.P_Steam_Lit',
41
42
  'Smoke': '/StarterContent/Particles/P_Smoke.P_Smoke',
42
43
  'Fire': '/StarterContent/Particles/P_Fire.P_Fire',
43
44
  'Explosion': '/StarterContent/Particles/P_Explosion.P_Explosion',
44
45
  };
45
- const key = args.preset || args.effectType;
46
+ const key = (argsTyped.preset || argsTyped.type);
46
47
  if (key && presets[key]) {
47
- args.preset = presets[key];
48
+ mutableArgs.preset = presets[key];
48
49
  }
49
50
  }
50
- if (action === 'debug_shape' || args.action === 'debug_shape') {
51
- if (args.shape && !args.shapeType) {
52
- args.shapeType = args.shape;
51
+ if (action === 'debug_shape' || mutableArgs.action === 'debug_shape') {
52
+ if (argsTyped.shape && !mutableArgs.shapeType) {
53
+ mutableArgs.shapeType = argsTyped.shape;
53
54
  }
54
- requireNonEmptyString(args.shapeType, 'shapeType', 'Missing required parameter: shapeType');
55
- args.action = 'debug_shape';
56
- args.subAction = 'debug_shape';
57
- return cleanObject(await executeAutomationRequest(tools, 'create_effect', args));
55
+ requireNonEmptyString(mutableArgs.shapeType, 'shapeType', 'Missing required parameter: shapeType');
56
+ mutableArgs.action = 'debug_shape';
57
+ mutableArgs.subAction = 'debug_shape';
58
+ return cleanObject(await executeAutomationRequest(tools, 'create_effect', mutableArgs));
58
59
  }
59
- const subAction = String(args.subAction || '').trim();
60
+ const subAction = String(mutableArgs.subAction || '').trim();
60
61
  if (subAction === 'niagara' || subAction === 'spawn_niagara') {
61
- requireNonEmptyString(args.systemPath, 'systemPath', 'Missing required parameter: systemPath');
62
+ requireNonEmptyString(argsTyped.systemPath, 'systemPath', 'Missing required parameter: systemPath');
62
63
  }
63
64
  if (subAction === 'activate_niagara' || subAction === 'deactivate_niagara' || subAction === 'advance_simulation') {
64
- const systemName = args.systemName ?? args.actorName;
65
+ const systemName = mutableArgs.systemName ?? mutableArgs.actorName;
65
66
  requireNonEmptyString(systemName, 'systemName', 'Missing required parameter: systemName (or actorName)');
66
- args.systemName = systemName;
67
+ mutableArgs.systemName = systemName;
67
68
  }
68
69
  if (subAction === 'set_niagara_parameter') {
69
- const systemName = args.systemName ?? args.actorName;
70
+ const systemName = mutableArgs.systemName ?? mutableArgs.actorName;
70
71
  requireNonEmptyString(systemName, 'systemName', 'Missing required parameter: systemName (or actorName)');
71
- requireNonEmptyString(args.parameterName, 'parameterName', 'Missing required parameter: parameterName');
72
- if (!isNonEmptyString(args.parameterType) && isNonEmptyString(args.type)) {
73
- args.parameterType = args.type.charAt(0).toUpperCase() + args.type.slice(1);
72
+ requireNonEmptyString(argsTyped.parameterName, 'parameterName', 'Missing required parameter: parameterName');
73
+ if (!isNonEmptyString(argsTyped.parameterType) && isNonEmptyString(argsTyped.type)) {
74
+ mutableArgs.parameterType = argsTyped.type.charAt(0).toUpperCase() + argsTyped.type.slice(1);
74
75
  }
75
- requireNonEmptyString(args.parameterType, 'parameterType', 'Missing required parameter: parameterType');
76
- args.systemName = systemName;
76
+ requireNonEmptyString(mutableArgs.parameterType, 'parameterType', 'Missing required parameter: parameterType');
77
+ mutableArgs.systemName = systemName;
77
78
  }
78
79
  if (action === 'clear_debug_shapes') {
79
- return executeAutomationRequest(tools, action, args);
80
+ return executeAutomationRequest(tools, action, mutableArgs);
80
81
  }
81
82
  if (action === 'list_debug_shapes') {
82
- return executeAutomationRequest(tools, 'list_debug_shapes', args);
83
+ return executeAutomationRequest(tools, 'list_debug_shapes', mutableArgs);
83
84
  }
84
85
  if (action === 'cleanup') {
85
- args.action = 'cleanup';
86
- args.subAction = 'cleanup';
87
- return executeAutomationRequest(tools, 'create_effect', args);
86
+ mutableArgs.action = 'cleanup';
87
+ mutableArgs.subAction = 'cleanup';
88
+ return executeAutomationRequest(tools, 'create_effect', mutableArgs);
88
89
  }
89
90
  const createActions = [
90
91
  'create_volumetric_fog',
@@ -94,49 +95,50 @@ export async function handleEffectTools(action, args, tools) {
94
95
  'create_niagara_ribbon'
95
96
  ];
96
97
  if (createActions.includes(action)) {
97
- args.action = action;
98
- return executeAutomationRequest(tools, 'create_effect', args);
98
+ mutableArgs.action = action;
99
+ return executeAutomationRequest(tools, 'create_effect', mutableArgs);
99
100
  }
100
101
  if (action === 'activate' || action === 'activate_effect') {
101
- args.action = 'activate_niagara';
102
- args.systemName = args.actorName || args.systemName;
103
- requireNonEmptyString(args.systemName, 'systemName', 'Missing required parameter: systemName (or actorName)');
104
- args.reset = true;
105
- return executeAutomationRequest(tools, 'create_effect', args);
102
+ mutableArgs.action = 'activate_niagara';
103
+ mutableArgs.systemName = mutableArgs.actorName || mutableArgs.systemName;
104
+ requireNonEmptyString(mutableArgs.systemName, 'systemName', 'Missing required parameter: systemName (or actorName)');
105
+ mutableArgs.reset = true;
106
+ return executeAutomationRequest(tools, 'create_effect', mutableArgs);
106
107
  }
107
108
  if (action === 'deactivate') {
108
- args.action = 'deactivate_niagara';
109
- args.systemName = args.actorName || args.systemName;
110
- requireNonEmptyString(args.systemName, 'systemName', 'Missing required parameter: systemName (or actorName)');
111
- return executeAutomationRequest(tools, 'create_effect', args);
109
+ mutableArgs.action = 'deactivate_niagara';
110
+ mutableArgs.systemName = mutableArgs.actorName || mutableArgs.systemName;
111
+ requireNonEmptyString(mutableArgs.systemName, 'systemName', 'Missing required parameter: systemName (or actorName)');
112
+ return executeAutomationRequest(tools, 'create_effect', mutableArgs);
112
113
  }
113
114
  if (action === 'reset') {
114
- args.action = 'activate_niagara';
115
- args.systemName = args.actorName || args.systemName;
116
- requireNonEmptyString(args.systemName, 'systemName', 'Missing required parameter: systemName (or actorName)');
117
- args.reset = true;
118
- return executeAutomationRequest(tools, 'create_effect', args);
115
+ mutableArgs.action = 'activate_niagara';
116
+ mutableArgs.systemName = mutableArgs.actorName || mutableArgs.systemName;
117
+ requireNonEmptyString(mutableArgs.systemName, 'systemName', 'Missing required parameter: systemName (or actorName)');
118
+ mutableArgs.reset = true;
119
+ return executeAutomationRequest(tools, 'create_effect', mutableArgs);
119
120
  }
120
121
  if (action === 'advance_simulation') {
121
- args.action = 'advance_simulation';
122
- args.systemName = args.actorName || args.systemName;
123
- requireNonEmptyString(args.systemName, 'systemName', 'Missing required parameter: systemName (or actorName)');
124
- return executeAutomationRequest(tools, 'create_effect', args);
122
+ mutableArgs.action = 'advance_simulation';
123
+ mutableArgs.systemName = mutableArgs.actorName || mutableArgs.systemName;
124
+ requireNonEmptyString(mutableArgs.systemName, 'systemName', 'Missing required parameter: systemName (or actorName)');
125
+ return executeAutomationRequest(tools, 'create_effect', mutableArgs);
125
126
  }
126
127
  if (action === 'set_niagara_parameter') {
127
- args.action = 'set_niagara_parameter';
128
- if (args.actorName && !args.systemName) {
129
- args.systemName = args.actorName;
128
+ mutableArgs.action = 'set_niagara_parameter';
129
+ if (mutableArgs.actorName && !mutableArgs.systemName) {
130
+ mutableArgs.systemName = mutableArgs.actorName;
130
131
  }
131
- if (args.type && !args.parameterType) {
132
- args.parameterType = args.type.charAt(0).toUpperCase() + args.type.slice(1);
132
+ const typeVal = mutableArgs.type;
133
+ if (typeVal && !mutableArgs.parameterType) {
134
+ mutableArgs.parameterType = typeVal.charAt(0).toUpperCase() + typeVal.slice(1);
133
135
  }
134
- requireNonEmptyString(args.systemName, 'systemName', 'Missing required parameter: systemName (or actorName)');
135
- requireNonEmptyString(args.parameterName, 'parameterName', 'Missing required parameter: parameterName');
136
- requireNonEmptyString(args.parameterType, 'parameterType', 'Missing required parameter: parameterType');
137
- return executeAutomationRequest(tools, 'create_effect', args);
136
+ requireNonEmptyString(mutableArgs.systemName, 'systemName', 'Missing required parameter: systemName (or actorName)');
137
+ requireNonEmptyString(mutableArgs.parameterName, 'parameterName', 'Missing required parameter: parameterName');
138
+ requireNonEmptyString(mutableArgs.parameterType, 'parameterType', 'Missing required parameter: parameterType');
139
+ return executeAutomationRequest(tools, 'create_effect', mutableArgs);
138
140
  }
139
- const res = await executeAutomationRequest(tools, 'create_effect', args, 'Automation bridge not available for effect creation operations');
141
+ const res = await executeAutomationRequest(tools, 'create_effect', mutableArgs, 'Automation bridge not available for effect creation operations');
140
142
  const result = res?.result ?? res ?? {};
141
143
  const topError = typeof res?.error === 'string' ? res.error : '';
142
144
  const nestedError = typeof result.error === 'string' ? result.error : '';
@@ -153,12 +155,12 @@ export async function handleEffectTools(action, args, tools) {
153
155
  success: false,
154
156
  error: 'SYSTEM_NOT_FOUND',
155
157
  message: message || 'Niagara system not found',
156
- systemPath: args.systemPath,
158
+ systemPath: argsTyped.systemPath,
157
159
  handled: true
158
160
  });
159
161
  }
160
- if (action === 'spawn_niagara' && errorCode === 'SYSTEM_NOT_FOUND' && args.systemPath) {
161
- const path = args.systemPath;
162
+ if (action === 'spawn_niagara' && errorCode === 'SYSTEM_NOT_FOUND' && argsTyped.systemPath) {
163
+ const path = argsTyped.systemPath;
162
164
  const name = path.split('/').pop();
163
165
  if (name && !path.endsWith(`.${name}`)) {
164
166
  return cleanObject({
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect-handlers.js","sourceRoot":"","sources":["../../../src/tools/handlers/effect-handlers.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import { ITools } from '../../types/tool-interfaces.js';
2
- export declare function handleEnvironmentTools(action: string, args: any, tools: ITools): Promise<any>;
2
+ import type { HandlerArgs } from '../../types/handler-types.js';
3
+ export declare function handleEnvironmentTools(action: string, args: HandlerArgs, tools: ITools): Promise<Record<string, unknown>>;
3
4
  //# sourceMappingURL=environment-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-handlers.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/environment-handlers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAA4B,MAAM,8BAA8B,CAAC;AAgB1F,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAwL/H"}
@@ -1,55 +1,62 @@
1
1
  import { cleanObject } from '../../utils/safe-json.js';
2
2
  import { executeAutomationRequest } from './common-handlers.js';
3
+ function vec3ToArray(v) {
4
+ if (!v)
5
+ return undefined;
6
+ return [v.x ?? 0, v.y ?? 0, v.z ?? 0];
7
+ }
3
8
  export async function handleEnvironmentTools(action, args, tools) {
9
+ const argsTyped = args;
10
+ const argsRecord = args;
4
11
  const envAction = String(action || '').toLowerCase();
5
12
  switch (envAction) {
6
13
  case 'create_landscape':
7
14
  return cleanObject(await tools.landscapeTools.createLandscape({
8
- name: args.name,
9
- location: args.location,
10
- sizeX: args.sizeX,
11
- sizeY: args.sizeY,
12
- quadsPerSection: args.quadsPerSection,
13
- sectionsPerComponent: args.sectionsPerComponent,
14
- componentCount: args.componentCount,
15
- materialPath: args.materialPath,
16
- enableWorldPartition: args.enableWorldPartition,
17
- runtimeGrid: args.runtimeGrid,
18
- isSpatiallyLoaded: args.isSpatiallyLoaded,
19
- dataLayers: args.dataLayers
15
+ name: argsTyped.name ?? '',
16
+ location: vec3ToArray(argsTyped.location),
17
+ sizeX: argsRecord.sizeX,
18
+ sizeY: argsRecord.sizeY,
19
+ quadsPerSection: argsRecord.quadsPerSection,
20
+ sectionsPerComponent: argsTyped.sectionsPerComponent,
21
+ componentCount: typeof argsTyped.componentCount === 'object' ? argsTyped.componentCount.x : undefined,
22
+ materialPath: argsTyped.materialPath,
23
+ enableWorldPartition: argsRecord.enableWorldPartition,
24
+ runtimeGrid: argsRecord.runtimeGrid,
25
+ isSpatiallyLoaded: argsRecord.isSpatiallyLoaded,
26
+ dataLayers: argsRecord.dataLayers
20
27
  }));
21
28
  case 'modify_heightmap':
22
29
  return cleanObject(await tools.landscapeTools.modifyHeightmap({
23
- landscapeName: args.landscapeName || args.name,
24
- heightData: args.heightData,
25
- minX: args.minX,
26
- minY: args.minY,
27
- maxX: args.maxX,
28
- maxY: args.maxY,
29
- updateNormals: args.updateNormals
30
+ landscapeName: argsTyped.landscapeName || argsTyped.name || '',
31
+ heightData: argsTyped.heightData ?? [],
32
+ minX: argsRecord.minX ?? 0,
33
+ minY: argsRecord.minY ?? 0,
34
+ maxX: argsRecord.maxX ?? 0,
35
+ maxY: argsRecord.maxY ?? 0,
36
+ updateNormals: argsRecord.updateNormals
30
37
  }));
31
38
  case 'sculpt':
32
39
  case 'sculpt_landscape': {
33
- const tool = args.tool || 'Raise';
40
+ const tool = argsRecord.tool || 'Raise';
34
41
  return cleanObject(await tools.landscapeTools.sculptLandscape({
35
- landscapeName: args.landscapeName || args.name,
42
+ landscapeName: argsTyped.landscapeName || argsTyped.name || '',
36
43
  tool,
37
- location: args.location,
38
- radius: args.radius || 500,
39
- strength: args.strength || 0.5
44
+ location: vec3ToArray(argsTyped.location),
45
+ radius: argsTyped.radius || 500,
46
+ strength: argsRecord.strength || 0.5
40
47
  }));
41
48
  }
42
49
  case 'add_foliage': {
43
- if (args.meshPath) {
44
- const defaultName = args.meshPath.split('/').pop()?.split('.')[0] + '_Foliage_Type';
50
+ if (argsTyped.meshPath) {
51
+ const defaultName = argsTyped.meshPath.split('/').pop()?.split('.')[0] + '_Foliage_Type';
45
52
  return cleanObject(await tools.foliageTools.addFoliageType({
46
- name: args.foliageType || args.name || defaultName,
47
- meshPath: args.meshPath,
48
- density: args.density
53
+ name: argsTyped.foliageType || argsTyped.name || defaultName || 'NewFoliageType',
54
+ meshPath: argsTyped.meshPath,
55
+ density: argsTyped.density
49
56
  }));
50
57
  }
51
58
  else {
52
- const foliageType = args.foliageType || args.foliageTypePath;
59
+ const foliageType = argsTyped.foliageType || argsTyped.foliageTypePath;
53
60
  if (!foliageType) {
54
61
  return cleanObject({
55
62
  success: false,
@@ -57,11 +64,11 @@ export async function handleEnvironmentTools(action, args, tools) {
57
64
  message: 'add_foliage requires either: (1) meshPath to create a new foliage type, or (2) foliageType/foliageTypePath to place instances of an existing type. Example foliage assets: /Game/StarterContent/Props/SM_Bush, /Engine/BasicShapes/Sphere'
58
65
  });
59
66
  }
60
- let locations = args.locations;
61
- if (!locations && args.location && args.radius) {
62
- const center = args.location;
63
- const radius = args.radius || 500;
64
- const count = args.density || args.count || 10;
67
+ let locations = argsTyped.locations;
68
+ if (!locations && argsTyped.location && argsTyped.radius) {
69
+ const center = argsTyped.location;
70
+ const radius = argsTyped.radius || 500;
71
+ const count = argsTyped.density || argsRecord.count || 10;
65
72
  locations = [];
66
73
  for (let i = 0; i < count; i++) {
67
74
  const angle = Math.random() * Math.PI * 2;
@@ -73,8 +80,8 @@ export async function handleEnvironmentTools(action, args, tools) {
73
80
  });
74
81
  }
75
82
  }
76
- else if (!locations && args.position) {
77
- locations = [args.position];
83
+ else if (!locations && argsRecord.position) {
84
+ locations = [argsRecord.position];
78
85
  }
79
86
  if (!locations || locations.length === 0) {
80
87
  return cleanObject({
@@ -89,82 +96,87 @@ export async function handleEnvironmentTools(action, args, tools) {
89
96
  }));
90
97
  }
91
98
  }
92
- case 'add_foliage_instances':
99
+ case 'add_foliage_instances': {
100
+ const locationsRaw = argsTyped.locations;
101
+ const transformsRaw = argsTyped.transforms ||
102
+ (locationsRaw ? locationsRaw.map((l) => ({ location: [l.x ?? 0, l.y ?? 0, l.z ?? 0] })) : []);
93
103
  return cleanObject(await tools.foliageTools.addFoliageInstances({
94
- foliageType: args.foliageType || args.foliageTypePath || args.meshPath,
95
- transforms: args.transforms || (args.locations ? args.locations.map((l) => ({ location: [l.x, l.y, l.z] })) : [])
104
+ foliageType: argsTyped.foliageType || argsTyped.foliageTypePath || argsTyped.meshPath || '',
105
+ transforms: transformsRaw
96
106
  }));
107
+ }
97
108
  case 'paint_foliage':
98
109
  return cleanObject(await tools.foliageTools.paintFoliage({
99
- foliageType: args.foliageType || args.foliageTypePath,
100
- position: args.position || args.location,
101
- brushSize: args.brushSize || args.radius,
102
- paintDensity: args.density || args.strength,
103
- eraseMode: args.eraseMode
110
+ foliageType: argsTyped.foliageType || argsTyped.foliageTypePath || '',
111
+ position: vec3ToArray(argsRecord.position) ?? vec3ToArray(argsTyped.location) ?? [0, 0, 0],
112
+ brushSize: argsRecord.brushSize || argsTyped.radius,
113
+ paintDensity: argsTyped.density || argsRecord.strength,
114
+ eraseMode: argsRecord.eraseMode
104
115
  }));
105
116
  case 'create_procedural_terrain':
106
117
  return cleanObject(await tools.landscapeTools.createProceduralTerrain({
107
- name: args.name,
108
- location: args.location,
109
- subdivisions: args.subdivisions,
110
- settings: args.settings
118
+ name: argsTyped.name || '',
119
+ location: vec3ToArray(argsTyped.location),
120
+ subdivisions: argsRecord.subdivisions,
121
+ settings: argsRecord.settings
111
122
  }));
112
123
  case 'create_procedural_foliage':
113
124
  return cleanObject(await tools.foliageTools.createProceduralFoliage({
114
- name: args.name,
115
- foliageTypes: args.foliageTypes,
116
- volumeName: args.volumeName,
117
- bounds: args.bounds,
118
- seed: args.seed,
119
- tileSize: args.tileSize
125
+ name: argsTyped.name || '',
126
+ foliageTypes: argsRecord.foliageTypes,
127
+ volumeName: argsRecord.volumeName,
128
+ bounds: argsTyped.bounds ? { location: argsTyped.bounds.min, size: argsTyped.bounds.max } : undefined,
129
+ seed: argsTyped.seed,
130
+ tileSize: argsRecord.tileSize
120
131
  }));
121
132
  case 'bake_lightmap':
122
133
  return cleanObject(await tools.lightingTools.buildLighting({
123
- quality: args.quality || 'Preview',
134
+ quality: argsRecord.quality || 'Preview',
124
135
  buildOnlySelected: false,
125
136
  buildReflectionCaptures: false
126
137
  }));
127
138
  case 'create_landscape_grass_type':
128
139
  return cleanObject(await tools.landscapeTools.createLandscapeGrassType({
129
- name: args.name,
130
- meshPath: args.meshPath || args.path || args.staticMesh,
131
- path: args.path,
132
- staticMesh: args.staticMesh
140
+ name: argsTyped.name || '',
141
+ meshPath: argsTyped.meshPath || argsRecord.path || argsRecord.staticMesh,
142
+ path: argsRecord.path,
143
+ staticMesh: argsRecord.staticMesh
133
144
  }));
134
145
  case 'export_snapshot':
135
146
  return cleanObject(await tools.environmentTools.exportSnapshot({
136
- path: args.path,
137
- filename: args.filename
147
+ path: argsRecord.path,
148
+ filename: argsRecord.filename
138
149
  }));
139
150
  case 'import_snapshot':
140
151
  return cleanObject(await tools.environmentTools.importSnapshot({
141
- path: args.path,
142
- filename: args.filename
152
+ path: argsRecord.path,
153
+ filename: argsRecord.filename
143
154
  }));
144
155
  case 'set_landscape_material':
145
156
  return cleanObject(await tools.landscapeTools.setLandscapeMaterial({
146
- landscapeName: args.landscapeName || args.name,
147
- materialPath: args.materialPath
157
+ landscapeName: argsTyped.landscapeName || argsTyped.name || '',
158
+ materialPath: argsTyped.materialPath ?? ''
148
159
  }));
149
160
  case 'generate_lods':
150
161
  return cleanObject(await executeAutomationRequest(tools, 'build_environment', {
151
162
  action: 'generate_lods',
152
- assetPaths: args.assetPaths || args.assets || (args.path ? [args.path] : []),
153
- numLODs: args.numLODs
163
+ assetPaths: argsRecord.assetPaths || argsRecord.assets || (argsRecord.path ? [argsRecord.path] : []),
164
+ numLODs: argsRecord.numLODs
154
165
  }, 'Bridge unavailable'));
155
166
  case 'delete': {
156
- const names = Array.isArray(args.names)
157
- ? args.names
158
- : (Array.isArray(args.actors) ? args.actors : []);
159
- if (args.name) {
160
- names.push(args.name);
167
+ const names = Array.isArray(argsRecord.names)
168
+ ? argsRecord.names
169
+ : (Array.isArray(argsRecord.actors) ? argsRecord.actors : []);
170
+ if (argsTyped.name) {
171
+ names.push(argsTyped.name);
161
172
  }
162
173
  const res = await tools.environmentTools.cleanup({ names });
163
174
  return cleanObject(res);
164
175
  }
165
- default:
176
+ default: {
166
177
  const res = await executeAutomationRequest(tools, 'build_environment', args, 'Automation bridge not available for environment building operations');
167
178
  return cleanObject(res);
179
+ }
168
180
  }
169
181
  }
170
182
  //# sourceMappingURL=environment-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment-handlers.js","sourceRoot":"","sources":["../../../src/tools/handlers/environment-handlers.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
1
  import { ITools } from '../../types/tool-interfaces.js';
2
2
  import type { GraphArgs } from '../../types/handler-types.js';
3
- export declare function handleGraphTools(toolName: string, action: string, args: GraphArgs, tools: ITools): Promise<any>;
3
+ export declare function handleGraphTools(toolName: string, action: string, args: GraphArgs, tools: ITools): Promise<Record<string, unknown>>;
4
4
  //# sourceMappingURL=graph-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-handlers.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/graph-handlers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,8BAA8B,CAAC;AA6E3E,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAoBzI"}
@@ -1,5 +1,54 @@
1
1
  import { cleanObject } from '../../utils/safe-json.js';
2
2
  import { executeAutomationRequest } from './common-handlers.js';
3
+ const BLUEPRINT_NODE_ALIASES = {
4
+ 'Branch': 'K2Node_IfThenElse',
5
+ 'IfThenElse': 'K2Node_IfThenElse',
6
+ 'Sequence': 'K2Node_ExecutionSequence',
7
+ 'ExecutionSequence': 'K2Node_ExecutionSequence',
8
+ 'ForEachLoop': 'K2Node_ForEachElementInEnum',
9
+ 'ForLoop': 'K2Node_ForLoop',
10
+ 'ForLoopWithBreak': 'K2Node_ForLoopWithBreak',
11
+ 'WhileLoop': 'K2Node_WhileLoop',
12
+ 'Switch': 'K2Node_SwitchInteger',
13
+ 'SwitchOnInt': 'K2Node_SwitchInteger',
14
+ 'SwitchOnString': 'K2Node_SwitchString',
15
+ 'SwitchOnName': 'K2Node_SwitchName',
16
+ 'SwitchOnEnum': 'K2Node_SwitchEnum',
17
+ 'Select': 'K2Node_Select',
18
+ 'DoOnce': 'K2Node_DoOnce',
19
+ 'DoN': 'K2Node_DoN',
20
+ 'FlipFlop': 'K2Node_FlipFlop',
21
+ 'Gate': 'K2Node_Gate',
22
+ 'MultiGate': 'K2Node_MultiGate',
23
+ 'Timeline': 'K2Node_Timeline',
24
+ 'SpawnActorFromClass': 'K2Node_SpawnActorFromClass',
25
+ 'GetAllActorsOfClass': 'K2Node_GetAllActorsOfClass'
26
+ };
27
+ const BT_NODE_ALIASES = {
28
+ 'Task': { class: 'BTTask_Wait', type: 'task' },
29
+ 'Wait': { class: 'BTTask_Wait', type: 'task' },
30
+ 'MoveTo': { class: 'BTTask_MoveTo', type: 'task' },
31
+ 'PlaySound': { class: 'BTTask_PlaySound', type: 'task' },
32
+ 'PlayAnimation': { class: 'BTTask_PlayAnimation', type: 'task' },
33
+ 'RunBehavior': { class: 'BTTask_RunBehavior', type: 'task' },
34
+ 'MakeNoise': { class: 'BTTask_MakeNoise', type: 'task' },
35
+ 'RotateToFaceBBEntry': { class: 'BTTask_RotateToFaceBBEntry', type: 'task' },
36
+ 'Decorator': { class: 'BTDecorator_Blackboard', type: 'decorator' },
37
+ 'Blackboard': { class: 'BTDecorator_Blackboard', type: 'decorator' },
38
+ 'CompareBBEntries': { class: 'BTDecorator_CompareBBEntries', type: 'decorator' },
39
+ 'Cooldown': { class: 'BTDecorator_Cooldown', type: 'decorator' },
40
+ 'DoesPathExist': { class: 'BTDecorator_DoesPathExist', type: 'decorator' },
41
+ 'ForceSuccess': { class: 'BTDecorator_ForceSuccess', type: 'decorator' },
42
+ 'KeepInCone': { class: 'BTDecorator_KeepInCone', type: 'decorator' },
43
+ 'Loop': { class: 'BTDecorator_Loop', type: 'decorator' },
44
+ 'TimeLimit': { class: 'BTDecorator_TimeLimit', type: 'decorator' },
45
+ 'Service': { class: 'BTService_DefaultFocus', type: 'service' },
46
+ 'DefaultFocus': { class: 'BTService_DefaultFocus', type: 'service' },
47
+ 'RunEQS': { class: 'BTService_RunEQS', type: 'service' },
48
+ 'Selector': { class: 'BTComposite_Selector', type: 'composite' },
49
+ 'SequenceNode': { class: 'BTComposite_Sequence', type: 'composite' },
50
+ 'SimpleParallel': { class: 'BTComposite_SimpleParallel', type: 'composite' }
51
+ };
3
52
  export async function handleGraphTools(toolName, action, args, tools) {
4
53
  if (!args.assetPath && !args.blueprintPath && !args.systemPath) {
5
54
  }
@@ -21,6 +70,9 @@ async function handleBlueprintGraph(action, args, tools) {
21
70
  if (!processedArgs.graphName) {
22
71
  processedArgs.graphName = 'EventGraph';
23
72
  }
73
+ if (processedArgs.nodeType && BLUEPRINT_NODE_ALIASES[processedArgs.nodeType]) {
74
+ processedArgs.nodeType = BLUEPRINT_NODE_ALIASES[processedArgs.nodeType];
75
+ }
24
76
  if (processedArgs.nodeType === 'FunctionCall') {
25
77
  processedArgs.nodeType = 'CallFunction';
26
78
  }
@@ -80,11 +132,20 @@ async function handleNiagaraGraph(action, args, tools) {
80
132
  return cleanObject({ ...res, ...(res.result || {}) });
81
133
  }
82
134
  async function handleMaterialGraph(action, args, tools) {
83
- const res = await executeAutomationRequest(tools, 'manage_material_graph', { ...args, subAction: action }, 'Automation bridge not available');
135
+ const payload = { ...args, subAction: action };
136
+ const res = await executeAutomationRequest(tools, 'manage_material_graph', payload, 'Automation bridge not available');
84
137
  return cleanObject({ ...res, ...(res.result || {}) });
85
138
  }
86
139
  async function handleBehaviorTree(action, args, tools) {
87
- const res = await executeAutomationRequest(tools, 'manage_behavior_tree', { ...args, subAction: action }, 'Automation bridge not available');
140
+ const processedArgs = { ...args, subAction: action };
141
+ if (processedArgs.nodeType && BT_NODE_ALIASES[processedArgs.nodeType]) {
142
+ const alias = BT_NODE_ALIASES[processedArgs.nodeType];
143
+ processedArgs.nodeType = alias.class;
144
+ if (!processedArgs.nodeCategory) {
145
+ processedArgs.nodeCategory = alias.type;
146
+ }
147
+ }
148
+ const res = await executeAutomationRequest(tools, 'manage_behavior_tree', processedArgs, 'Automation bridge not available');
88
149
  return cleanObject({ ...res, ...(res.result || {}) });
89
150
  }
90
151
  //# sourceMappingURL=graph-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-handlers.js","sourceRoot":"","sources":["../../../src/tools/handlers/graph-handlers.ts"],"names":[],"mappings":"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"}