unreal-engine-mcp-server 0.5.21 → 0.5.30

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 (382) hide show
  1. package/CHANGELOG.md +247 -4
  2. package/README.md +140 -85
  3. package/dist/automation/bridge.d.ts +8 -0
  4. package/dist/automation/bridge.d.ts.map +1 -1
  5. package/dist/automation/bridge.js +94 -14
  6. package/dist/automation/bridge.js.map +1 -1
  7. package/dist/automation/connection-manager.d.ts.map +1 -1
  8. package/dist/automation/connection-manager.js +13 -5
  9. package/dist/automation/connection-manager.js.map +1 -1
  10. package/dist/automation/handshake.d.ts.map +1 -1
  11. package/dist/automation/handshake.js +40 -27
  12. package/dist/automation/handshake.js.map +1 -1
  13. package/dist/automation/index.d.ts +1 -1
  14. package/dist/automation/index.d.ts.map +1 -1
  15. package/dist/automation/index.js +0 -1
  16. package/dist/automation/index.js.map +1 -1
  17. package/dist/automation/message-handler.d.ts.map +1 -1
  18. package/dist/automation/message-handler.js +13 -9
  19. package/dist/automation/message-handler.js.map +1 -1
  20. package/dist/automation/message-schema.d.ts.map +1 -1
  21. package/dist/automation/message-schema.js +19 -18
  22. package/dist/automation/message-schema.js.map +1 -1
  23. package/dist/automation/request-tracker.d.ts +1 -0
  24. package/dist/automation/request-tracker.d.ts.map +1 -1
  25. package/dist/automation/request-tracker.js +30 -31
  26. package/dist/automation/request-tracker.js.map +1 -1
  27. package/dist/automation/types.d.ts +38 -32
  28. package/dist/automation/types.d.ts.map +1 -1
  29. package/dist/cli.js +14 -16
  30. package/dist/cli.js.map +1 -1
  31. package/dist/config/class-aliases.d.ts.map +1 -1
  32. package/dist/config/class-aliases.js +10 -2
  33. package/dist/config/class-aliases.js.map +1 -1
  34. package/dist/config.d.ts +9 -8
  35. package/dist/config.d.ts.map +1 -1
  36. package/dist/config.js +58 -32
  37. package/dist/config.js.map +1 -1
  38. package/dist/handlers/resource-handlers.d.ts +15 -2
  39. package/dist/handlers/resource-handlers.d.ts.map +1 -1
  40. package/dist/handlers/resource-handlers.js +46 -63
  41. package/dist/handlers/resource-handlers.js.map +1 -1
  42. package/dist/index.d.ts +0 -2
  43. package/dist/index.d.ts.map +1 -1
  44. package/dist/index.js +42 -48
  45. package/dist/index.js.map +1 -1
  46. package/dist/resources/assets.d.ts.map +1 -1
  47. package/dist/resources/assets.js +34 -9
  48. package/dist/resources/assets.js.map +1 -1
  49. package/dist/resources/levels.d.ts +3 -0
  50. package/dist/resources/levels.d.ts.map +1 -1
  51. package/dist/resources/levels.js +33 -17
  52. package/dist/resources/levels.js.map +1 -1
  53. package/dist/server/resource-registry.d.ts +15 -2
  54. package/dist/server/resource-registry.d.ts.map +1 -1
  55. package/dist/server/resource-registry.js +9 -8
  56. package/dist/server/resource-registry.js.map +1 -1
  57. package/dist/server/tool-registry.d.ts +0 -1
  58. package/dist/server/tool-registry.d.ts.map +1 -1
  59. package/dist/server/tool-registry.js +91 -101
  60. package/dist/server/tool-registry.js.map +1 -1
  61. package/dist/server-setup.d.ts +5 -2
  62. package/dist/server-setup.d.ts.map +1 -1
  63. package/dist/server-setup.js +15 -19
  64. package/dist/server-setup.js.map +1 -1
  65. package/dist/services/health-monitor.d.ts +3 -0
  66. package/dist/services/health-monitor.d.ts.map +1 -1
  67. package/dist/services/health-monitor.js +30 -11
  68. package/dist/services/health-monitor.js.map +1 -1
  69. package/dist/services/metrics-server.d.ts +1 -1
  70. package/dist/services/metrics-server.d.ts.map +1 -1
  71. package/dist/services/metrics-server.js +65 -3
  72. package/dist/services/metrics-server.js.map +1 -1
  73. package/dist/tools/base-tool.d.ts.map +1 -1
  74. package/dist/tools/base-tool.js +14 -16
  75. package/dist/tools/base-tool.js.map +1 -1
  76. package/dist/tools/consolidated-tool-definitions.d.ts +16 -1
  77. package/dist/tools/consolidated-tool-definitions.d.ts.map +1 -1
  78. package/dist/tools/consolidated-tool-definitions.js +1479 -2538
  79. package/dist/tools/consolidated-tool-definitions.js.map +1 -1
  80. package/dist/tools/consolidated-tool-handlers.d.ts.map +1 -1
  81. package/dist/tools/consolidated-tool-handlers.js +195 -217
  82. package/dist/tools/consolidated-tool-handlers.js.map +1 -1
  83. package/dist/tools/dynamic-handler-registry.d.ts +1 -0
  84. package/dist/tools/dynamic-handler-registry.d.ts.map +1 -1
  85. package/dist/tools/dynamic-handler-registry.js +15 -7
  86. package/dist/tools/dynamic-handler-registry.js.map +1 -1
  87. package/dist/tools/dynamic-tool-manager.d.ts +1 -1
  88. package/dist/tools/dynamic-tool-manager.d.ts.map +1 -1
  89. package/dist/tools/dynamic-tool-manager.js +30 -18
  90. package/dist/tools/dynamic-tool-manager.js.map +1 -1
  91. package/dist/tools/editor.d.ts +2 -2
  92. package/dist/tools/editor.d.ts.map +1 -1
  93. package/dist/tools/editor.js +4 -4
  94. package/dist/tools/editor.js.map +1 -1
  95. package/dist/tools/handlers/actor-handlers.d.ts.map +1 -1
  96. package/dist/tools/handlers/actor-handlers.js +66 -7
  97. package/dist/tools/handlers/actor-handlers.js.map +1 -1
  98. package/dist/tools/handlers/ai-handlers.d.ts.map +1 -1
  99. package/dist/tools/handlers/ai-handlers.js +24 -13
  100. package/dist/tools/handlers/ai-handlers.js.map +1 -1
  101. package/dist/tools/handlers/animation-authoring-handlers.d.ts.map +1 -1
  102. package/dist/tools/handlers/animation-authoring-handlers.js +285 -218
  103. package/dist/tools/handlers/animation-authoring-handlers.js.map +1 -1
  104. package/dist/tools/handlers/animation-handlers.d.ts.map +1 -1
  105. package/dist/tools/handlers/animation-handlers.js +69 -21
  106. package/dist/tools/handlers/animation-handlers.js.map +1 -1
  107. package/dist/tools/handlers/asset-handlers.d.ts.map +1 -1
  108. package/dist/tools/handlers/asset-handlers.js +75 -16
  109. package/dist/tools/handlers/asset-handlers.js.map +1 -1
  110. package/dist/tools/handlers/audio-authoring-handlers.d.ts.map +1 -1
  111. package/dist/tools/handlers/audio-authoring-handlers.js +102 -9
  112. package/dist/tools/handlers/audio-authoring-handlers.js.map +1 -1
  113. package/dist/tools/handlers/audio-handlers.d.ts.map +1 -1
  114. package/dist/tools/handlers/audio-handlers.js +48 -13
  115. package/dist/tools/handlers/audio-handlers.js.map +1 -1
  116. package/dist/tools/handlers/blueprint-handlers.d.ts.map +1 -1
  117. package/dist/tools/handlers/blueprint-handlers.js +28 -48
  118. package/dist/tools/handlers/blueprint-handlers.js.map +1 -1
  119. package/dist/tools/handlers/character-handlers.d.ts.map +1 -1
  120. package/dist/tools/handlers/character-handlers.js +13 -12
  121. package/dist/tools/handlers/character-handlers.js.map +1 -1
  122. package/dist/tools/handlers/combat-handlers.d.ts.map +1 -1
  123. package/dist/tools/handlers/combat-handlers.js +12 -12
  124. package/dist/tools/handlers/combat-handlers.js.map +1 -1
  125. package/dist/tools/handlers/common-handlers.d.ts +14 -0
  126. package/dist/tools/handlers/common-handlers.d.ts.map +1 -1
  127. package/dist/tools/handlers/common-handlers.js +117 -9
  128. package/dist/tools/handlers/common-handlers.js.map +1 -1
  129. package/dist/tools/handlers/editor-handlers.d.ts.map +1 -1
  130. package/dist/tools/handlers/editor-handlers.js +139 -67
  131. package/dist/tools/handlers/editor-handlers.js.map +1 -1
  132. package/dist/tools/handlers/effect-handlers.d.ts.map +1 -1
  133. package/dist/tools/handlers/effect-handlers.js +324 -36
  134. package/dist/tools/handlers/effect-handlers.js.map +1 -1
  135. package/dist/tools/handlers/environment-handlers.d.ts.map +1 -1
  136. package/dist/tools/handlers/environment-handlers.js +186 -21
  137. package/dist/tools/handlers/environment-handlers.js.map +1 -1
  138. package/dist/tools/handlers/game-framework-handlers.d.ts.map +1 -1
  139. package/dist/tools/handlers/game-framework-handlers.js +10 -12
  140. package/dist/tools/handlers/game-framework-handlers.js.map +1 -1
  141. package/dist/tools/handlers/gas-handlers.d.ts.map +1 -1
  142. package/dist/tools/handlers/gas-handlers.js +136 -20
  143. package/dist/tools/handlers/gas-handlers.js.map +1 -1
  144. package/dist/tools/handlers/geometry-handlers.d.ts.map +1 -1
  145. package/dist/tools/handlers/geometry-handlers.js +130 -7
  146. package/dist/tools/handlers/geometry-handlers.js.map +1 -1
  147. package/dist/tools/handlers/graph-handlers.d.ts.map +1 -1
  148. package/dist/tools/handlers/graph-handlers.js +46 -11
  149. package/dist/tools/handlers/graph-handlers.js.map +1 -1
  150. package/dist/tools/handlers/input-handlers.d.ts.map +1 -1
  151. package/dist/tools/handlers/input-handlers.js +33 -75
  152. package/dist/tools/handlers/input-handlers.js.map +1 -1
  153. package/dist/tools/handlers/inspect-handlers.d.ts.map +1 -1
  154. package/dist/tools/handlers/inspect-handlers.js +136 -39
  155. package/dist/tools/handlers/inspect-handlers.js.map +1 -1
  156. package/dist/tools/handlers/interaction-handlers.d.ts.map +1 -1
  157. package/dist/tools/handlers/interaction-handlers.js +14 -12
  158. package/dist/tools/handlers/interaction-handlers.js.map +1 -1
  159. package/dist/tools/handlers/inventory-handlers.d.ts.map +1 -1
  160. package/dist/tools/handlers/inventory-handlers.js +19 -12
  161. package/dist/tools/handlers/inventory-handlers.js.map +1 -1
  162. package/dist/tools/handlers/level-handlers.d.ts.map +1 -1
  163. package/dist/tools/handlers/level-handlers.js +166 -149
  164. package/dist/tools/handlers/level-handlers.js.map +1 -1
  165. package/dist/tools/handlers/level-structure-handlers.d.ts.map +1 -1
  166. package/dist/tools/handlers/level-structure-handlers.js +18 -34
  167. package/dist/tools/handlers/level-structure-handlers.js.map +1 -1
  168. package/dist/tools/handlers/manage-tools-handlers.js +3 -3
  169. package/dist/tools/handlers/manage-tools-handlers.js.map +1 -1
  170. package/dist/tools/handlers/material-authoring-handlers.d.ts.map +1 -1
  171. package/dist/tools/handlers/material-authoring-handlers.js +382 -41
  172. package/dist/tools/handlers/material-authoring-handlers.js.map +1 -1
  173. package/dist/tools/handlers/navigation-handlers.d.ts.map +1 -1
  174. package/dist/tools/handlers/navigation-handlers.js +11 -36
  175. package/dist/tools/handlers/navigation-handlers.js.map +1 -1
  176. package/dist/tools/handlers/networking-handlers.d.ts.map +1 -1
  177. package/dist/tools/handlers/networking-handlers.js +17 -15
  178. package/dist/tools/handlers/networking-handlers.js.map +1 -1
  179. package/dist/tools/handlers/niagara-authoring-handlers.d.ts.map +1 -1
  180. package/dist/tools/handlers/niagara-authoring-handlers.js +24 -23
  181. package/dist/tools/handlers/niagara-authoring-handlers.js.map +1 -1
  182. package/dist/tools/handlers/pcg-handlers.d.ts +4 -0
  183. package/dist/tools/handlers/pcg-handlers.d.ts.map +1 -0
  184. package/dist/tools/handlers/pcg-handlers.js +77 -0
  185. package/dist/tools/handlers/pcg-handlers.js.map +1 -0
  186. package/dist/tools/handlers/performance-handlers.d.ts.map +1 -1
  187. package/dist/tools/handlers/performance-handlers.js +35 -42
  188. package/dist/tools/handlers/performance-handlers.js.map +1 -1
  189. package/dist/tools/handlers/pipeline-handlers.d.ts.map +1 -1
  190. package/dist/tools/handlers/pipeline-handlers.js +157 -39
  191. package/dist/tools/handlers/pipeline-handlers.js.map +1 -1
  192. package/dist/tools/handlers/sequence-handlers.d.ts.map +1 -1
  193. package/dist/tools/handlers/sequence-handlers.js +6 -4
  194. package/dist/tools/handlers/sequence-handlers.js.map +1 -1
  195. package/dist/tools/handlers/sessions-handlers.d.ts.map +1 -1
  196. package/dist/tools/handlers/sessions-handlers.js +7 -15
  197. package/dist/tools/handlers/sessions-handlers.js.map +1 -1
  198. package/dist/tools/handlers/spline-handlers.d.ts.map +1 -1
  199. package/dist/tools/handlers/spline-handlers.js +8 -35
  200. package/dist/tools/handlers/spline-handlers.js.map +1 -1
  201. package/dist/tools/handlers/system-handlers.d.ts.map +1 -1
  202. package/dist/tools/handlers/system-handlers.js +100 -26
  203. package/dist/tools/handlers/system-handlers.js.map +1 -1
  204. package/dist/tools/handlers/texture-handlers.d.ts.map +1 -1
  205. package/dist/tools/handlers/texture-handlers.js +14 -0
  206. package/dist/tools/handlers/texture-handlers.js.map +1 -1
  207. package/dist/tools/handlers/volume-handlers.d.ts.map +1 -1
  208. package/dist/tools/handlers/volume-handlers.js +6 -33
  209. package/dist/tools/handlers/volume-handlers.js.map +1 -1
  210. package/dist/tools/handlers/widget-authoring-handlers.d.ts.map +1 -1
  211. package/dist/tools/handlers/widget-authoring-handlers.js +26 -20
  212. package/dist/tools/handlers/widget-authoring-handlers.js.map +1 -1
  213. package/dist/tools/level.d.ts +2 -2
  214. package/dist/tools/level.d.ts.map +1 -1
  215. package/dist/tools/level.js +2 -1
  216. package/dist/tools/level.js.map +1 -1
  217. package/dist/tools/property-dictionary.js +1 -1
  218. package/dist/tools/property-dictionary.js.map +1 -1
  219. package/dist/tools/schemas/core-tools.d.ts +1 -1
  220. package/dist/tools/schemas/core-tools.d.ts.map +1 -1
  221. package/dist/tools/schemas/core-tools.js +94 -57
  222. package/dist/tools/schemas/core-tools.js.map +1 -1
  223. package/dist/tools/tool-definition-utils.d.ts +8 -0
  224. package/dist/tools/tool-definition-utils.d.ts.map +1 -1
  225. package/dist/tools/tool-definition-utils.js +20 -0
  226. package/dist/tools/tool-definition-utils.js.map +1 -1
  227. package/dist/types/automation-responses.d.ts +26 -33
  228. package/dist/types/automation-responses.d.ts.map +1 -1
  229. package/dist/types/env.d.ts.map +1 -1
  230. package/dist/types/env.js +7 -6
  231. package/dist/types/env.js.map +1 -1
  232. package/dist/types/handler-types.d.ts +41 -20
  233. package/dist/types/handler-types.d.ts.map +1 -1
  234. package/dist/types/index.d.ts +2 -2
  235. package/dist/types/index.d.ts.map +1 -1
  236. package/dist/types/index.js.map +1 -1
  237. package/dist/types/tool-interfaces.d.ts +5 -873
  238. package/dist/types/tool-interfaces.d.ts.map +1 -1
  239. package/dist/types/tool-types.d.ts +35 -1
  240. package/dist/types/tool-types.d.ts.map +1 -1
  241. package/dist/unreal-bridge.d.ts.map +1 -1
  242. package/dist/unreal-bridge.js +16 -6
  243. package/dist/unreal-bridge.js.map +1 -1
  244. package/dist/utils/action-constants.d.ts +4 -1
  245. package/dist/utils/action-constants.d.ts.map +1 -1
  246. package/dist/utils/action-constants.js +4 -1
  247. package/dist/utils/action-constants.js.map +1 -1
  248. package/dist/utils/command-validator.d.ts.map +1 -1
  249. package/dist/utils/command-validator.js +5 -4
  250. package/dist/utils/command-validator.js.map +1 -1
  251. package/dist/utils/elicitation.d.ts +5 -2
  252. package/dist/utils/elicitation.d.ts.map +1 -1
  253. package/dist/utils/elicitation.js +38 -21
  254. package/dist/utils/elicitation.js.map +1 -1
  255. package/dist/utils/environment-snapshot.d.ts +17 -0
  256. package/dist/utils/environment-snapshot.d.ts.map +1 -0
  257. package/dist/utils/environment-snapshot.js +242 -0
  258. package/dist/utils/environment-snapshot.js.map +1 -0
  259. package/dist/utils/error-handler.d.ts +1 -11
  260. package/dist/utils/error-handler.d.ts.map +1 -1
  261. package/dist/utils/error-handler.js +41 -25
  262. package/dist/utils/error-handler.js.map +1 -1
  263. package/dist/utils/index.d.ts +2 -1
  264. package/dist/utils/index.d.ts.map +1 -1
  265. package/dist/utils/index.js +2 -1
  266. package/dist/utils/index.js.map +1 -1
  267. package/dist/utils/ini-reader.js +4 -4
  268. package/dist/utils/ini-reader.js.map +1 -1
  269. package/dist/utils/log-reader.d.ts +29 -0
  270. package/dist/utils/log-reader.d.ts.map +1 -0
  271. package/dist/utils/log-reader.js +229 -0
  272. package/dist/utils/log-reader.js.map +1 -0
  273. package/dist/utils/log-redaction.d.ts +4 -0
  274. package/dist/utils/log-redaction.d.ts.map +1 -0
  275. package/dist/utils/log-redaction.js +27 -0
  276. package/dist/utils/log-redaction.js.map +1 -0
  277. package/dist/utils/logger.d.ts +1 -0
  278. package/dist/utils/logger.d.ts.map +1 -1
  279. package/dist/utils/logger.js +20 -7
  280. package/dist/utils/logger.js.map +1 -1
  281. package/dist/utils/normalize.d.ts.map +1 -1
  282. package/dist/utils/normalize.js +31 -30
  283. package/dist/utils/normalize.js.map +1 -1
  284. package/dist/utils/path-security.d.ts.map +1 -1
  285. package/dist/utils/path-security.js +20 -11
  286. package/dist/utils/path-security.js.map +1 -1
  287. package/dist/utils/response-factory.d.ts +1 -1
  288. package/dist/utils/response-factory.d.ts.map +1 -1
  289. package/dist/utils/response-factory.js +17 -3
  290. package/dist/utils/response-factory.js.map +1 -1
  291. package/dist/utils/response-validator.d.ts.map +1 -1
  292. package/dist/utils/response-validator.js +114 -47
  293. package/dist/utils/response-validator.js.map +1 -1
  294. package/dist/utils/safe-json.d.ts.map +1 -1
  295. package/dist/utils/safe-json.js +24 -18
  296. package/dist/utils/safe-json.js.map +1 -1
  297. package/dist/utils/type-coercion.d.ts +2 -3
  298. package/dist/utils/type-coercion.d.ts.map +1 -1
  299. package/dist/utils/type-coercion.js +42 -14
  300. package/dist/utils/type-coercion.js.map +1 -1
  301. package/dist/utils/type-guards.d.ts +2 -0
  302. package/dist/utils/type-guards.d.ts.map +1 -0
  303. package/dist/utils/type-guards.js +4 -0
  304. package/dist/utils/type-guards.js.map +1 -0
  305. package/dist/utils/unreal-command-queue.d.ts +2 -0
  306. package/dist/utils/unreal-command-queue.d.ts.map +1 -1
  307. package/dist/utils/unreal-command-queue.js +80 -54
  308. package/dist/utils/unreal-command-queue.js.map +1 -1
  309. package/dist/utils/validation.d.ts +2 -1
  310. package/dist/utils/validation.d.ts.map +1 -1
  311. package/dist/utils/validation.js +44 -34
  312. package/dist/utils/validation.js.map +1 -1
  313. package/package.json +4 -6
  314. package/server.json +3 -3
  315. package/dist/graphql/loaders.d.ts +0 -64
  316. package/dist/graphql/loaders.d.ts.map +0 -1
  317. package/dist/graphql/loaders.js +0 -117
  318. package/dist/graphql/loaders.js.map +0 -1
  319. package/dist/graphql/resolvers.d.ts +0 -373
  320. package/dist/graphql/resolvers.d.ts.map +0 -1
  321. package/dist/graphql/resolvers.js +0 -776
  322. package/dist/graphql/resolvers.js.map +0 -1
  323. package/dist/graphql/schema.d.ts +0 -5
  324. package/dist/graphql/schema.d.ts.map +0 -1
  325. package/dist/graphql/schema.js +0 -437
  326. package/dist/graphql/schema.js.map +0 -1
  327. package/dist/graphql/server.d.ts +0 -25
  328. package/dist/graphql/server.d.ts.map +0 -1
  329. package/dist/graphql/server.js +0 -119
  330. package/dist/graphql/server.js.map +0 -1
  331. package/dist/graphql/types.d.ts +0 -9
  332. package/dist/graphql/types.d.ts.map +0 -1
  333. package/dist/graphql/types.js +0 -2
  334. package/dist/graphql/types.js.map +0 -1
  335. package/dist/tools/actors.d.ts +0 -212
  336. package/dist/tools/actors.d.ts.map +0 -1
  337. package/dist/tools/actors.js +0 -456
  338. package/dist/tools/actors.js.map +0 -1
  339. package/dist/tools/animation.d.ts +0 -274
  340. package/dist/tools/animation.d.ts.map +0 -1
  341. package/dist/tools/animation.js +0 -773
  342. package/dist/tools/animation.js.map +0 -1
  343. package/dist/tools/assets.d.ts +0 -82
  344. package/dist/tools/assets.d.ts.map +0 -1
  345. package/dist/tools/assets.js +0 -383
  346. package/dist/tools/assets.js.map +0 -1
  347. package/dist/tools/blueprint.d.ts +0 -271
  348. package/dist/tools/blueprint.d.ts.map +0 -1
  349. package/dist/tools/blueprint.js +0 -828
  350. package/dist/tools/blueprint.js.map +0 -1
  351. package/dist/tools/environment.d.ts +0 -37
  352. package/dist/tools/environment.d.ts.map +0 -1
  353. package/dist/tools/environment.js +0 -338
  354. package/dist/tools/environment.js.map +0 -1
  355. package/dist/tools/foliage.d.ts +0 -140
  356. package/dist/tools/foliage.d.ts.map +0 -1
  357. package/dist/tools/foliage.js +0 -405
  358. package/dist/tools/foliage.js.map +0 -1
  359. package/dist/tools/landscape.d.ts +0 -120
  360. package/dist/tools/landscape.d.ts.map +0 -1
  361. package/dist/tools/landscape.js +0 -454
  362. package/dist/tools/landscape.js.map +0 -1
  363. package/dist/tools/lighting.d.ts +0 -240
  364. package/dist/tools/lighting.d.ts.map +0 -1
  365. package/dist/tools/lighting.js +0 -856
  366. package/dist/tools/lighting.js.map +0 -1
  367. package/dist/tools/logs.d.ts +0 -45
  368. package/dist/tools/logs.d.ts.map +0 -1
  369. package/dist/tools/logs.js +0 -235
  370. package/dist/tools/logs.js.map +0 -1
  371. package/dist/tools/niagara.d.ts +0 -277
  372. package/dist/tools/niagara.d.ts.map +0 -1
  373. package/dist/tools/niagara.js +0 -325
  374. package/dist/tools/niagara.js.map +0 -1
  375. package/dist/tools/physics.d.ts +0 -191
  376. package/dist/tools/physics.d.ts.map +0 -1
  377. package/dist/tools/physics.js +0 -492
  378. package/dist/tools/physics.js.map +0 -1
  379. package/dist/tools/sequence.d.ts +0 -139
  380. package/dist/tools/sequence.d.ts.map +0 -1
  381. package/dist/tools/sequence.js +0 -261
  382. package/dist/tools/sequence.js.map +0 -1
