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
@@ -15,7 +15,8 @@ export { interpretStandardResult, cleanResultText, bestEffortInterpretedText, co
15
15
  export { cleanObject as cleanObjectSafe } from './safe-json.js';
16
16
  export type { CommandQueueItem } from './unreal-command-queue.js';
17
17
  export { UnrealCommandQueue } from './unreal-command-queue.js';
18
- export { sanitizeCommandArgument, sanitizeAssetName, sanitizePath, validatePathLength, validateAssetParams, ensureVector3, concurrencyDelay, ensureColorRGB, ensureRotation, } from './validation.js';
18
+ export { sanitizeCommandArgument, sanitizeAssetName, normalizeAndSanitizeAssetPath, sanitizePath, validatePathLength, validateAssetParams, ensureVector3, concurrencyDelay, ensureColorRGB, ensureRotation, } from './validation.js';
19
19
  export { TOOL_ACTIONS, ACTOR_ACTIONS, INPUT_ACTIONS, type ToolAction, type ActorAction, type InputAction, } from './action-constants.js';
20
20
  export { toNumber, toBoolean, toString, toVec3Array, toRotArray, toColor3, toLocationObj, toRotationObj, validateAudioParams, normalizeName, } from './type-coercion.js';
21
+ export { isRecord } from './type-guards.js';
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,YAAY,EACV,YAAY,EACZ,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAG3D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGjE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,YAAY,EACV,OAAO,EACP,OAAO,EACP,SAAS,EACT,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG/E,YAAY,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,yBAAyB,EACzB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGhE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,WAAW,EACX,UAAU,EACV,QAAQ,EACR,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,aAAa,GACd,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,YAAY,EACV,YAAY,EACZ,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAG3D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGjE,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,YAAY,EACV,OAAO,EACP,OAAO,EACP,SAAS,EACT,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG/E,YAAY,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,yBAAyB,EACzB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGhE,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,6BAA6B,EAC7B,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,WAAW,GACjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,WAAW,EACX,UAAU,EACV,QAAQ,EACR,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
@@ -10,7 +10,8 @@ export { ResponseValidator, responseValidator } from './response-validator.js';
10
10
  export { interpretStandardResult, cleanResultText, bestEffortInterpretedText, coerceString, coerceStringArray, coerceBoolean, coerceNumber, coerceVector3, } from './result-helpers.js';
11
11
  export { cleanObject as cleanObjectSafe } from './safe-json.js';
12
12
  export { UnrealCommandQueue } from './unreal-command-queue.js';
13
- export { sanitizeCommandArgument, sanitizeAssetName, sanitizePath, validatePathLength, validateAssetParams, ensureVector3, concurrencyDelay, ensureColorRGB, ensureRotation, } from './validation.js';
13
+ export { sanitizeCommandArgument, sanitizeAssetName, normalizeAndSanitizeAssetPath, sanitizePath, validatePathLength, validateAssetParams, ensureVector3, concurrencyDelay, ensureColorRGB, ensureRotation, } from './validation.js';
14
14
  export { TOOL_ACTIONS, ACTOR_ACTIONS, INPUT_ACTIONS, } from './action-constants.js';
15
15
  export { toNumber, toBoolean, toString, toVec3Array, toRotArray, toColor3, toLocationObj, toRotationObj, validateAudioParams, normalizeName, } from './type-coercion.js';
16
+ export { isRecord } from './type-guards.js';
16
17
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAO1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAG3D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIjE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AASrC,OAAO,EACL,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAI/E,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,yBAAyB,EACzB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,GAId,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,WAAW,EACX,UAAU,EACV,QAAQ,EACR,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,aAAa,GACd,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAO1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAG3D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIjE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AASrC,OAAO,EACL,YAAY,EACZ,WAAW,EACX,WAAW,EACX,UAAU,EACV,cAAc,EACd,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAI/E,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,yBAAyB,EACzB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,6BAA6B,EAC7B,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,GAId,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,WAAW,EACX,UAAU,EACV,QAAQ,EACR,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
@@ -1,9 +1,9 @@
1
- import fs from 'fs/promises';
2
- import path from 'path';
1
+ import fs from 'node:fs/promises';
2
+ import path from 'node:path';
3
3
  export async function readIniFile(filePath) {
4
4
  try {
5
5
  const content = await fs.readFile(filePath, 'utf-8');
6
- const result = {};
6
+ const result = Object.create(null);
7
7
  let currentSection = '';
8
8
  const lines = content.split(/\r?\n/);
9
9
  for (const line of lines) {
@@ -13,7 +13,7 @@ export async function readIniFile(filePath) {
13
13
  }
14
14
  if (trimmed.startsWith('[') && trimmed.endsWith(']')) {
15
15
  currentSection = trimmed.substring(1, trimmed.length - 1);
16
- result[currentSection] = {};
16
+ result[currentSection] = Object.create(null);
17
17
  }
18
18
  else if (currentSection) {
19
19
  const parts = trimmed.split('=');
@@ -1 +1 @@
1
- {"version":3,"file":"ini-reader.js","sourceRoot":"","sources":["../../src/utils/ini-reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ini-reader.js","sourceRoot":"","sources":["../../src/utils/ini-reader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ type ReadLogParams = {
2
+ filterCategory?: string[];
3
+ filterLevel?: 'Error' | 'Warning' | 'Log' | 'Verbose' | 'VeryVerbose' | 'All';
4
+ lines?: number;
5
+ logPath?: string;
6
+ includePrefixes?: string[];
7
+ excludeCategories?: string[];
8
+ };
9
+ type LogEntry = {
10
+ timestamp?: string;
11
+ category?: string;
12
+ level?: string;
13
+ message: string;
14
+ };
15
+ export declare function readOutputLog(params: ReadLogParams): Promise<{
16
+ success: boolean;
17
+ error: string;
18
+ logPath?: undefined;
19
+ entries?: undefined;
20
+ filteredCount?: undefined;
21
+ } | {
22
+ success: boolean;
23
+ logPath: string;
24
+ entries: LogEntry[];
25
+ filteredCount: number;
26
+ error?: undefined;
27
+ }>;
28
+ export {};
29
+ //# sourceMappingURL=log-reader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-reader.d.ts","sourceRoot":"","sources":["../../src/utils/log-reader.ts"],"names":[],"mappings":"AAKA,KAAK,aAAa,GAAG;IACnB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,aAAa,GAAG,KAAK,CAAC;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,KAAK,QAAQ,GAAG;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA6LF,wBAAsB,aAAa,CAAC,MAAM,EAAE,aAAa;;;;;;;;;;;;GAwCxD"}
@@ -0,0 +1,229 @@
1
+ import { promises as fs } from 'node:fs';
2
+ import path from 'node:path';
3
+ import { loadEnv } from '../types/env.js';
4
+ import { Logger } from './logger.js';
5
+ const log = new Logger('LogReader');
6
+ let cachedLogPath;
7
+ function getProjectRoot(projectPath) {
8
+ const trimmed = typeof projectPath === 'string' ? projectPath.trim() : '';
9
+ if (trimmed.length === 0)
10
+ return undefined;
11
+ return trimmed.toLowerCase().endsWith('.uproject') ? path.dirname(trimmed) : trimmed;
12
+ }
13
+ async function getRealAllowedLogDirs() {
14
+ const allowedDirs = [path.resolve(path.join(process.cwd(), 'Saved', 'Logs'))];
15
+ const projectRoot = getProjectRoot(loadEnv().UE_PROJECT_PATH);
16
+ if (projectRoot) {
17
+ allowedDirs.push(path.resolve(path.join(projectRoot, 'Saved', 'Logs')));
18
+ }
19
+ return (await Promise.all(allowedDirs.map(dir => realpathIfReadable(dir))))
20
+ .filter((dir) => dir !== undefined);
21
+ }
22
+ async function resolveAllowedLogFile(candidatePath) {
23
+ const realCandidate = await realpathIfReadable(path.resolve(candidatePath));
24
+ if (!realCandidate || !realCandidate.toLowerCase().endsWith('.log'))
25
+ return undefined;
26
+ const realAllowedDirs = await getRealAllowedLogDirs();
27
+ if (!realAllowedDirs.some(dir => isPathWithin(realCandidate, dir)))
28
+ return undefined;
29
+ const st = await fs.stat(realCandidate);
30
+ return st.isFile() ? realCandidate : undefined;
31
+ }
32
+ function isPathWithin(candidate, directory) {
33
+ const directoryWithSep = directory.endsWith(path.sep) ? directory : directory + path.sep;
34
+ return candidate === directory || candidate.startsWith(directoryWithSep);
35
+ }
36
+ async function realpathIfReadable(targetPath) {
37
+ try {
38
+ return await fs.realpath(targetPath);
39
+ }
40
+ catch {
41
+ return undefined;
42
+ }
43
+ }
44
+ async function resolveLogPath(override) {
45
+ if (override && typeof override === 'string' && override.trim()) {
46
+ if (!override.toLowerCase().endsWith('.log')) {
47
+ log.warn(`Blocked attempt to read non-log file: ${override}`);
48
+ return undefined;
49
+ }
50
+ const realOverride = await resolveAllowedLogFile(override);
51
+ if (!realOverride) {
52
+ log.warn(`Blocked attempt to read log from unauthorized location: ${override}`);
53
+ return undefined;
54
+ }
55
+ cachedLogPath = realOverride;
56
+ return cachedLogPath;
57
+ }
58
+ if (cachedLogPath) {
59
+ const safeCachedPath = await resolveAllowedLogFile(cachedLogPath);
60
+ if (safeCachedPath) {
61
+ cachedLogPath = safeCachedPath;
62
+ return cachedLogPath;
63
+ }
64
+ cachedLogPath = undefined;
65
+ }
66
+ const projectRoot = getProjectRoot(loadEnv().UE_PROJECT_PATH);
67
+ if (projectRoot) {
68
+ const envLog = await findLatestLogInDir(path.join(projectRoot, 'Saved', 'Logs'));
69
+ if (envLog) {
70
+ return envLog;
71
+ }
72
+ }
73
+ return await findLatestLogInDir(path.join(process.cwd(), 'Saved', 'Logs'));
74
+ }
75
+ async function findLatestLogInDir(dir) {
76
+ if (!dir)
77
+ return undefined;
78
+ try {
79
+ const realDir = await realpathIfReadable(dir);
80
+ if (!realDir)
81
+ return undefined;
82
+ const entries = await fs.readdir(realDir);
83
+ const logFiles = entries.filter(name => name.toLowerCase().endsWith('.log'));
84
+ if (logFiles.length === 0)
85
+ return undefined;
86
+ const stats = await Promise.all(logFiles.map(async (name) => {
87
+ const fp = path.join(realDir, name);
88
+ try {
89
+ const realFile = await realpathIfReadable(fp);
90
+ if (!realFile || !isPathWithin(realFile, realDir))
91
+ return null;
92
+ const st = await fs.stat(realFile);
93
+ if (!st.isFile())
94
+ return null;
95
+ return { p: realFile, m: st.mtimeMs };
96
+ }
97
+ catch {
98
+ return null;
99
+ }
100
+ }));
101
+ const candidates = stats.filter((s) => s !== null);
102
+ if (candidates.length) {
103
+ candidates.sort((a, b) => b.m - a.m);
104
+ cachedLogPath = candidates[0].p;
105
+ return cachedLogPath;
106
+ }
107
+ }
108
+ catch (error) {
109
+ log.debug('Unable to scan log directory', { dir, error });
110
+ }
111
+ return undefined;
112
+ }
113
+ async function tailFile(filePath, maxLines) {
114
+ const handle = await fs.open(filePath, 'r');
115
+ try {
116
+ const stat = await handle.stat();
117
+ const chunkSize = 128 * 1024;
118
+ let position = stat.size;
119
+ let remaining = '';
120
+ const lines = [];
121
+ while (position > 0 && lines.length < maxLines) {
122
+ const readSize = Math.min(chunkSize, position);
123
+ position -= readSize;
124
+ const buf = Buffer.alloc(readSize);
125
+ await handle.read(buf, 0, readSize, position);
126
+ remaining = buf.toString('utf8') + remaining;
127
+ const parts = remaining.split(/\r?\n/);
128
+ remaining = parts.shift() || '';
129
+ while (parts.length) {
130
+ const line = parts.pop();
131
+ if (line === undefined)
132
+ break;
133
+ if (line.length === 0)
134
+ continue;
135
+ lines.unshift(line);
136
+ if (lines.length >= maxLines)
137
+ break;
138
+ }
139
+ }
140
+ if (lines.length < maxLines && remaining) {
141
+ lines.unshift(remaining);
142
+ }
143
+ return lines.slice(0, maxLines).join('\n');
144
+ }
145
+ finally {
146
+ try {
147
+ await handle.close();
148
+ }
149
+ catch (error) {
150
+ log.debug('Failed to close log file handle', { filePath, error });
151
+ }
152
+ }
153
+ }
154
+ function parseLine(line) {
155
+ const m1 = line.match(/^\[?(\d{4}\.\d{2}\.\d{2}-\d{2}\.\d{2}\.\d{2}:\d+)\]?\s*\[(.*?)\]\s*(.*)$/);
156
+ if (m1) {
157
+ const rest = m1[3];
158
+ const m2 = rest.match(/^(\w+):\s*(Error|Warning|Display|Log|Verbose|VeryVerbose):\s*(.*)$/);
159
+ if (m2) {
160
+ return { timestamp: m1[1], category: m2[1], level: m2[2] === 'Display' ? 'Log' : m2[2], message: m2[3] };
161
+ }
162
+ const m3 = rest.match(/^(\w+):\s*(.*)$/);
163
+ if (m3) {
164
+ return { timestamp: m1[1], category: m3[1], level: 'Log', message: m3[2] };
165
+ }
166
+ return { timestamp: m1[1], message: rest };
167
+ }
168
+ const m = line.match(/^(\w+):\s*(Error|Warning|Display|Log|Verbose|VeryVerbose):\s*(.*)$/);
169
+ if (m) {
170
+ return { category: m[1], level: m[2] === 'Display' ? 'Log' : m[2], message: m[3] };
171
+ }
172
+ const mAlt = line.match(/^(\w+):\s*(.*)$/);
173
+ if (mAlt) {
174
+ return { category: mAlt[1], level: 'Log', message: mAlt[2] };
175
+ }
176
+ return { message: line };
177
+ }
178
+ function isInternalLogEntry(entry) {
179
+ const category = entry.category?.toLowerCase() || '';
180
+ const message = entry.message?.trim() || '';
181
+ return (category === 'logpython' && message.startsWith('RESULT:')) ||
182
+ (!entry.category && message.startsWith('[') && message.includes('LogPython: RESULT:'));
183
+ }
184
+ export async function readOutputLog(params) {
185
+ const target = await resolveLogPath(params.logPath);
186
+ if (!target) {
187
+ return { success: false, error: 'Log file not found' };
188
+ }
189
+ const maxLines = typeof params.lines === 'number' && params.lines > 0 ? Math.min(params.lines, 2000) : 200;
190
+ let text = '';
191
+ try {
192
+ text = await tailFile(target, maxLines);
193
+ }
194
+ catch (error) {
195
+ const errObj = error;
196
+ return { success: false, error: String(errObj?.message || error) };
197
+ }
198
+ const parsed = text.split(/\r?\n/).filter(line => line.length > 0).map(line => parseLine(line));
199
+ const mappedLevel = params.filterLevel || 'All';
200
+ const includeCats = Array.isArray(params.filterCategory) && params.filterCategory.length ? new Set(params.filterCategory) : undefined;
201
+ const includePrefixes = Array.isArray(params.includePrefixes) && params.includePrefixes.length ? params.includePrefixes : undefined;
202
+ const excludeCats = Array.isArray(params.excludeCategories) && params.excludeCategories.length ? new Set(params.excludeCategories) : undefined;
203
+ const filtered = parsed.filter(entry => {
204
+ if (mappedLevel && mappedLevel !== 'All') {
205
+ const level = entry.level || 'Log';
206
+ if (level === 'Display') {
207
+ if (mappedLevel !== 'Log')
208
+ return false;
209
+ }
210
+ else if (level !== mappedLevel) {
211
+ return false;
212
+ }
213
+ }
214
+ if (includeCats && entry.category && !includeCats.has(entry.category))
215
+ return false;
216
+ if (includePrefixes && includePrefixes.length && entry.category) {
217
+ if (!includePrefixes.some(prefix => (entry.category ?? '').startsWith(prefix)))
218
+ return false;
219
+ }
220
+ if (excludeCats && entry.category && excludeCats.has(entry.category))
221
+ return false;
222
+ return true;
223
+ });
224
+ const includeInternal = Boolean((includeCats && includeCats.has('LogPython')) ||
225
+ (includePrefixes && includePrefixes.some(prefix => 'LogPython'.startsWith(prefix))));
226
+ const sanitized = includeInternal ? filtered : filtered.filter(entry => !isInternalLogEntry(entry));
227
+ return { success: true, logPath: target.replace(/\\/g, '/'), entries: sanitized, filteredCount: sanitized.length };
228
+ }
229
+ //# sourceMappingURL=log-reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-reader.js","sourceRoot":"","sources":["../../src/utils/log-reader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const REDACTED_IMAGE_PAYLOAD = "<omitted; see image content>";
2
+ export declare function redactImagePayloadForLog(value: unknown): unknown;
3
+ export declare function redactImagePayloadTextForLog(text: string): string;
4
+ //# sourceMappingURL=log-redaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-redaction.d.ts","sourceRoot":"","sources":["../../src/utils/log-redaction.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,iCAAiC,CAAC;AAErE,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAqBhE;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIjE"}
@@ -0,0 +1,27 @@
1
+ import { isRecord } from './type-guards.js';
2
+ export const REDACTED_IMAGE_PAYLOAD = '<omitted; see image content>';
3
+ export function redactImagePayloadForLog(value) {
4
+ if (Array.isArray(value)) {
5
+ return value.map(item => redactImagePayloadForLog(item));
6
+ }
7
+ if (!isRecord(value)) {
8
+ return value;
9
+ }
10
+ const redacted = {};
11
+ const isImageContent = value.type === 'image';
12
+ for (const [key, child] of Object.entries(value)) {
13
+ if (key === 'imageBase64' || (isImageContent && key === 'data' && typeof child === 'string')) {
14
+ redacted[key] = REDACTED_IMAGE_PAYLOAD;
15
+ }
16
+ else {
17
+ redacted[key] = redactImagePayloadForLog(child);
18
+ }
19
+ }
20
+ return redacted;
21
+ }
22
+ export function redactImagePayloadTextForLog(text) {
23
+ return text
24
+ .replace(/("imageBase64"\s*:\s*")([^"]*)(")/g, `$1${REDACTED_IMAGE_PAYLOAD}$3`)
25
+ .replace(/("data"\s*:\s*")([^"]*)(")/g, `$1${REDACTED_IMAGE_PAYLOAD}$3`);
26
+ }
27
+ //# sourceMappingURL=log-redaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-redaction.js","sourceRoot":"","sources":["../../src/utils/log-redaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,CAAC,MAAM,sBAAsB,GAAG,8BAA8B,CAAC;AAErE,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAC7C,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;IAE9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,IAAI,GAAG,KAAK,aAAa,IAAI,CAAC,cAAc,IAAI,GAAG,KAAK,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE,CAAC;YAC7F,QAAQ,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC;QACzC,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,GAAG,CAAC,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,IAAY;IACvD,OAAO,IAAI;SACR,OAAO,CAAC,oCAAoC,EAAE,KAAK,sBAAsB,IAAI,CAAC;SAC9E,OAAO,CAAC,6BAA6B,EAAE,KAAK,sBAAsB,IAAI,CAAC,CAAC;AAC7E,CAAC"}
@@ -4,6 +4,7 @@ export declare class Logger {
4
4
  private level;
5
5
  constructor(scope: string, level?: LogLevel);
6
6
  private shouldLog;
7
+ isEnabled(level: LogLevel): boolean;
7
8
  debug(...args: unknown[]): void;
8
9
  info(...args: unknown[]): void;
9
10
  warn(...args: unknown[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,qBAAa,MAAM;IAGL,OAAO,CAAC,KAAK;IAFzB,OAAO,CAAC,KAAK,CAAW;gBAEJ,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,QAAiB;IAO3D,OAAO,CAAC,SAAS;IAKjB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAKxB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAKvB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAIvB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;CAGzB"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAoB3D,qBAAa,MAAM;IAGL,OAAO,CAAC,KAAK;IAFzB,OAAO,CAAC,KAAK,CAAW;gBAEJ,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,QAAiB;IAI3D,OAAO,CAAC,SAAS;IAIjB,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAInC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAKxB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAKvB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;IAIvB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE;CAGzB"}
@@ -1,16 +1,29 @@
1
+ const LOG_LEVEL_ORDER = {
2
+ debug: 0,
3
+ info: 1,
4
+ warn: 2,
5
+ error: 3
6
+ };
7
+ const LOG_LEVELS = new Set(['debug', 'info', 'warn', 'error']);
8
+ function normalizeLogLevel(value, fallback) {
9
+ const normalized = typeof value === 'string' ? value.trim().toLowerCase() : '';
10
+ if (LOG_LEVELS.has(normalized)) {
11
+ return normalized;
12
+ }
13
+ return fallback;
14
+ }
1
15
  export class Logger {
2
16
  scope;
3
17
  level;
4
18
  constructor(scope, level = 'info') {
5
19
  this.scope = scope;
6
- const envLevel = (process.env.LOG_LEVEL || process.env.LOGLEVEL || level).toString().toLowerCase();
7
- this.level = ['debug', 'info', 'warn', 'error'].includes(envLevel)
8
- ? envLevel
9
- : 'info';
20
+ this.level = normalizeLogLevel(process.env.LOG_LEVEL ?? process.env.LOGLEVEL, level);
10
21
  }
11
22
  shouldLog(level) {
12
- const order = ['debug', 'info', 'warn', 'error'];
13
- return order.indexOf(level) >= order.indexOf(this.level);
23
+ return LOG_LEVEL_ORDER[level] >= LOG_LEVEL_ORDER[this.level];
24
+ }
25
+ isEnabled(level) {
26
+ return this.shouldLog(level);
14
27
  }
15
28
  debug(...args) {
16
29
  if (!this.shouldLog('debug'))
@@ -25,7 +38,7 @@ export class Logger {
25
38
  warn(...args) {
26
39
  if (!this.shouldLog('warn'))
27
40
  return;
28
- console.warn(`[${this.scope}]`, ...args);
41
+ console.error(`[${this.scope}]`, ...args);
29
42
  }
30
43
  error(...args) {
31
44
  if (this.shouldLog('error'))
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,MAAM;IAGG;IAFZ,KAAK,CAAW;IAExB,YAAoB,KAAa,EAAE,QAAkB,MAAM;QAAvC,UAAK,GAAL,KAAK,CAAQ;QAC/B,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;QACnG,IAAI,CAAC,KAAK,GAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAgB,CAAC,QAAQ,CAAC,QAAoB,CAAC;YAC5F,CAAC,CAAE,QAAqB;YACxB,CAAC,CAAC,MAAM,CAAC;IACb,CAAC;IAEO,SAAS,CAAC,KAAe;QAC/B,MAAM,KAAK,GAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7D,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,GAAG,IAAe;QACtB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAAE,OAAO;QAErC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,GAAG,IAAe;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAAE,OAAO;QAEpC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,GAAG,IAAe;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAAE,OAAO;QACpC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,CAAC,GAAG,IAAe;QACtB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAAE,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACzE,CAAC;CACF"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GAA6B;IAChD,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAEzE,SAAS,iBAAiB,CAAC,KAAc,EAAE,QAAkB;IAC3D,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/E,IAAI,UAAU,CAAC,GAAG,CAAC,UAAsB,CAAC,EAAE,CAAC;QAC3C,OAAO,UAAsB,CAAC;IAChC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,OAAO,MAAM;IAGG;IAFZ,KAAK,CAAW;IAExB,YAAoB,KAAa,EAAE,QAAkB,MAAM;QAAvC,UAAK,GAAL,KAAK,CAAQ;QAC/B,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACvF,CAAC;IAEO,SAAS,CAAC,KAAe;QAC/B,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,SAAS,CAAC,KAAe;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,GAAG,IAAe;QACtB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAAE,OAAO;QAErC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,GAAG,IAAe;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAAE,OAAO;QAEpC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,GAAG,IAAe;QACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAAE,OAAO;QACpC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5C,CAAC;IACD,KAAK,CAAC,GAAG,IAAe;QACtB,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAAE,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACzE,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/utils/normalize.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IAAG,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;CAAE;AAC7D,MAAM,WAAW,OAAO;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;CAAE;AAEtE,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACjD,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAGjD,KAAK,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;AAG7E,KAAK,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;AAM/E,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,CAmBzE;AAMD,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,CAmB1E;AAKD,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAO1E;AAKD,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAO3E;AAMD,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAS/D;AAOD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,GAAE,MAAM,EAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAsBpI;AAMD,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAW/F"}
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/utils/normalize.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IAAG,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;CAAE;AAC7D,MAAM,WAAW,OAAO;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;CAAE;AAEtE,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACjD,MAAM,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAGjD,KAAK,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;AAG7E,KAAK,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,CAAC;AAU/E,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,CAmBzE;AAMD,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,CAmB1E;AAKD,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAO1E;AAKD,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAO3E;AAMD,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAS/D;AAOD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,GAAE,MAAM,EAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAsBpI;AAMD,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAW/F"}
@@ -1,43 +1,44 @@
1
+ function coerceFiniteNumber(value) {
2
+ return toFiniteNumber(value);
3
+ }
1
4
  export function toVec3Object(input) {
2
- try {
3
- if (Array.isArray(input) && input.length === 3) {
4
- const [x, y, z] = input;
5
- if ([x, y, z].every(v => typeof v === 'number' && isFinite(v))) {
6
- return { x: x, y: y, z: z };
7
- }
5
+ if (Array.isArray(input) && input.length === 3) {
6
+ const x = coerceFiniteNumber(input[0]);
7
+ const y = coerceFiniteNumber(input[1]);
8
+ const z = coerceFiniteNumber(input[2]);
9
+ if (x !== undefined && y !== undefined && z !== undefined) {
10
+ return { x, y, z };
8
11
  }
9
- if (input && typeof input === 'object' && !Array.isArray(input)) {
10
- const obj = input;
11
- const x = Number(obj.x ?? obj.X);
12
- const y = Number(obj.y ?? obj.Y);
13
- const z = Number(obj.z ?? obj.Z);
14
- if ([x, y, z].every(v => typeof v === 'number' && !isNaN(v) && isFinite(v))) {
15
- return { x, y, z };
16
- }
12
+ }
13
+ if (input && typeof input === 'object' && !Array.isArray(input)) {
14
+ const obj = input;
15
+ const x = coerceFiniteNumber(obj.x ?? obj.X);
16
+ const y = coerceFiniteNumber(obj.y ?? obj.Y);
17
+ const z = coerceFiniteNumber(obj.z ?? obj.Z);
18
+ if (x !== undefined && y !== undefined && z !== undefined) {
19
+ return { x, y, z };
17
20
  }
18
21
  }
19
- catch { }
20
22
  return null;
21
23
  }
22
24
  export function toRotObject(input) {
23
- try {
24
- if (Array.isArray(input) && input.length === 3) {
25
- const [pitch, yaw, roll] = input;
26
- if ([pitch, yaw, roll].every(v => typeof v === 'number' && isFinite(v))) {
27
- return { pitch: pitch, yaw: yaw, roll: roll };
28
- }
25
+ if (Array.isArray(input) && input.length === 3) {
26
+ const pitch = coerceFiniteNumber(input[0]);
27
+ const yaw = coerceFiniteNumber(input[1]);
28
+ const roll = coerceFiniteNumber(input[2]);
29
+ if (pitch !== undefined && yaw !== undefined && roll !== undefined) {
30
+ return { pitch, yaw, roll };
29
31
  }
30
- if (input && typeof input === 'object' && !Array.isArray(input)) {
31
- const obj = input;
32
- const pitch = Number(obj.pitch ?? obj.Pitch);
33
- const yaw = Number(obj.yaw ?? obj.Yaw);
34
- const roll = Number(obj.roll ?? obj.Roll);
35
- if ([pitch, yaw, roll].every(v => typeof v === 'number' && !isNaN(v) && isFinite(v))) {
36
- return { pitch, yaw, roll };
37
- }
32
+ }
33
+ if (input && typeof input === 'object' && !Array.isArray(input)) {
34
+ const obj = input;
35
+ const pitch = coerceFiniteNumber(obj.pitch ?? obj.Pitch);
36
+ const yaw = coerceFiniteNumber(obj.yaw ?? obj.Yaw);
37
+ const roll = coerceFiniteNumber(obj.roll ?? obj.Roll);
38
+ if (pitch !== undefined && yaw !== undefined && roll !== undefined) {
39
+ return { pitch, yaw, roll };
38
40
  }
39
41
  }
40
- catch { }
41
42
  return null;
42
43
  }
43
44
  export function toVec3Tuple(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/utils/normalize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/utils/normalize.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"path-security.d.ts","sourceRoot":"","sources":["../../src/utils/path-security.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAqE1E"}
1
+ {"version":3,"file":"path-security.d.ts","sourceRoot":"","sources":["../../src/utils/path-security.ts"],"names":[],"mappings":"AA6BA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAoD1E"}