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,9 +1,19 @@
1
+ const RESPONSE_TIME_SAMPLE_LIMIT = 100;
2
+ const RECENT_ERROR_LIMIT = 20;
3
+ function elapsedSince(startTime) {
4
+ if (!Number.isFinite(startTime)) {
5
+ return 0;
6
+ }
7
+ return Math.max(0, Date.now() - startTime);
8
+ }
1
9
  export class HealthMonitor {
2
10
  logger;
3
11
  metrics;
4
12
  healthCheckTimer;
5
13
  lastHealthSuccessAt = 0;
14
+ responseTimeTotal = 0;
6
15
  HEALTH_CHECK_INTERVAL_MS = 30000;
16
+ HEALTH_CHECK_PAUSE_AFTER_MS = 5 * 60 * 1000;
7
17
  constructor(logger) {
8
18
  this.logger = logger;
9
19
  this.metrics = {
@@ -19,7 +29,7 @@ export class HealthMonitor {
19
29
  };
20
30
  }
21
31
  trackPerformance(startTime, success) {
22
- const responseTime = Date.now() - startTime;
32
+ const responseTime = elapsedSince(startTime);
23
33
  this.metrics.totalRequests++;
24
34
  if (success) {
25
35
  this.metrics.successfulRequests++;
@@ -28,10 +38,13 @@ export class HealthMonitor {
28
38
  this.metrics.failedRequests++;
29
39
  }
30
40
  this.metrics.responseTimes.push(responseTime);
31
- if (this.metrics.responseTimes.length > 100) {
32
- this.metrics.responseTimes.shift();
41
+ this.responseTimeTotal += responseTime;
42
+ if (this.metrics.responseTimes.length > RESPONSE_TIME_SAMPLE_LIMIT) {
43
+ const removed = this.metrics.responseTimes.shift();
44
+ if (removed !== undefined)
45
+ this.responseTimeTotal -= removed;
33
46
  }
34
- this.metrics.averageResponseTime = this.metrics.responseTimes.reduce((a, b) => a + b, 0) / this.metrics.responseTimes.length;
47
+ this.metrics.averageResponseTime = this.responseTimeTotal / this.metrics.responseTimes.length;
35
48
  }
36
49
  recordError(errorResponse) {
37
50
  try {
@@ -43,13 +56,16 @@ export class HealthMonitor {
43
56
  message: typeof errorResponse.error === 'string' ? errorResponse.error : (typeof errorResponse.message === 'string' ? errorResponse.message : 'Unknown error'),
44
57
  retriable: Boolean(errorResponse.retriable)
45
58
  });
46
- if (this.metrics.recentErrors.length > 20)
47
- this.metrics.recentErrors.splice(0, this.metrics.recentErrors.length - 20);
59
+ if (this.metrics.recentErrors.length > RECENT_ERROR_LIMIT)
60
+ this.metrics.recentErrors.splice(0, this.metrics.recentErrors.length - RECENT_ERROR_LIMIT);
61
+ }
62
+ catch (error) {
63
+ this.logger.debug('Failed to record health monitor error response', error);
48
64
  }
49
- catch { }
50
65
  }
51
66
  async performHealthCheck(bridge) {
52
67
  if (!bridge.isConnected) {
68
+ this.markDisconnected();
53
69
  return false;
54
70
  }
55
71
  try {
@@ -72,8 +88,8 @@ export class HealthMonitor {
72
88
  this.lastHealthSuccessAt = Date.now();
73
89
  this.healthCheckTimer = setInterval(async () => {
74
90
  if (!bridge.isConnected) {
75
- const FIVE_MIN_MS = 5 * 60 * 1000;
76
- if (!this.lastHealthSuccessAt || Date.now() - this.lastHealthSuccessAt > FIVE_MIN_MS) {
91
+ this.markDisconnected();
92
+ if (!this.lastHealthSuccessAt || Date.now() - this.lastHealthSuccessAt > this.HEALTH_CHECK_PAUSE_AFTER_MS) {
77
93
  if (this.healthCheckTimer) {
78
94
  clearInterval(this.healthCheckTimer);
79
95
  this.healthCheckTimer = undefined;
@@ -83,8 +99,7 @@ export class HealthMonitor {
83
99
  return;
84
100
  }
85
101
  await this.performHealthCheck(bridge);
86
- const FIVE_MIN_MS = 5 * 60 * 1000;
87
- if (!this.lastHealthSuccessAt || Date.now() - this.lastHealthSuccessAt > FIVE_MIN_MS) {
102
+ if (!this.lastHealthSuccessAt || Date.now() - this.lastHealthSuccessAt > this.HEALTH_CHECK_PAUSE_AFTER_MS) {
88
103
  if (this.healthCheckTimer) {
89
104
  clearInterval(this.healthCheckTimer);
90
105
  this.healthCheckTimer = undefined;
@@ -102,5 +117,9 @@ export class HealthMonitor {
102
117
  setLastHealthSuccessAt(time) {
103
118
  this.lastHealthSuccessAt = time;
104
119
  }
120
+ markDisconnected() {
121
+ this.metrics.connectionStatus = 'disconnected';
122
+ this.metrics.lastHealthCheck = new Date();
123
+ }
105
124
  }
106
125
  //# sourceMappingURL=health-monitor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"health-monitor.js","sourceRoot":"","sources":["../../src/services/health-monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"health-monitor.js","sourceRoot":"","sources":["../../src/services/health-monitor.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import http from 'http';
1
+ import http from 'node:http';
2
2
  import { HealthMonitor } from './health-monitor.js';
3
3
  import { AutomationBridge } from '../automation/index.js';
4
4
  import { Logger } from '../utils/logger.js';
@@ -1 +1 @@
1
- {"version":3,"file":"metrics-server.d.ts","sourceRoot":"","sources":["../../src/services/metrics-server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,UAAU,oBAAoB;IAC5B,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;CAChB;AAqDD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAqEpF"}
1
+ {"version":3,"file":"metrics-server.d.ts","sourceRoot":"","sources":["../../src/services/metrics-server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,UAAU,oBAAoB;IAC5B,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;CAChB;AA+GD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CA+EpF"}
@@ -1,4 +1,57 @@
1
- import http from 'http';
1
+ import http from 'node:http';
2
+ import { timingSafeEqual } from 'node:crypto';
3
+ function parseMetricsPort(value) {
4
+ if (!value || value.trim().length === 0)
5
+ return 0;
6
+ const trimmed = value.trim();
7
+ if (!/^\d+$/.test(trimmed))
8
+ return 0;
9
+ const port = Number(trimmed);
10
+ return Number.isInteger(port) && port > 0 && port <= 65535 ? port : 0;
11
+ }
12
+ function isLoopbackHost(host) {
13
+ const normalized = host.trim().toLowerCase();
14
+ return normalized === 'localhost' || normalized === '127.0.0.1' || normalized === '::1' || normalized === '[::1]';
15
+ }
16
+ function parseMetricsHost(value, logger) {
17
+ const host = value && value.trim().length > 0 ? value.trim() : '127.0.0.1';
18
+ if (isLoopbackHost(host)) {
19
+ if (host.toLowerCase() === 'localhost')
20
+ return '127.0.0.1';
21
+ if (host === '[::1]')
22
+ return '::1';
23
+ return host;
24
+ }
25
+ const allowNonLoopback = process.env.MCP_METRICS_ALLOW_NON_LOOPBACK?.toLowerCase() === 'true';
26
+ if (!allowNonLoopback) {
27
+ logger.warn(`Refusing to bind metrics server to non-loopback host '${host}'. Set MCP_METRICS_ALLOW_NON_LOOPBACK=true and MCP_METRICS_TOKEN to opt in.`);
28
+ return null;
29
+ }
30
+ if (!process.env.MCP_METRICS_TOKEN?.trim()) {
31
+ logger.warn('Refusing to expose metrics on a non-loopback host without MCP_METRICS_TOKEN.');
32
+ return null;
33
+ }
34
+ return host;
35
+ }
36
+ function headerValue(value) {
37
+ return Array.isArray(value) ? value[0] : value;
38
+ }
39
+ function tokensMatch(candidate, expected) {
40
+ const candidateBytes = Buffer.from(candidate);
41
+ const expectedBytes = Buffer.from(expected);
42
+ return candidateBytes.length === expectedBytes.length && timingSafeEqual(candidateBytes, expectedBytes);
43
+ }
44
+ function isAuthorized(req, token) {
45
+ const explicitToken = headerValue(req.headers['x-mcp-metrics-token']);
46
+ if (explicitToken && tokensMatch(explicitToken, token))
47
+ return true;
48
+ const authHeader = headerValue(req.headers.authorization);
49
+ const bearerPrefix = 'Bearer ';
50
+ if (authHeader?.startsWith(bearerPrefix)) {
51
+ return tokensMatch(authHeader.slice(bearerPrefix.length).trim(), token);
52
+ }
53
+ return false;
54
+ }
2
55
  function formatPrometheusMetrics(options) {
3
56
  const { healthMonitor, automationBridge } = options;
4
57
  const m = healthMonitor.metrics;
@@ -37,12 +90,16 @@ function formatPrometheusMetrics(options) {
37
90
  export function startMetricsServer(options) {
38
91
  const { logger } = options;
39
92
  const portEnv = process.env.MCP_METRICS_PORT || process.env.PROMETHEUS_PORT;
40
- const port = portEnv ? Number(portEnv) : 0;
93
+ const port = parseMetricsPort(portEnv);
41
94
  if (!port || !Number.isFinite(port) || port <= 0) {
42
95
  logger.debug('Metrics server disabled (set MCP_METRICS_PORT to enable Prometheus /metrics endpoint).');
43
96
  return null;
44
97
  }
45
- const host = process.env.MCP_METRICS_HOST || '127.0.0.1';
98
+ const host = parseMetricsHost(process.env.MCP_METRICS_HOST, logger);
99
+ if (!host) {
100
+ return null;
101
+ }
102
+ const metricsToken = process.env.MCP_METRICS_TOKEN?.trim();
46
103
  const requestCounts = new Map();
47
104
  const RATE_LIMIT = 60;
48
105
  const RATE_WINDOW_MS = 60_000;
@@ -66,6 +123,11 @@ export function startMetricsServer(options) {
66
123
  requestCounts.delete(ip);
67
124
  }
68
125
  }
126
+ if (metricsToken && !isAuthorized(req, metricsToken)) {
127
+ res.writeHead(401, { 'Content-Type': 'text/plain' });
128
+ res.end('Unauthorized');
129
+ return;
130
+ }
69
131
  if (req.url === '/metrics' && req.method === 'GET') {
70
132
  const metrics = formatPrometheusMetrics(options);
71
133
  res.writeHead(200, { 'Content-Type': 'text/plain; version=0.0.4' });
@@ -1 +1 @@
1
- {"version":3,"file":"metrics-server.js","sourceRoot":"","sources":["../../src/services/metrics-server.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAWxB,SAAS,uBAAuB,CAAC,OAA6B;IAC5D,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC;IACpD,MAAM,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;IAChC,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,CAAC;IAE5C,MAAM,KAAK,GAAa,EAAE,CAAC;IAG3B,KAAK,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;IACrG,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;IAE3D,KAAK,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAC;IACjG,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAExE,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;IAC5F,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;IAGnE,KAAK,CAAC,IAAI,CAAC,gGAAgG,CAAC,CAAC;IAC7G,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC/D,KAAK,CAAC,IAAI,CAAC,uCAAuC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAGrI,KAAK,CAAC,IAAI,CAAC,gHAAgH,CAAC,CAAC;IAC7H,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IACvD,KAAK,CAAC,IAAI,CAAC,+BAA+B,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEtE,KAAK,CAAC,IAAI,CAAC,6FAA6F,CAAC,CAAC;IAC1G,KAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IAClE,KAAK,CAAC,IAAI,CAAC,0CAA0C,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;IAE/E,KAAK,CAAC,IAAI,CAAC,oHAAoH,CAAC,CAAC;IACjI,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACtE,KAAK,CAAC,IAAI,CAAC,8CAA8C,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAEtF,KAAK,CAAC,IAAI,CAAC,sHAAsH,CAAC,CAAC;IACnI,KAAK,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;IAC5E,KAAK,CAAC,IAAI,CAAC,oDAAoD,MAAM,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAGlG,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IACjE,KAAK,CAAC,IAAI,CAAC,kGAAkG,CAAC,CAAC;IAC/G,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CAAC,6BAA6B,aAAa,EAAE,CAAC,CAAC;IAEzD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAA6B;IAC9D,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAE3B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;IAC5E,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3C,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,KAAK,CAAC,wFAAwF,CAAC,CAAC;QACvG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,WAAW,CAAC;IAGzD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAgD,CAAC;IAC9E,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,MAAM,cAAc,GAAG,MAAM,CAAC;IAE9B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5C,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,IAAI,SAAS,CAAC;QAGvD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,UAAU,IAAI,GAAG,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YAC7C,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;gBACnC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;gBACrD,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;YACD,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,GAAG,cAAc,EAAE,CAAC,CAAC;QAC7E,CAAC;QAGD,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,aAAa,EAAE,CAAC;YACvC,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzB,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,IAAI,GAAG,CAAC,GAAG,KAAK,UAAU,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;YACjD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,2BAA2B,EAAE,CAAC,CAAC;YACpE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACzD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACvG,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;QAC7B,MAAM,CAAC,IAAI,CAAC,sCAAsC,IAAI,IAAI,IAAI,UAAU,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;QAC3B,MAAM,GAAG,GAAG,KAA8B,CAAC;QAC3C,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,gDAAgD,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"metrics-server.js","sourceRoot":"","sources":["../../src/services/metrics-server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-tool.d.ts","sourceRoot":"","sources":["../../src/tools/base-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,8BAAsB,QAAS,YAAW,SAAS;IACnC,SAAS,CAAC,MAAM,EAAE,YAAY;gBAApB,MAAM,EAAE,YAAY;IAE1C,mBAAmB,IAAI,gBAAgB;cAIvB,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAE,MAAuB,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;cAiC1J,qBAAqB,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;CAOjN"}
1
+ {"version":3,"file":"base-tool.d.ts","sourceRoot":"","sources":["../../src/tools/base-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAoBxD,8BAAsB,QAAS,YAAW,SAAS;IACnC,SAAS,CAAC,MAAM,EAAE,YAAY;gBAApB,MAAM,EAAE,YAAY;IAE1C,mBAAmB,IAAI,gBAAgB;cAIvB,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAE,MAAuB,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;cAmB1J,qBAAqB,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,qBAAqB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,CAAC;CAOjN"}
@@ -1,3 +1,16 @@
1
+ import { isRecord } from '../utils/type-guards.js';
2
+ function formatFailureMessage(action, toolName, response) {
3
+ if (typeof response?.error === 'string') {
4
+ return response.error;
5
+ }
6
+ if (isRecord(response?.error) && typeof response.error.message === 'string') {
7
+ const code = typeof response.error.code === 'string' || typeof response.error.code === 'number'
8
+ ? response.error.code
9
+ : 'UNKNOWN';
10
+ return `${response.error.message} (Code: ${code})`;
11
+ }
12
+ return response?.message ?? `Failed to execute ${action} in ${toolName}`;
13
+ }
1
14
  export class BaseTool {
2
15
  bridge;
3
16
  constructor(bridge) {
@@ -16,22 +29,7 @@ export class BaseTool {
16
29
  ...params
17
30
  }, options);
18
31
  if (!response || response.success === false) {
19
- let errorMessage = `Failed to execute ${action} in ${toolName}`;
20
- if (response?.error) {
21
- if (typeof response.error === 'string') {
22
- errorMessage = response.error;
23
- }
24
- else if (typeof response.error === 'object') {
25
- const errObj = response.error;
26
- if (errObj.message) {
27
- errorMessage = `${errObj.message} (Code: ${errObj.code || 'UNKNOWN'})`;
28
- }
29
- }
30
- }
31
- else if (response?.message) {
32
- errorMessage = response.message;
33
- }
34
- throw new Error(errorMessage);
32
+ throw new Error(formatFailureMessage(action, toolName, response));
35
33
  }
36
34
  return (response.result ?? response);
37
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base-tool.js","sourceRoot":"","sources":["../../src/tools/base-tool.ts"],"names":[],"mappings":"AAIA,MAAM,OAAgB,QAAQ;IACJ;IAAtB,YAAsB,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAI,CAAC;IAE/C,mBAAmB;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAC7C,CAAC;IAES,KAAK,CAAC,WAAW,CAAc,MAAc,EAAE,MAA+B,EAAE,WAAmB,cAAc,EAAE,OAAgC;QACzJ,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAG9C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE;YAC9D,MAAM;YACN,GAAG,MAAM;SACZ,EAAE,OAAO,CAAC,CAAC;QAEZ,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC1C,IAAI,YAAY,GAAG,qBAAqB,MAAM,OAAO,QAAQ,EAAE,CAAC;YAChE,IAAI,QAAQ,EAAE,KAAK,EAAE,CAAC;gBAClB,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACrC,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC;gBAClC,CAAC;qBAAM,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC5C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAgC,CAAC;oBACzD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACjB,YAAY,GAAG,GAAG,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC,IAAI,IAAI,SAAS,GAAG,CAAC;oBAC3E,CAAC;gBACL,CAAC;YACL,CAAC;iBAAM,IAAI,QAAQ,EAAE,OAAO,EAAE,CAAC;gBAC3B,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC;YACpC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAM,CAAC;IAC9C,CAAC;IAES,KAAK,CAAC,qBAAqB,CAAc,MAAc,EAAE,SAAkC,EAAE,EAAE,OAAwF;QAC7L,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,UAAU,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;CACJ"}
1
+ {"version":3,"file":"base-tool.js","sourceRoot":"","sources":["../../src/tools/base-tool.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAInD,SAAS,oBAAoB,CAAC,MAAc,EAAE,QAAgB,EAAE,QAAyB;IACrF,IAAI,OAAO,QAAQ,EAAE,KAAK,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,QAAQ,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC1E,MAAM,IAAI,GAAG,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC3F,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;YACrB,CAAC,CAAC,SAAS,CAAC;QAChB,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,WAAW,IAAI,GAAG,CAAC;IACvD,CAAC;IAED,OAAO,QAAQ,EAAE,OAAO,IAAI,qBAAqB,MAAM,OAAO,QAAQ,EAAE,CAAC;AAC7E,CAAC;AAED,MAAM,OAAgB,QAAQ;IACJ;IAAtB,YAAsB,MAAoB;QAApB,WAAM,GAAN,MAAM,CAAc;IAAI,CAAC;IAE/C,mBAAmB;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;IAC7C,CAAC;IAES,KAAK,CAAC,WAAW,CAAc,MAAc,EAAE,MAA+B,EAAE,WAAmB,cAAc,EAAE,OAAgC;QACzJ,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE9C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,qBAAqB,CAAC,QAAQ,EAAE;YAC9D,MAAM;YACN,GAAG,MAAM;SACZ,EAAE,OAAO,CAAC,CAAC;QAEZ,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAM,CAAC;IAC9C,CAAC;IAES,KAAK,CAAC,qBAAqB,CAAc,MAAc,EAAE,SAAkC,EAAE,EAAE,OAAwF;QAC7L,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC9C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,UAAU,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;CACJ"}
@@ -1,10 +1,25 @@
1
1
  export interface ToolDefinition {
2
- category?: 'core' | 'world' | 'authoring' | 'gameplay' | 'utility';
2
+ category?: 'core' | 'world' | 'gameplay' | 'utility';
3
3
  name: string;
4
4
  description: string;
5
5
  inputSchema: Record<string, unknown>;
6
6
  outputSchema?: Record<string, unknown>;
7
7
  [key: string]: unknown;
8
8
  }
9
+ export declare const MATERIAL_AUTHORING_ACTIONS: readonly ["create_material", "set_blend_mode", "set_shading_model", "set_material_domain", "add_texture_sample", "add_texture_coordinate", "add_scalar_parameter", "add_vector_parameter", "add_static_switch_parameter", "add_math_node", "add_world_position", "add_vertex_normal", "add_pixel_depth", "add_fresnel", "add_reflection_vector", "add_panner", "add_rotator", "add_noise", "add_voronoi", "add_if", "add_switch", "add_custom_expression", "connect_nodes", "connect_material_pins", "disconnect_nodes", "break_material_connections", "create_material_function", "add_function_input", "add_function_output", "use_material_function", "get_material_function_info", "create_material_instance", "set_scalar_parameter_value", "set_vector_parameter_value", "set_texture_parameter_value", "create_landscape_material", "create_decal_material", "create_post_process_material", "add_landscape_layer", "configure_layer_blend", "compile_material", "get_material_info", "find_node", "get_node_connections", "get_node_properties", "set_static_switch_parameter_value", "delete_node", "update_custom_expression", "get_node_chain", "get_connected_subgraph", "add_material_node", "rebuild_material", "set_material_parameter", "get_material_node_details", "remove_material_node", "set_two_sided"];
10
+ export declare const TEXTURE_ACTIONS: readonly ["create_noise_texture", "create_gradient_texture", "create_pattern_texture", "create_normal_from_height", "create_ao_from_mesh", "resize_texture", "adjust_levels", "adjust_curves", "blur", "sharpen", "invert", "desaturate", "channel_pack", "channel_extract", "combine_textures", "set_compression_settings", "set_texture_group", "set_lod_bias", "configure_virtual_texture", "set_streaming_priority", "get_texture_info"];
11
+ export declare const SKELETON_ACTIONS: readonly ["create_skeleton", "add_bone", "remove_bone", "rename_bone", "set_bone_transform", "set_bone_parent", "create_virtual_bone", "create_socket", "configure_socket", "auto_skin_weights", "set_vertex_weights", "normalize_weights", "prune_weights", "copy_weights", "mirror_weights", "create_physics_asset", "add_physics_body", "configure_physics_body", "add_physics_constraint", "configure_constraint_limits", "bind_cloth_to_skeletal_mesh", "assign_cloth_asset_to_mesh", "create_morph_target", "set_morph_target_deltas", "import_morph_targets", "get_skeleton_info", "list_bones", "list_sockets", "list_physics_bodies"];
12
+ export declare const LIGHTING_ACTIONS: readonly ["spawn_light", "create_light", "spawn_sky_light", "create_sky_light", "ensure_single_sky_light", "create_lightmass_volume", "create_lighting_enabled_level", "create_dynamic_light", "setup_global_illumination", "configure_shadows", "set_exposure", "set_ambient_occlusion", "setup_volumetric_fog", "build_lighting", "list_light_types"];
13
+ export declare const SPLINE_ACTIONS: readonly ["create_spline_actor", "add_spline_point", "remove_spline_point", "set_spline_point_position", "set_spline_point_tangents", "set_spline_point_rotation", "set_spline_point_scale", "set_spline_type", "create_spline_mesh_component", "set_spline_mesh_asset", "configure_spline_mesh_axis", "set_spline_mesh_material", "scatter_meshes_along_spline", "configure_mesh_spacing", "configure_mesh_randomization", "create_road_spline", "create_river_spline", "create_fence_spline", "create_wall_spline", "create_cable_spline", "create_pipe_spline", "get_splines_info"];
14
+ export declare const PHASE_28_ENVIRONMENT_ACTIONS: readonly ["import_heightmap", "export_heightmap", "create_landscape_layer_info", "configure_landscape_material", "configure_landscape_splines", "configure_landscape_lod", "create_landscape_streaming_proxy", "create_foliage_type", "configure_foliage_mesh", "configure_foliage_placement", "configure_foliage_lod", "configure_foliage_collision", "configure_foliage_culling", "paint_foliage_instances", "remove_foliage_instances", "configure_sky_atmosphere", "configure_sky_light", "configure_directional_light_atmosphere", "configure_exponential_height_fog", "configure_volumetric_cloud", "create_weather_system", "configure_rain_particles", "configure_snow_particles", "configure_wind", "configure_lightning", "create_time_of_day_system", "configure_sun_position", "configure_light_color_curve", "configure_sky_color_curve", "create_water_body_ocean", "create_water_body_lake", "create_water_body_river", "create_water_body_custom", "configure_water_waves", "configure_water_material", "configure_water_collision", "create_buoyancy_component"];
15
+ export declare const PERFORMANCE_ACTIONS: readonly ["start_profiling", "stop_profiling", "run_benchmark", "show_stats", "generate_memory_report", "set_scalability", "set_resolution_scale", "set_vsync", "set_frame_rate_limit", "enable_gpu_timing", "configure_texture_streaming", "configure_lod", "apply_baseline_settings", "optimize_draw_calls", "merge_actors", "configure_occlusion_culling", "optimize_shaders", "configure_nanite", "configure_world_partition"];
16
+ export declare const BEHAVIOR_TREE_ACTIONS: readonly ["create", "add_node", "connect_nodes", "remove_node", "break_connections", "set_node_properties", "add_subnode", "get_tree"];
17
+ export declare const NAVIGATION_ACTIONS: readonly ["configure_nav_mesh_settings", "set_nav_agent_properties", "rebuild_navigation", "create_nav_modifier_component", "set_nav_area_class", "configure_nav_area_cost", "create_nav_link_proxy", "configure_nav_link", "set_nav_link_type", "create_smart_link", "configure_smart_link_behavior", "get_navigation_info"];
18
+ export declare const WIDGET_AUTHORING_ACTIONS: readonly ["create_widget_blueprint", "set_widget_parent_class", "add_canvas_panel", "add_horizontal_box", "add_vertical_box", "add_overlay", "add_grid_panel", "add_uniform_grid", "add_wrap_box", "add_scroll_box", "add_size_box", "add_scale_box", "add_border", "add_text_block", "add_rich_text_block", "add_image", "add_button", "add_check_box", "add_slider", "add_progress_bar", "add_text_input", "add_combo_box", "add_spin_box", "add_list_view", "add_tree_view", "set_anchor", "set_alignment", "set_position", "set_size", "set_padding", "set_z_order", "set_render_transform", "set_visibility", "set_style", "set_clipping", "create_property_binding", "bind_text", "bind_visibility", "bind_color", "bind_enabled", "bind_on_clicked", "bind_on_hovered", "bind_on_value_changed", "create_widget_animation", "add_animation_track", "add_animation_keyframe", "set_animation_loop", "create_main_menu", "create_pause_menu", "create_settings_menu", "create_loading_screen", "create_hud_widget", "add_health_bar", "add_ammo_counter", "add_minimap", "add_crosshair", "add_compass", "add_interaction_prompt", "add_objective_tracker", "add_damage_indicator", "create_inventory_ui", "create_dialog_widget", "create_radial_menu", "get_widget_info", "preview_widget"];
19
+ export declare const SESSION_ACTIONS: readonly ["configure_local_session_settings", "configure_session_interface", "configure_split_screen", "set_split_screen_type", "add_local_player", "remove_local_player", "configure_lan_play", "host_lan_server", "join_lan_server", "enable_voice_chat", "configure_voice_settings", "set_voice_channel", "mute_player", "set_voice_attenuation", "configure_push_to_talk", "get_sessions_info"];
20
+ export declare const GAME_FRAMEWORK_ACTIONS: readonly ["create_game_mode", "create_game_state", "create_player_controller", "create_player_state", "create_game_instance", "create_hud_class", "set_default_pawn_class", "set_player_controller_class", "set_game_state_class", "set_player_state_class", "configure_game_rules", "setup_match_states", "configure_round_system", "configure_team_system", "configure_scoring_system", "configure_spawn_system", "configure_player_start", "set_respawn_rules", "configure_spectating", "get_game_framework_info"];
21
+ export declare const INPUT_ACTIONS: readonly ["create_input_action", "create_input_mapping_context", "add_mapping", "remove_mapping", "add_legacy_action_mapping", "remove_legacy_action_mapping", "add_legacy_axis_mapping", "remove_legacy_axis_mapping", "map_input_action", "set_input_trigger", "set_input_modifier", "enable_input_mapping", "disable_input_action", "get_input_info"];
22
+ export declare const VOLUME_ACTIONS: readonly ["create_trigger_volume", "add_trigger_volume", "create_trigger_box", "create_trigger_sphere", "create_trigger_capsule", "create_blocking_volume", "add_blocking_volume", "create_kill_z_volume", "add_kill_z_volume", "create_pain_causing_volume", "create_physics_volume", "add_physics_volume", "create_audio_volume", "create_reverb_volume", "create_cull_distance_volume", "add_cull_distance_volume", "create_precomputed_visibility_volume", "create_lightmass_importance_volume", "create_nav_mesh_bounds_volume", "create_nav_modifier_volume", "create_camera_blocking_volume", "create_post_process_volume", "add_post_process_volume", "set_volume_extent", "set_volume_bounds", "set_volume_properties", "remove_volume", "get_volumes_info"];
23
+ export declare const PCG_ACTIONS: readonly ["create_pcg_graph", "create_pcg_subgraph", "add_pcg_node", "connect_pcg_pins", "set_pcg_node_settings", "add_landscape_data_node", "add_spline_data_node", "add_volume_data_node", "add_actor_data_node", "add_texture_data_node", "add_surface_sampler", "add_mesh_sampler", "add_spline_sampler", "add_volume_sampler", "add_bounds_modifier", "add_density_filter", "add_height_filter", "add_slope_filter", "add_distance_filter", "add_bounds_filter", "add_self_pruning", "add_transform_points", "add_project_to_surface", "add_copy_points", "add_merge_points", "add_static_mesh_spawner", "add_actor_spawner", "add_spline_spawner", "execute_pcg_graph", "set_pcg_partition_grid_size"];
9
24
  export declare const consolidatedToolDefinitions: ToolDefinition[];
10
25
  //# sourceMappingURL=consolidated-tool-definitions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"consolidated-tool-definitions.d.ts","sourceRoot":"","sources":["../../src/tools/consolidated-tool-definitions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,2BAA2B,EAAE,cAAc,EAylJvD,CAAC"}
1
+ {"version":3,"file":"consolidated-tool-definitions.d.ts","sourceRoot":"","sources":["../../src/tools/consolidated-tool-definitions.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAUD,eAAO,MAAM,0BAA0B,+vCAmB7B,CAAC;AAEX,eAAO,MAAM,eAAe,8aAOlB,CAAC;AAEX,eAAO,MAAM,gBAAgB,gnBAUnB,CAAC;AAEX,eAAO,MAAM,gBAAgB,yVAKnB,CAAC;AAEX,eAAO,MAAM,cAAc,wjBAOjB,CAAC;AAEX,eAAO,MAAM,4BAA4B,mhCAa/B,CAAC;AAEX,eAAO,MAAM,mBAAmB,oaAMtB,CAAC;AAEX,eAAO,MAAM,qBAAqB,wIAGxB,CAAC;AAEX,eAAO,MAAM,kBAAkB,+TAKrB,CAAC;AAEX,eAAO,MAAM,wBAAwB,ouCAe3B,CAAC;AAEX,eAAO,MAAM,eAAe,qYAMlB,CAAC;AAEX,eAAO,MAAM,sBAAsB,ufASzB,CAAC;AAEX,eAAO,MAAM,aAAa,0VAMhB,CAAC;AAEX,eAAO,MAAM,cAAc,uuBASjB,CAAC;AAEX,eAAO,MAAM,WAAW,8qBAQd,CAAC;AAIX,eAAO,MAAM,2BAA2B,EAAE,cAAc,EAy4GvD,CAAC"}