@@ -1,492 +0,0 @@
1
- import { validateAssetParams, resolveSkeletalMeshPath, concurrencyDelay, sanitizeCommandArgument } from '../utils/validation.js';
2
- import { coerceString, coerceStringArray } from '../utils/result-helpers.js';
3
- import { Logger } from '../utils/logger.js';
4
- const log = new Logger('PhysicsTools');
5
- export class PhysicsTools {
6
- bridge;
7
- automationBridge;
8
- constructor(bridge, automationBridge) {
9
- this.bridge = bridge;
10
- this.automationBridge = automationBridge;
11
- }
12
- setAutomationBridge(automationBridge) { this.automationBridge = automationBridge; }
13
- async findValidSkeletalMesh() {
14
- if (!this.automationBridge) {
15
- return '/Game/Characters/Mannequins/Meshes/SKM_Manny_Simple';
16
- }
17
- try {
18
- const response = await this.automationBridge.sendAutomationRequest('find_skeletal_mesh', {
19
- commonPaths: [
20
- '/Game/Characters/Mannequins/Meshes/SKM_Manny',
21
- '/Game/Characters/Mannequins/Meshes/SKM_Manny_Simple',
22
- '/Game/Characters/Mannequins/Meshes/SKM_Manny_Complex',
23
- '/Game/Characters/Mannequins/Meshes/SKM_Quinn',
24
- '/Game/Characters/Mannequins/Meshes/SKM_Quinn_Simple',
25
- '/Game/Characters/Mannequins/Meshes/SKM_Quinn_Complex'
26
- ],
27
- fallback: '/Engine/EngineMeshes/SkeletalCube'
28
- }, {
29
- timeoutMs: 30000
30
- });
31
- if (response.success !== false && response.result) {
32
- const resultObj = response.result;
33
- const meshPath = coerceString(resultObj.meshPath);
34
- if (meshPath) {
35
- return meshPath;
36
- }
37
- }
38
- const resultObj = (response.result ?? {});
39
- const alternate = coerceString(resultObj.alternate);
40
- if (alternate) {
41
- return alternate;
42
- }
43
- }
44
- catch (error) {
45
- log.warn('Failed to find skeletal mesh', error);
46
- }
47
- return '/Engine/EngineMeshes/SkeletalCube';
48
- }
49
- async setupRagdoll(params) {
50
- try {
51
- if (!params.physicsAssetName || params.physicsAssetName.trim() === '') {
52
- return {
53
- success: false,
54
- message: 'Failed to setup ragdoll: Name cannot be empty',
55
- error: 'Name cannot be empty'
56
- };
57
- }
58
- if (params.physicsAssetName.includes('@') || params.physicsAssetName.includes('#') ||
59
- params.physicsAssetName.includes('$') || params.physicsAssetName.includes('%')) {
60
- return {
61
- success: false,
62
- message: 'Failed to setup ragdoll: Name contains invalid characters',
63
- error: 'Name contains invalid characters'
64
- };
65
- }
66
- if (params.skeletonPath && (params.skeletonPath.includes('_Skeleton') ||
67
- params.skeletonPath.includes('SK_Mannequin') && !params.skeletonPath.includes('SKM_'))) {
68
- return {
69
- success: false,
70
- message: 'Failed to setup ragdoll: Must specify a valid skeletal mesh',
71
- error: 'Must specify a valid skeletal mesh, not a skeleton'
72
- };
73
- }
74
- const validation = validateAssetParams({
75
- name: params.physicsAssetName,
76
- savePath: params.savePath || '/Game/Physics'
77
- });
78
- if (!validation.valid) {
79
- return {
80
- success: false,
81
- message: `Failed to setup ragdoll: ${validation.error}`,
82
- error: validation.error
83
- };
84
- }
85
- const sanitizedParams = validation.sanitized;
86
- const path = sanitizedParams.savePath || '/Game/Physics';
87
- let meshPath = params.skeletonPath;
88
- const resolvedPath = resolveSkeletalMeshPath(meshPath);
89
- if (resolvedPath && resolvedPath !== meshPath) {
90
- log.warn(`Auto-correcting path from ${meshPath} to ${resolvedPath}`);
91
- meshPath = resolvedPath;
92
- }
93
- if (!meshPath || meshPath.includes('_Skeleton') || meshPath === 'None' || meshPath === '') {
94
- log.debug('Resolving skeletal mesh path...');
95
- const resolvedMesh = await this.findValidSkeletalMesh();
96
- if (resolvedMesh) {
97
- meshPath = resolvedMesh;
98
- log.debug(`Using resolved skeletal mesh: ${meshPath}`);
99
- }
100
- }
101
- await concurrencyDelay();
102
- const skeletonToMeshMap = {
103
- '/Game/Mannequin/Character/Mesh/UE4_Mannequin_Skeleton': '/Game/Characters/Mannequins/Meshes/SKM_Manny_Simple',
104
- '/Game/Characters/Mannequins/Meshes/SK_Mannequin': '/Game/Characters/Mannequins/Meshes/SKM_Manny_Simple',
105
- '/Game/Mannequin/Character/Mesh/SK_Mannequin': '/Game/Characters/Mannequins/Meshes/SKM_Manny_Simple',
106
- '/Game/Characters/Mannequins/Skeletons/UE5_Mannequin_Skeleton': '/Game/Characters/Mannequins/Meshes/SKM_Manny_Simple',
107
- '/Game/Characters/Mannequins/Skeletons/UE5_Female_Mannequin_Skeleton': '/Game/Characters/Mannequins/Meshes/SKM_Quinn_Simple'
108
- };
109
- let actualSkeletonPath = params.skeletonPath;
110
- if (actualSkeletonPath && skeletonToMeshMap[actualSkeletonPath]) {
111
- log.warn(`Auto-correcting path from ${actualSkeletonPath} to ${skeletonToMeshMap[actualSkeletonPath]}`);
112
- actualSkeletonPath = skeletonToMeshMap[actualSkeletonPath];
113
- }
114
- if (actualSkeletonPath && (actualSkeletonPath.includes('_Skeleton') || actualSkeletonPath.includes('SK_Mannequin'))) {
115
- log.warn('Path appears to be a skeleton, not a skeletal mesh. Auto-correcting to SKM_Manny_Simple.');
116
- }
117
- if (!this.automationBridge) {
118
- throw new Error('Automation Bridge not available. Physics asset creation requires plugin support.');
119
- }
120
- try {
121
- const response = await this.automationBridge.sendAutomationRequest('setup_ragdoll', {
122
- meshPath,
123
- physicsAssetName: sanitizedParams.name,
124
- savePath: path,
125
- blendWeight: params.blendWeight,
126
- constraints: params.constraints
127
- }, {
128
- timeoutMs: 120000
129
- });
130
- if (response.success === false) {
131
- return {
132
- success: false,
133
- message: response.error || response.message || `Failed to setup ragdoll for ${sanitizedParams.name}`,
134
- error: response.error || response.message || 'Failed to setup ragdoll'
135
- };
136
- }
137
- const result = (response.result ?? {});
138
- return {
139
- success: true,
140
- message: response.message || `Ragdoll physics setup completed for ${sanitizedParams.name}`,
141
- path: coerceString(result.path) ?? coerceString(result.physicsAssetPath) ?? `${path}/${sanitizedParams.name}`,
142
- existingAsset: result.existingAsset,
143
- ...result
144
- };
145
- }
146
- catch (error) {
147
- return {
148
- success: false,
149
- message: 'Failed to setup ragdoll physics',
150
- error: String(error)
151
- };
152
- }
153
- }
154
- catch (err) {
155
- return { success: false, error: `Failed to setup ragdoll: ${err}` };
156
- }
157
- }
158
- async createConstraint(params) {
159
- try {
160
- const safeName = sanitizeCommandArgument(params.name);
161
- const safeActor1 = sanitizeCommandArgument(params.actor1);
162
- const safeActor2 = sanitizeCommandArgument(params.actor2);
163
- if (!safeName || !safeActor1 || !safeActor2) {
164
- return { success: false, error: 'Constraint name and actor names must be valid and non-empty.' };
165
- }
166
- const spawnCmd = `spawnactor /Script/Engine.PhysicsConstraintActor ${params.location[0]} ${params.location[1]} ${params.location[2]}`;
167
- await this.bridge.executeConsoleCommand(spawnCmd);
168
- const commands = [
169
- `SetConstraintActors ${safeName} ${safeActor1} ${safeActor2}`,
170
- `SetConstraintType ${safeName} ${params.constraintType}`
171
- ];
172
- if (params.breakThreshold) {
173
- commands.push(`SetConstraintBreakThreshold ${safeName} ${params.breakThreshold}`);
174
- }
175
- if (params.limits) {
176
- const limits = params.limits;
177
- if (limits.swing1 !== undefined) {
178
- commands.push(`SetConstraintSwing1 ${safeName} ${limits.swing1}`);
179
- }
180
- if (limits.swing2 !== undefined) {
181
- commands.push(`SetConstraintSwing2 ${safeName} ${limits.swing2}`);
182
- }
183
- if (limits.twist !== undefined) {
184
- commands.push(`SetConstraintTwist ${safeName} ${limits.twist}`);
185
- }
186
- if (limits.linear !== undefined) {
187
- commands.push(`SetConstraintLinear ${safeName} ${limits.linear}`);
188
- }
189
- }
190
- await this.bridge.executeConsoleCommands(commands);
191
- return {
192
- success: true,
193
- message: `Physics constraint ${safeName} created between ${safeActor1} and ${safeActor2}`
194
- };
195
- }
196
- catch (err) {
197
- return { success: false, error: `Failed to create constraint: ${err}` };
198
- }
199
- }
200
- async setupDestruction(params) {
201
- try {
202
- const safeName = sanitizeCommandArgument(params.destructionName);
203
- const safeMeshPath = sanitizeCommandArgument(params.meshPath);
204
- const safeSavePath = sanitizeCommandArgument(params.savePath || '/Game/Destruction');
205
- if (!safeName || !safeMeshPath || !safeSavePath) {
206
- return { success: false, error: 'Destruction name, mesh path, and save path must be valid and non-empty.' };
207
- }
208
- const commands = [
209
- `CreateGeometryCollection ${safeName} ${safeMeshPath} ${safeSavePath}`
210
- ];
211
- if (params.fractureSettings) {
212
- const settings = params.fractureSettings;
213
- commands.push(`FractureGeometry ${safeName} ${settings.cellCount} ${settings.minimumVolumeSize} ${settings.seed}`);
214
- }
215
- if (params.damageThreshold) {
216
- commands.push(`SetDamageThreshold ${safeName} ${params.damageThreshold}`);
217
- }
218
- if (params.debrisLifetime) {
219
- commands.push(`SetDebrisLifetime ${safeName} ${params.debrisLifetime}`);
220
- }
221
- await this.bridge.executeConsoleCommands(commands);
222
- return {
223
- success: true,
224
- message: `Chaos destruction ${safeName} created`,
225
- path: `${safeSavePath}/${safeName}`
226
- };
227
- }
228
- catch (err) {
229
- return { success: false, error: `Failed to setup destruction: ${err}` };
230
- }
231
- }
232
- async configureVehicle(params) {
233
- const rawParams = params;
234
- const pluginDeps = Array.isArray(params.pluginDependencies) && params.pluginDependencies.length > 0
235
- ? params.pluginDependencies
236
- : (Array.isArray(rawParams.plugins) && rawParams.plugins.length > 0 ? rawParams.plugins : undefined);
237
- if (pluginDeps && pluginDeps.length > 0) {
238
- return {
239
- success: false,
240
- error: 'MISSING_ENGINE_PLUGINS',
241
- missingPlugins: pluginDeps,
242
- message: `Required engine plugins not enabled: ${pluginDeps.join(', ')}`
243
- };
244
- }
245
- const safeVehicleName = sanitizeCommandArgument(params.vehicleName ?? '');
246
- if (!safeVehicleName) {
247
- return { success: false, error: 'Vehicle name must be valid and non-empty.' };
248
- }
249
- const warnings = [];
250
- const hasExplicitEmptyWheels = Array.isArray(params.wheels) && params.wheels.length === 0;
251
- const rawVehicleType = typeof params.vehicleType === 'string' && params.vehicleType.trim().length > 0
252
- ? params.vehicleType
253
- : 'Car';
254
- const safeVehicleType = sanitizeCommandArgument(rawVehicleType);
255
- if (!safeVehicleType) {
256
- return { success: false, error: 'Vehicle type must be valid and non-empty.' };
257
- }
258
- const commands = [
259
- `CreateVehicle ${safeVehicleName} ${safeVehicleType}`
260
- ];
261
- if (Array.isArray(params.wheels) && params.wheels.length > 0) {
262
- for (const wheelUnknown of params.wheels) {
263
- const wheel = wheelUnknown;
264
- const safeWheelName = sanitizeCommandArgument(String(wheel.name ?? ''));
265
- if (!safeWheelName) {
266
- warnings.push('Skipped wheel with invalid name.');
267
- continue;
268
- }
269
- const radius = typeof wheel.radius === 'number' && isFinite(wheel.radius) ? wheel.radius : NaN;
270
- const width = typeof wheel.width === 'number' && isFinite(wheel.width) ? wheel.width : NaN;
271
- const mass = typeof wheel.mass === 'number' && isFinite(wheel.mass) ? wheel.mass : NaN;
272
- if (!isFinite(radius) || !isFinite(width) || !isFinite(mass)) {
273
- warnings.push(`Skipped wheel '${safeWheelName}' with invalid numeric parameters.`);
274
- continue;
275
- }
276
- commands.push(`AddVehicleWheel ${safeVehicleName} ${safeWheelName} ${radius} ${width} ${mass}`);
277
- if (wheel.isSteering) {
278
- commands.push(`SetWheelSteering ${safeVehicleName} ${safeWheelName} true`);
279
- }
280
- if (wheel.isDriving) {
281
- commands.push(`SetWheelDriving ${safeVehicleName} ${safeWheelName} true`);
282
- }
283
- }
284
- }
285
- const engineUnknown = params.engine ?? ((typeof rawParams.maxRPM === 'number' || Array.isArray(rawParams.torqueCurve))
286
- ? { maxRPM: rawParams.maxRPM, torqueCurve: rawParams.torqueCurve }
287
- : undefined);
288
- const effectiveEngine = engineUnknown;
289
- if (effectiveEngine) {
290
- let maxRPM = typeof effectiveEngine.maxRPM === 'number' ? effectiveEngine.maxRPM : 0;
291
- if (maxRPM < 0) {
292
- maxRPM = 0;
293
- warnings.push('Engine maxRPM was negative and has been clamped to 0.');
294
- }
295
- commands.push(`SetEngineMaxRPM ${safeVehicleName} ${maxRPM}`);
296
- const rawCurve = Array.isArray(effectiveEngine.torqueCurve) ? effectiveEngine.torqueCurve : [];
297
- for (const point of rawCurve) {
298
- let rpm;
299
- let torque;
300
- if (Array.isArray(point) && point.length >= 2) {
301
- rpm = Number(point[0]);
302
- torque = Number(point[1]);
303
- }
304
- else if (point && typeof point === 'object' && !Array.isArray(point)) {
305
- const pointObj = point;
306
- rpm = typeof pointObj.rpm === 'number' ? pointObj.rpm : undefined;
307
- torque = typeof pointObj.torque === 'number' ? pointObj.torque : undefined;
308
- }
309
- if (typeof rpm === 'number' && typeof torque === 'number') {
310
- commands.push(`AddTorqueCurvePoint ${safeVehicleName} ${rpm} ${torque}`);
311
- }
312
- }
313
- }
314
- if (params.transmission) {
315
- const trans = params.transmission;
316
- if (Array.isArray(trans.gears)) {
317
- for (let i = 0; i < trans.gears.length; i++) {
318
- commands.push(`SetGearRatio ${safeVehicleName} ${i} ${trans.gears[i]}`);
319
- }
320
- }
321
- if (typeof trans.finalDriveRatio === 'number') {
322
- commands.push(`SetFinalDriveRatio ${safeVehicleName} ${trans.finalDriveRatio}`);
323
- }
324
- }
325
- try {
326
- await this.bridge.executeConsoleCommands(commands);
327
- }
328
- catch (_error) {
329
- if (warnings.length === 0) {
330
- warnings.push('Vehicle configuration commands could not be executed; using engine defaults.');
331
- }
332
- }
333
- if (hasExplicitEmptyWheels) {
334
- warnings.push('No wheels specified; using default wheels from vehicle preset.');
335
- }
336
- if (warnings.length === 0) {
337
- warnings.push('Verify wheel class assignments and offsets in the vehicle movement component to ensure they match your project defaults.');
338
- }
339
- return {
340
- success: true,
341
- message: `Vehicle ${safeVehicleName} configured`,
342
- warnings
343
- };
344
- }
345
- async applyForce(params) {
346
- if (!this.automationBridge) {
347
- throw new Error('Automation Bridge not available. Physics force application requires plugin support.');
348
- }
349
- try {
350
- const normalizedVector = params.vector;
351
- const response = await this.automationBridge.sendAutomationRequest('apply_force', {
352
- actorName: params.actorName,
353
- forceType: params.forceType,
354
- vector: normalizedVector,
355
- boneName: params.boneName,
356
- isLocal: params.isLocal
357
- }, {
358
- timeoutMs: 30000
359
- });
360
- if (response.success === false) {
361
- const result = (response.result ?? {});
362
- return {
363
- success: false,
364
- error: response.error || response.message || 'Force application failed',
365
- availableActors: result.available_actors ? coerceStringArray(result.available_actors) : undefined,
366
- details: result.details
367
- };
368
- }
369
- const result = (response.result ?? {});
370
- return {
371
- success: true,
372
- message: response.message || `Applied ${params.forceType} to ${params.actorName}`,
373
- availableActors: result.available_actors ? coerceStringArray(result.available_actors) : undefined,
374
- ...result
375
- };
376
- }
377
- catch (err) {
378
- return { success: false, error: `Failed to apply force: ${err}` };
379
- }
380
- }
381
- async setupCloth(params) {
382
- try {
383
- const safeMeshName = sanitizeCommandArgument(params.meshName);
384
- if (!safeMeshName) {
385
- return { success: false, error: 'Mesh name must be valid and non-empty.' };
386
- }
387
- const commands = [
388
- `EnableClothSimulation ${safeMeshName}`,
389
- `SetClothPreset ${safeMeshName} ${params.clothPreset}`
390
- ];
391
- if (params.clothPreset === 'Custom' && params.customSettings) {
392
- const settings = params.customSettings;
393
- if (settings.stiffness !== undefined) {
394
- commands.push(`SetClothStiffness ${safeMeshName} ${settings.stiffness}`);
395
- }
396
- if (settings.damping !== undefined) {
397
- commands.push(`SetClothDamping ${safeMeshName} ${settings.damping}`);
398
- }
399
- if (settings.friction !== undefined) {
400
- commands.push(`SetClothFriction ${safeMeshName} ${settings.friction}`);
401
- }
402
- if (settings.density !== undefined) {
403
- commands.push(`SetClothDensity ${safeMeshName} ${settings.density}`);
404
- }
405
- if (settings.gravity !== undefined) {
406
- commands.push(`SetClothGravity ${safeMeshName} ${settings.gravity}`);
407
- }
408
- if (settings.windVelocity) {
409
- const wind = settings.windVelocity;
410
- commands.push(`SetClothWind ${safeMeshName} ${wind[0]} ${wind[1]} ${wind[2]}`);
411
- }
412
- }
413
- await this.bridge.executeConsoleCommands(commands);
414
- return {
415
- success: true,
416
- message: `Cloth simulation enabled for ${safeMeshName}`
417
- };
418
- }
419
- catch (err) {
420
- return { success: false, error: `Failed to setup cloth: ${err}` };
421
- }
422
- }
423
- async createFluidSimulation(params) {
424
- try {
425
- const safeName = sanitizeCommandArgument(params.name);
426
- if (!safeName) {
427
- return { success: false, error: 'Simulation name must be valid and non-empty.' };
428
- }
429
- const locStr = `${params.location[0]} ${params.location[1]} ${params.location[2]}`;
430
- const volStr = `${params.volume[0]} ${params.volume[1]} ${params.volume[2]}`;
431
- const commands = [
432
- `CreateFluidSimulation ${safeName} ${params.fluidType} ${locStr} ${volStr}`
433
- ];
434
- if (params.customSettings) {
435
- const settings = params.customSettings;
436
- if (settings.viscosity !== undefined) {
437
- commands.push(`SetFluidViscosity ${safeName} ${settings.viscosity}`);
438
- }
439
- if (settings.density !== undefined) {
440
- commands.push(`SetFluidDensity ${safeName} ${settings.density}`);
441
- }
442
- if (settings.temperature !== undefined) {
443
- commands.push(`SetFluidTemperature ${safeName} ${settings.temperature}`);
444
- }
445
- if (settings.turbulence !== undefined) {
446
- commands.push(`SetFluidTurbulence ${safeName} ${settings.turbulence}`);
447
- }
448
- if (settings.color) {
449
- const color = settings.color;
450
- commands.push(`SetFluidColor ${safeName} ${color[0]} ${color[1]} ${color[2]} ${color[3]}`);
451
- }
452
- }
453
- await this.bridge.executeConsoleCommands(commands);
454
- return {
455
- success: true,
456
- message: `Fluid simulation ${safeName} created`
457
- };
458
- }
459
- catch (err) {
460
- return { success: false, error: `Failed to create fluid simulation: ${err}` };
461
- }
462
- }
463
- async setupPhysicsSimulation(params) {
464
- if (!this.automationBridge) {
465
- throw new Error('Automation Bridge not available. Physics asset creation requires plugin support.');
466
- }
467
- try {
468
- const response = await this.automationBridge.sendAutomationRequest('animation_physics', {
469
- action: 'setup_physics_simulation',
470
- ...params
471
- }, {
472
- timeoutMs: 60000
473
- });
474
- if (response.success === false) {
475
- return {
476
- success: false,
477
- message: response.error || response.message || 'Failed to setup physics simulation',
478
- error: response.error || response.message
479
- };
480
- }
481
- return {
482
- success: true,
483
- message: response.message || 'Physics simulation setup completed',
484
- ...(response.result || {})
485
- };
486
- }
487
- catch (err) {
488
- return { success: false, error: `Failed to setup physics simulation: ${err}` };
489
- }
490
- }
491
- }
492
- //# sourceMappingURL=physics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"physics.js","sourceRoot":"","sources":["../../src/tools/physics.ts"],"names":[],"mappings":"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"}
@@ -1,139 +0,0 @@
1
- import { ISequenceTools, StandardActionResponse } from '../types/tool-interfaces.js';
2
- import { BaseTool } from './base-tool.js';
3
- export interface LevelSequence {
4
- path: string;
5
- name: string;
6
- duration?: number;
7
- frameRate?: number;
8
- bindings?: SequenceBinding[];
9
- }
10
- export interface SequenceBinding {
11
- id: string;
12
- name: string;
13
- type: 'actor' | 'camera' | 'spawnable';
14
- tracks?: SequenceTrack[];
15
- }
16
- export interface SequenceTrack {
17
- name: string;
18
- type: string;
19
- sections?: Array<Record<string, unknown>>;
20
- }
21
- export declare class SequenceTools extends BaseTool implements ISequenceTools {
22
- private sequenceCache;
23
- private activeSequencePath?;
24
- private resolveSequencePath;
25
- private sendAction;
26
- private isUnknownActionResponse;
27
- create(params: {
28
- name: string;
29
- path?: string;
30
- timeoutMs?: number;
31
- }): Promise<StandardActionResponse>;
32
- open(params: {
33
- path: string;
34
- }): Promise<StandardActionResponse>;
35
- addCamera(params: {
36
- spawnable?: boolean;
37
- path?: string;
38
- }): Promise<StandardActionResponse>;
39
- addActor(params: {
40
- actorName: string;
41
- createBinding?: boolean;
42
- path?: string;
43
- }): Promise<StandardActionResponse>;
44
- play(params?: {
45
- path?: string;
46
- startTime?: number;
47
- loopMode?: 'once' | 'loop' | 'pingpong';
48
- }): Promise<StandardActionResponse>;
49
- pause(params?: {
50
- path?: string;
51
- }): Promise<StandardActionResponse>;
52
- stop(params?: {
53
- path?: string;
54
- }): Promise<StandardActionResponse>;
55
- setSequenceProperties(params: {
56
- path?: string;
57
- frameRate?: number;
58
- lengthInFrames?: number;
59
- playbackStart?: number;
60
- playbackEnd?: number;
61
- }): Promise<StandardActionResponse>;
62
- setDisplayRate(params: {
63
- path?: string;
64
- frameRate: string | number;
65
- }): Promise<StandardActionResponse>;
66
- getSequenceProperties(params: {
67
- path?: string;
68
- }): Promise<StandardActionResponse>;
69
- setPlaybackSpeed(params: {
70
- speed: number;
71
- path?: string;
72
- }): Promise<StandardActionResponse>;
73
- getBindings(params?: {
74
- path?: string;
75
- }): Promise<StandardActionResponse>;
76
- addActors(params: {
77
- actorNames: string[];
78
- path?: string;
79
- }): Promise<StandardActionResponse>;
80
- removeActors(params: {
81
- actorNames: string[];
82
- path?: string;
83
- }): Promise<StandardActionResponse>;
84
- addSpawnableFromClass(params: {
85
- className: string;
86
- path?: string;
87
- }): Promise<StandardActionResponse>;
88
- list(params?: {
89
- path?: string;
90
- }): Promise<StandardActionResponse>;
91
- duplicate(params: {
92
- path: string;
93
- destinationPath: string;
94
- }): Promise<StandardActionResponse>;
95
- rename(params: {
96
- path: string;
97
- newName: string;
98
- }): Promise<StandardActionResponse>;
99
- deleteSequence(params: {
100
- path: string;
101
- }): Promise<StandardActionResponse>;
102
- getMetadata(params: {
103
- path?: string;
104
- }): Promise<StandardActionResponse>;
105
- addKeyframe(params: {
106
- path?: string;
107
- bindingId?: string;
108
- actorName?: string;
109
- property: 'Transform';
110
- frame: number;
111
- value: {
112
- location?: {
113
- x: number;
114
- y: number;
115
- z: number;
116
- };
117
- rotation?: {
118
- roll: number;
119
- pitch: number;
120
- yaw: number;
121
- };
122
- scale?: {
123
- x: number;
124
- y: number;
125
- z: number;
126
- };
127
- };
128
- }): Promise<StandardActionResponse>;
129
- listTracks(params: {
130
- path: string;
131
- }): Promise<StandardActionResponse>;
132
- listTrackTypes(): Promise<StandardActionResponse>;
133
- setWorkRange(params: {
134
- path?: string;
135
- start: number;
136
- end: number;
137
- }): Promise<StandardActionResponse>;
138
- }
139
- //# sourceMappingURL=sequence.d.ts.map