unreal-engine-mcp-server 0.5.19 → 0.5.21

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 (73) hide show
  1. package/CHANGELOG.md +132 -0
  2. package/README.md +5 -0
  3. package/dist/config.d.ts +2 -0
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +19 -0
  6. package/dist/config.js.map +1 -1
  7. package/dist/index.js +1 -1
  8. package/dist/tools/consolidated-tool-definitions.d.ts.map +1 -1
  9. package/dist/tools/consolidated-tool-definitions.js +21 -16
  10. package/dist/tools/consolidated-tool-definitions.js.map +1 -1
  11. package/dist/tools/consolidated-tool-handlers.js +1 -3
  12. package/dist/tools/consolidated-tool-handlers.js.map +1 -1
  13. package/dist/tools/dynamic-tool-manager.d.ts +1 -1
  14. package/dist/tools/dynamic-tool-manager.d.ts.map +1 -1
  15. package/dist/tools/dynamic-tool-manager.js +48 -1
  16. package/dist/tools/dynamic-tool-manager.js.map +1 -1
  17. package/dist/tools/handlers/animation-authoring-handlers.d.ts.map +1 -1
  18. package/dist/tools/handlers/animation-authoring-handlers.js +266 -43
  19. package/dist/tools/handlers/animation-authoring-handlers.js.map +1 -1
  20. package/dist/tools/handlers/animation-handlers.d.ts.map +1 -1
  21. package/dist/tools/handlers/animation-handlers.js +289 -34
  22. package/dist/tools/handlers/animation-handlers.js.map +1 -1
  23. package/dist/tools/handlers/asset-handlers.d.ts.map +1 -1
  24. package/dist/tools/handlers/asset-handlers.js +10 -4
  25. package/dist/tools/handlers/asset-handlers.js.map +1 -1
  26. package/dist/tools/handlers/audio-handlers.d.ts.map +1 -1
  27. package/dist/tools/handlers/audio-handlers.js +66 -26
  28. package/dist/tools/handlers/audio-handlers.js.map +1 -1
  29. package/dist/tools/handlers/common-handlers.d.ts +1 -0
  30. package/dist/tools/handlers/common-handlers.d.ts.map +1 -1
  31. package/dist/tools/handlers/common-handlers.js +13 -3
  32. package/dist/tools/handlers/common-handlers.js.map +1 -1
  33. package/dist/tools/handlers/editor-handlers.d.ts.map +1 -1
  34. package/dist/tools/handlers/editor-handlers.js +18 -7
  35. package/dist/tools/handlers/editor-handlers.js.map +1 -1
  36. package/dist/tools/handlers/effect-handlers.d.ts.map +1 -1
  37. package/dist/tools/handlers/effect-handlers.js +91 -69
  38. package/dist/tools/handlers/effect-handlers.js.map +1 -1
  39. package/dist/tools/handlers/gas-handlers.d.ts.map +1 -1
  40. package/dist/tools/handlers/gas-handlers.js +35 -22
  41. package/dist/tools/handlers/gas-handlers.js.map +1 -1
  42. package/dist/tools/handlers/inspect-handlers.d.ts.map +1 -1
  43. package/dist/tools/handlers/inspect-handlers.js +6 -2
  44. package/dist/tools/handlers/inspect-handlers.js.map +1 -1
  45. package/dist/tools/handlers/inventory-handlers.js +7 -7
  46. package/dist/tools/handlers/inventory-handlers.js.map +1 -1
  47. package/dist/tools/handlers/manage-tools-handlers.js +2 -2
  48. package/dist/tools/handlers/manage-tools-handlers.js.map +1 -1
  49. package/dist/tools/handlers/performance-handlers.d.ts.map +1 -1
  50. package/dist/tools/handlers/performance-handlers.js +11 -29
  51. package/dist/tools/handlers/performance-handlers.js.map +1 -1
  52. package/dist/tools/handlers/pipeline-handlers.d.ts.map +1 -1
  53. package/dist/tools/handlers/pipeline-handlers.js +140 -13
  54. package/dist/tools/handlers/pipeline-handlers.js.map +1 -1
  55. package/dist/tools/handlers/sequence-handlers.d.ts.map +1 -1
  56. package/dist/tools/handlers/sequence-handlers.js +27 -0
  57. package/dist/tools/handlers/sequence-handlers.js.map +1 -1
  58. package/dist/tools/handlers/system-handlers.d.ts.map +1 -1
  59. package/dist/tools/handlers/system-handlers.js +10 -5
  60. package/dist/tools/handlers/system-handlers.js.map +1 -1
  61. package/dist/tools/handlers/widget-authoring-handlers.d.ts.map +1 -1
  62. package/dist/tools/handlers/widget-authoring-handlers.js +21 -5
  63. package/dist/tools/handlers/widget-authoring-handlers.js.map +1 -1
  64. package/dist/tools/schemas/core-tools.js +1 -1
  65. package/dist/tools/schemas/core-tools.js.map +1 -1
  66. package/dist/utils/path-security.d.ts.map +1 -1
  67. package/dist/utils/path-security.js +18 -1
  68. package/dist/utils/path-security.js.map +1 -1
  69. package/dist/utils/validation.d.ts.map +1 -1
  70. package/dist/utils/validation.js +5 -2
  71. package/dist/utils/validation.js.map +1 -1
  72. package/package.json +25 -2
  73. package/server.json +2 -2
@@ -1,14 +1,64 @@
1
1
  import { cleanObject } from '../../utils/safe-json.js';
2
2
  import { executeAutomationRequest } from './common-handlers.js';
3
+ import { normalizeArgs } from './argument-helper.js';
3
4
  import { TOOL_ACTIONS } from '../../utils/action-constants.js';
5
+ import { sanitizePath } from '../../utils/path-security.js';
4
6
  export async function handleAnimationTools(action, args, tools) {
5
7
  const argsTyped = args;
6
8
  const animAction = String(action || '').toLowerCase();
9
+ const allPathParams = [
10
+ 'path', 'savePath', 'skeletonPath', 'skeletalMeshPath', 'sourceSkeleton', 'targetSkeleton',
11
+ 'assetPath', 'animationPath', 'blueprintPath', 'retargeterPath', 'meshPath', 'montagePath',
12
+ 'animSequencePath', 'animPath', 'animAssetPath', 'animMontagePath', 'blendSpacePath', 'rigPath'
13
+ ];
14
+ for (const param of allPathParams) {
15
+ const value = args[param];
16
+ if (value && typeof value === 'string') {
17
+ try {
18
+ sanitizePath(value);
19
+ }
20
+ catch (e) {
21
+ return cleanObject({
22
+ success: false,
23
+ error: 'SECURITY_VIOLATION',
24
+ message: e instanceof Error ? e.message : `Invalid ${param}: path traversal or illegal characters detected`
25
+ });
26
+ }
27
+ }
28
+ }
29
+ const artifacts = args.artifacts;
30
+ if (Array.isArray(artifacts)) {
31
+ for (const artifact of artifacts) {
32
+ if (typeof artifact === 'string') {
33
+ try {
34
+ sanitizePath(artifact);
35
+ }
36
+ catch (e) {
37
+ return cleanObject({
38
+ success: false,
39
+ error: 'SECURITY_VIOLATION',
40
+ message: e instanceof Error ? e.message : 'Invalid path in artifacts: path traversal or illegal characters detected'
41
+ });
42
+ }
43
+ }
44
+ }
45
+ }
7
46
  if (animAction === 'create_animation_blueprint' || animAction === 'create_anim_blueprint' || animAction === 'create_animation_bp') {
8
47
  const name = argsTyped.name ?? argsTyped.blueprintName;
9
48
  const skeletonPath = argsTyped.skeletonPath ?? argsTyped.targetSkeleton;
10
49
  let meshPath = argsTyped.meshPath;
11
- const savePath = argsTyped.savePath ?? argsTyped.path ?? '/Game/Animations';
50
+ let savePath;
51
+ try {
52
+ const rawPath = String(argsTyped.savePath ?? argsTyped.path ?? '/Game/Animations');
53
+ savePath = sanitizePath(rawPath);
54
+ }
55
+ catch (e) {
56
+ return cleanObject({
57
+ success: false,
58
+ error: 'SECURITY_VIOLATION',
59
+ message: e instanceof Error ? e.message : 'Invalid path: path traversal or illegal characters detected'
60
+ });
61
+ }
12
62
  if (!skeletonPath && argsTyped.actorName) {
13
63
  try {
14
64
  const compsRes = await executeAutomationRequest(tools, 'control_actor', { action: 'get_components', actorName: argsTyped.actorName });
@@ -104,52 +154,175 @@ export async function handleAnimationTools(action, args, tools) {
104
154
  }
105
155
  switch (animAction) {
106
156
  case 'create_blend_space': {
157
+ let savePath;
158
+ try {
159
+ const rawPath = String(mutableArgs.path || mutableArgs.savePath || '/Game/Animations');
160
+ savePath = sanitizePath(rawPath);
161
+ }
162
+ catch (e) {
163
+ return cleanObject({
164
+ success: false,
165
+ error: 'SECURITY_VIOLATION',
166
+ message: e instanceof Error ? e.message : 'Invalid path: path traversal or illegal characters detected'
167
+ });
168
+ }
107
169
  const payload = {
170
+ action: 'create_blend_space',
108
171
  name: mutableArgs.name,
109
- path: mutableArgs.path || mutableArgs.savePath,
110
- savePath: mutableArgs.savePath || mutableArgs.path,
172
+ path: savePath,
173
+ savePath,
111
174
  skeletonPath: mutableArgs.skeletonPath,
112
175
  horizontalAxis: mutableArgs.horizontalAxis,
113
176
  verticalAxis: mutableArgs.verticalAxis,
114
177
  minX: mutableArgs.minX,
115
178
  maxX: mutableArgs.maxX,
116
179
  minY: mutableArgs.minY,
117
- maxY: mutableArgs.maxY,
118
- subAction: 'create_blend_space'
180
+ maxY: mutableArgs.maxY
119
181
  };
120
182
  const res = await executeAutomationRequest(tools, 'animation_physics', payload, 'Automation bridge not available for blend space creation');
121
183
  return cleanObject(res);
122
184
  }
123
- case 'create_state_machine':
185
+ case 'create_state_machine': {
186
+ let blueprintPath;
187
+ try {
188
+ const rawPath = mutableArgs.blueprintPath || mutableArgs.path || mutableArgs.savePath;
189
+ if (rawPath && typeof rawPath === 'string') {
190
+ blueprintPath = sanitizePath(rawPath);
191
+ }
192
+ }
193
+ catch (e) {
194
+ return cleanObject({
195
+ success: false,
196
+ error: 'SECURITY_VIOLATION',
197
+ message: e instanceof Error ? e.message : 'Invalid path: path traversal or illegal characters detected'
198
+ });
199
+ }
124
200
  return cleanObject(await executeAutomationRequest(tools, TOOL_ACTIONS.ANIMATION_PHYSICS, {
125
- subAction: 'add_state_machine',
201
+ action: 'create_state_machine',
126
202
  machineName: mutableArgs.machineName || mutableArgs.name,
127
203
  states: mutableArgs.states,
128
204
  transitions: mutableArgs.transitions,
129
- blueprintPath: mutableArgs.blueprintPath || mutableArgs.path || mutableArgs.savePath
205
+ blueprintPath
130
206
  }));
131
- case 'setup_ik':
207
+ }
208
+ case 'setup_ik': {
209
+ let savePath;
210
+ try {
211
+ const rawPath = String(mutableArgs.savePath || mutableArgs.path || '/Game/Animations');
212
+ savePath = sanitizePath(rawPath);
213
+ }
214
+ catch (e) {
215
+ return cleanObject({
216
+ success: false,
217
+ error: 'SECURITY_VIOLATION',
218
+ message: e instanceof Error ? e.message : 'Invalid path: path traversal or illegal characters detected'
219
+ });
220
+ }
132
221
  return cleanObject(await executeAutomationRequest(tools, 'animation_physics', {
133
222
  action: 'setup_ik',
223
+ name: mutableArgs.name,
224
+ savePath,
225
+ skeletonPath: mutableArgs.skeletonPath,
134
226
  actorName: mutableArgs.actorName,
135
227
  ikBones: mutableArgs.ikBones,
136
228
  enableFootPlacement: mutableArgs.enableFootPlacement
137
229
  }));
230
+ }
138
231
  case 'create_procedural_anim': {
139
- return cleanObject({
140
- success: false,
141
- isError: true,
142
- error: 'NOT_IMPLEMENTED',
143
- message: 'create_procedural_anim requires engine-side implementation. C++ handler needed.'
144
- });
232
+ const params = normalizeArgs(args, [
233
+ { key: 'name', required: true },
234
+ { key: 'path', aliases: ['directory'], default: '/Game/Animations' },
235
+ { key: 'skeletonPath', required: true },
236
+ { key: 'boneTracks', required: true },
237
+ { key: 'numFrames', default: 30 },
238
+ { key: 'frameRate', default: 30 },
239
+ { key: 'save', default: true }
240
+ ]);
241
+ let savePath;
242
+ let skeletonPath;
243
+ try {
244
+ savePath = sanitizePath(String(params.path || '/Game/Animations'));
245
+ skeletonPath = sanitizePath(String(params.skeletonPath));
246
+ }
247
+ catch (e) {
248
+ return cleanObject({
249
+ success: false,
250
+ error: 'SECURITY_VIOLATION',
251
+ message: e instanceof Error ? e.message : 'Invalid path: path traversal or illegal characters detected'
252
+ });
253
+ }
254
+ if (!Array.isArray(params.boneTracks)) {
255
+ return cleanObject({
256
+ success: false,
257
+ error: 'INVALID_ARGUMENT',
258
+ message: 'boneTracks must be an array of bone track definitions'
259
+ });
260
+ }
261
+ return cleanObject(await executeAutomationRequest(tools, 'animation_physics', {
262
+ action: 'create_procedural_anim',
263
+ subAction: 'create_procedural_anim',
264
+ name: params.name,
265
+ path: savePath,
266
+ savePath,
267
+ skeletonPath,
268
+ boneTracks: params.boneTracks,
269
+ numFrames: params.numFrames,
270
+ frameRate: params.frameRate,
271
+ save: params.save
272
+ }));
145
273
  }
146
274
  case 'create_blend_tree': {
147
- return cleanObject({
148
- success: false,
149
- isError: true,
150
- error: 'NOT_IMPLEMENTED',
151
- message: 'create_blend_tree requires engine-side implementation. C++ handler needed.'
152
- });
275
+ let blueprintPath;
276
+ try {
277
+ const rawPath = mutableArgs.blueprintPath || mutableArgs.path || mutableArgs.savePath;
278
+ if (rawPath && typeof rawPath === 'string') {
279
+ blueprintPath = sanitizePath(rawPath);
280
+ }
281
+ }
282
+ catch (e) {
283
+ return cleanObject({
284
+ success: false,
285
+ error: 'SECURITY_VIOLATION',
286
+ message: e instanceof Error ? e.message : 'Invalid path: path traversal or illegal characters detected'
287
+ });
288
+ }
289
+ if (!blueprintPath) {
290
+ return cleanObject({
291
+ success: false,
292
+ error: 'INVALID_ARGUMENT',
293
+ message: 'blueprintPath is required for create_blend_tree'
294
+ });
295
+ }
296
+ const sanitizedChildren = [];
297
+ if (Array.isArray(mutableArgs.children)) {
298
+ for (const child of mutableArgs.children) {
299
+ if (child && typeof child === 'object' && child.animationPath) {
300
+ try {
301
+ const sanitizedPath = sanitizePath(String(child.animationPath));
302
+ sanitizedChildren.push({ ...child, animationPath: sanitizedPath });
303
+ }
304
+ catch {
305
+ return cleanObject({
306
+ success: false,
307
+ error: 'SECURITY_VIOLATION',
308
+ message: 'Invalid animationPath in children: path traversal or illegal characters detected'
309
+ });
310
+ }
311
+ }
312
+ else {
313
+ sanitizedChildren.push(child);
314
+ }
315
+ }
316
+ }
317
+ const payload = {
318
+ action: 'create_blend_tree',
319
+ blueprintPath,
320
+ treeName: mutableArgs.treeName || mutableArgs.name || 'BlendTree',
321
+ blendParameters: mutableArgs.blendParameters,
322
+ children: sanitizedChildren.length > 0 ? sanitizedChildren : mutableArgs.children,
323
+ save: mutableArgs.save !== false
324
+ };
325
+ return cleanObject(await executeAutomationRequest(tools, TOOL_ACTIONS.ANIMATION_PHYSICS, payload));
153
326
  }
154
327
  case 'cleanup':
155
328
  return cleanObject(await executeAutomationRequest(tools, 'animation_physics', {
@@ -157,6 +330,18 @@ export async function handleAnimationTools(action, args, tools) {
157
330
  artifacts: mutableArgs.artifacts
158
331
  }));
159
332
  case 'create_animation_asset': {
333
+ let savePath;
334
+ try {
335
+ const rawPath = String(mutableArgs.path || mutableArgs.savePath || '/Game/Animations');
336
+ savePath = sanitizePath(rawPath);
337
+ }
338
+ catch (e) {
339
+ return cleanObject({
340
+ success: false,
341
+ error: 'SECURITY_VIOLATION',
342
+ message: e instanceof Error ? e.message : 'Invalid path: path traversal or illegal characters detected'
343
+ });
344
+ }
160
345
  let assetType = mutableArgs.assetType;
161
346
  if (!assetType && mutableArgs.name) {
162
347
  if (mutableArgs.name.toLowerCase().endsWith('montage') || mutableArgs.name.toLowerCase().includes('montage')) {
@@ -166,35 +351,105 @@ export async function handleAnimationTools(action, args, tools) {
166
351
  return cleanObject(await executeAutomationRequest(tools, 'animation_physics', {
167
352
  action: 'create_animation_asset',
168
353
  name: mutableArgs.name,
169
- savePath: mutableArgs.path || mutableArgs.savePath,
354
+ savePath,
170
355
  skeletonPath: mutableArgs.skeletonPath,
171
356
  assetType
172
357
  }));
173
358
  }
174
- case 'add_notify':
359
+ case 'add_notify': {
360
+ let assetPath;
361
+ try {
362
+ const rawPath = mutableArgs.animationPath || mutableArgs.assetPath;
363
+ if (rawPath && typeof rawPath === 'string') {
364
+ assetPath = sanitizePath(rawPath);
365
+ }
366
+ }
367
+ catch (e) {
368
+ return cleanObject({
369
+ success: false,
370
+ error: 'SECURITY_VIOLATION',
371
+ message: e instanceof Error ? e.message : 'Invalid path: path traversal or illegal characters detected'
372
+ });
373
+ }
175
374
  return cleanObject(await executeAutomationRequest(tools, 'animation_physics', {
176
375
  action: 'add_notify',
177
- assetPath: mutableArgs.animationPath || mutableArgs.assetPath,
376
+ assetPath,
178
377
  notifyName: mutableArgs.notifyName || mutableArgs.name,
179
378
  time: mutableArgs.time ?? mutableArgs.startTime
180
379
  }));
181
- case 'configure_vehicle':
380
+ }
381
+ case 'configure_vehicle': {
382
+ const params = normalizeArgs(args, [
383
+ { key: 'actorName', required: true },
384
+ { key: 'vehicleType', default: 'WheeledVehicle4W' },
385
+ { key: 'wheels' },
386
+ { key: 'engine' },
387
+ { key: 'transmission' },
388
+ { key: 'mass', default: 1500 },
389
+ { key: 'dragCoefficient', default: 0.3 }
390
+ ]);
182
391
  return cleanObject(await executeAutomationRequest(tools, 'animation_physics', {
183
392
  action: 'configure_vehicle',
184
- vehicleName: mutableArgs.vehicleName,
185
- vehicleType: mutableArgs.vehicleType,
186
- wheels: mutableArgs.wheels,
187
- engine: mutableArgs.engine,
188
- transmission: mutableArgs.transmission
393
+ subAction: 'configure_vehicle',
394
+ actorName: params.actorName,
395
+ vehicleType: params.vehicleType,
396
+ wheels: params.wheels,
397
+ engine: params.engine,
398
+ transmission: params.transmission,
399
+ mass: params.mass,
400
+ dragCoefficient: params.dragCoefficient
189
401
  }));
402
+ }
190
403
  case 'setup_physics_simulation': {
404
+ let savePath;
405
+ try {
406
+ const rawSavePath = mutableArgs.savePath;
407
+ if (rawSavePath && typeof rawSavePath === 'string') {
408
+ savePath = sanitizePath(rawSavePath);
409
+ }
410
+ }
411
+ catch (e) {
412
+ return cleanObject({
413
+ success: false,
414
+ error: 'SECURITY_VIOLATION',
415
+ message: e instanceof Error ? e.message : 'Invalid savePath: path traversal or illegal characters detected'
416
+ });
417
+ }
418
+ let meshPath;
419
+ try {
420
+ const rawMeshPath = mutableArgs.meshPath;
421
+ if (rawMeshPath && typeof rawMeshPath === 'string') {
422
+ meshPath = sanitizePath(rawMeshPath);
423
+ }
424
+ }
425
+ catch (e) {
426
+ return cleanObject({
427
+ success: false,
428
+ error: 'SECURITY_VIOLATION',
429
+ message: e instanceof Error ? e.message : 'Invalid meshPath: path traversal or illegal characters detected'
430
+ });
431
+ }
432
+ let skeletonPath;
433
+ try {
434
+ const rawSkeletonPath = mutableArgs.skeletonPath;
435
+ if (rawSkeletonPath && typeof rawSkeletonPath === 'string') {
436
+ skeletonPath = sanitizePath(rawSkeletonPath);
437
+ }
438
+ }
439
+ catch (e) {
440
+ return cleanObject({
441
+ success: false,
442
+ error: 'SECURITY_VIOLATION',
443
+ message: e instanceof Error ? e.message : 'Invalid skeletonPath: path traversal or illegal characters detected'
444
+ });
445
+ }
191
446
  const payload = {
192
- meshPath: mutableArgs.meshPath,
193
- skeletonPath: mutableArgs.skeletonPath,
447
+ meshPath,
448
+ skeletonPath,
194
449
  physicsAssetName: mutableArgs.physicsAssetName,
195
- savePath: mutableArgs.savePath
450
+ savePath
196
451
  };
197
- if (mutableArgs.actorName && !mutableArgs.meshPath && !mutableArgs.skeletonPath) {
452
+ if (mutableArgs.actorName && !meshPath && !skeletonPath) {
198
453
  payload.actorName = mutableArgs.actorName;
199
454
  }
200
455
  if (!payload.meshPath && !payload.skeletonPath && !payload.actorName) {
@@ -1 +1 @@
1
- {"version":3,"file":"animation-handlers.js","sourceRoot":"","sources":["../../../src/tools/handlers/animation-handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"animation-handlers.js","sourceRoot":"","sources":["../../../src/tools/handlers/animation-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAGvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAwB5D,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,MAAc,EAAE,IAAiB,EAAE,KAAa;IACzF,MAAM,SAAS,GAAG,IAAqB,CAAC;IACxC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAItD,MAAM,aAAa,GAAG;QACpB,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,gBAAgB;QAC1F,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa;QAC1F,kBAAkB,EAAE,UAAU,EAAE,eAAe,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,SAAS;KAChG,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,MAAM,KAAK,GAAI,IAAgC,CAAC,KAAK,CAAC,CAAC;QACvD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,WAAW,CAAC;oBACjB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,oBAAoB;oBAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,KAAK,iDAAiD;iBAC5G,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAGD,MAAM,SAAS,GAAI,IAAgC,CAAC,SAAS,CAAC;IAC9D,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBACjC,IAAI,CAAC;oBACH,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,OAAO,WAAW,CAAC;wBACjB,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,oBAAoB;wBAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,0EAA0E;qBACrH,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAGD,IAAI,UAAU,KAAK,4BAA4B,IAAI,UAAU,KAAK,uBAAuB,IAAI,UAAU,KAAK,qBAAqB,EAAE,CAAC;QAClI,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,aAAa,CAAC;QACvD,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,cAAc,CAAC;QACxE,IAAI,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAGlC,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,IAAI,kBAAkB,CAAC,CAAC;YACnF,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,WAAW,CAAC;gBACjB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,oBAAoB;gBAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,6DAA6D;aACxG,CAAC,CAAC;QACL,CAAC;QAGD,IAAI,CAAC,YAAY,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,CAAuB,CAAC;gBAC5J,IAAI,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAkC,EAAE,CAC7E,CAA+B,CAAC,IAAI,KAAK,uBAAuB;wBAChE,CAA+B,CAAC,SAAS,KAAK,uBAAuB,CACvE,CAAC;oBAEF,IAAI,QAAQ,EAAE,CAAC;wBACb,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI;4BAAE,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;wBACzD,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,YAAY;4BAAE,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC;oBAC3E,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG;YACd,GAAG,IAAI;YACP,IAAI;YACJ,YAAY;YACZ,QAAQ;YACR,QAAQ;SACT,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,wBAAwB,CAAC,KAAK,EAAE,4BAA4B,EAAE,OAAO,EAAE,kEAAkE,CAAC,CAAC;QAC7J,OAAO,GAA8B,CAAC;IACxC,CAAC;IAED,IAAI,UAAU,KAAK,mBAAmB,IAAI,UAAU,KAAK,cAAc,EAAE,CAAC;QACxE,MAAM,IAAI,GAAG,MAAM,wBAAwB,CACzC,KAAK,EACL,mBAAmB,EACnB,IAAI,EACJ,sDAAsD,CACjC,CAAC;QACxB,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,CAAkB,CAAC;QAE7D,MAAM,SAAS,GAAG,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAGvC,IAAI,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;YACxH,OAAO,WAAW,CAAC;gBACjB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,iBAAiB;gBACxB,OAAO,EAAE,OAAO,IAAI,sCAAsC;gBAC1D,SAAS,EAAE,SAAS,CAAC,SAAS;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,IACE,SAAS,KAAK,kBAAkB;YAChC,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YACvC,OAAO,SAAS,CAAC,QAAQ,KAAK,QAAQ;YACtC,SAAS,CAAC,QAAQ,KAAK,CAAC,EACxB,CAAC;YACD,OAAO,WAAW,CAAC;gBACjB,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,+EAA+E;aACzF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,UAAU,KAAK,eAAe,IAAI,UAAU,KAAK,kBAAkB,EAAE,CAAC;QAExE,MAAM,WAAW,GAAG,EAAE,GAAG,SAAS,EAA6C,CAAC;QAEhF,IAAI,SAAS,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;YAC1E,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,CAAuB,CAAC;gBAC5J,IAAI,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;oBACnD,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAkC,EAAE,CAC7E,CAA+B,CAAC,IAAI,KAAK,uBAAuB;wBAChE,CAA+B,CAAC,SAAS,KAAK,uBAAuB,CACvE,CAAC;oBACF,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;wBAC9B,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;oBACvC,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;YAEd,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,wBAAwB,CAAC,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,mDAAmD,CAAuB,CAAC;QAC5J,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,CAAkB,CAAC;QAE7D,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAGvC,IAAI,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;YACpF,OAAO,WAAW,CAAC;gBACjB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,iBAAiB;gBACxB,OAAO,EAAE,OAAO,IAAI,qCAAqC;gBACzD,SAAS,EAAE,SAAS,CAAC,SAAS;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAGD,MAAM,WAAW,GAAG,EAAE,GAAG,SAAS,EAA6C,CAAC;IAChF,IAAI,UAAU,KAAK,oBAAoB,IAAI,UAAU,KAAK,mBAAmB,EAAE,CAAC;QAC9E,IAAI,SAAS,CAAC,cAAc,EAAE,CAAC;YAC7B,WAAW,CAAC,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC;YACrD,WAAW,CAAC,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC;QACvD,CAAC;QACD,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;YAC3B,WAAW,CAAC,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC;YACnD,WAAW,CAAC,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC;QACrD,CAAC;IACH,CAAC;IAED,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAE1B,IAAI,QAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,QAAQ,IAAI,kBAAkB,CAAC,CAAC;gBACvF,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,WAAW,CAAC;oBACjB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,oBAAoB;oBAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,6DAA6D;iBACxG,CAAC,CAAC;YACL,CAAC;YAGD,MAAM,OAAO,GAAG;gBACd,MAAM,EAAE,oBAAoB;gBAC5B,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,IAAI,EAAE,QAAQ;gBACd,QAAQ;gBACR,YAAY,EAAE,WAAW,CAAC,YAAY;gBACtC,cAAc,EAAE,WAAW,CAAC,cAAc;gBAC1C,YAAY,EAAE,WAAW,CAAC,YAAY;gBAEtC,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,IAAI,EAAE,WAAW,CAAC,IAAI;aACvB,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,0DAA0D,CAAC,CAAC;YAC5I,OAAO,WAAW,CAAC,GAAG,CAA4B,CAAC;QACrD,CAAC;QACD,KAAK,sBAAsB,CAAC,CAAC,CAAC;YAE5B,IAAI,aAAiC,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,IAAI,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,QAAQ,CAAC;gBACtF,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAC3C,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,WAAW,CAAC;oBACjB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,oBAAoB;oBAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,6DAA6D;iBACxG,CAAC,CAAC;YACL,CAAC;YAED,OAAO,WAAW,CAAC,MAAM,wBAAwB,CAAC,KAAK,EAAE,YAAY,CAAC,iBAAiB,EAAE;gBACvF,MAAM,EAAE,sBAAsB;gBAC9B,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI;gBACxD,MAAM,EAAE,WAAW,CAAC,MAAmB;gBACvC,WAAW,EAAE,WAAW,CAAC,WAAwB;gBACjD,aAAa;aACd,CAAC,CAA4B,CAAC;QACjC,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAEhB,IAAI,QAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI,IAAI,kBAAkB,CAAC,CAAC;gBACvF,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,WAAW,CAAC;oBACjB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,oBAAoB;oBAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,6DAA6D;iBACxG,CAAC,CAAC;YACL,CAAC;YAED,OAAO,WAAW,CAAC,MAAM,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,EAAE;gBAC5E,MAAM,EAAE,UAAU;gBAClB,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,QAAQ;gBACR,YAAY,EAAE,WAAW,CAAC,YAAY;gBACtC,SAAS,EAAE,WAAW,CAAC,SAAS;gBAChC,OAAO,EAAE,WAAW,CAAC,OAAoB;gBACzC,mBAAmB,EAAE,WAAW,CAAC,mBAAmB;aACrD,CAAC,CAA4B,CAAC;QACjC,CAAC;QACD,KAAK,wBAAwB,CAAC,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE;gBACjC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE;gBACpE,EAAE,GAAG,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACvC,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACrC,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;gBACjC,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;gBACjC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;aAC/B,CAAC,CAAC;YAEH,IAAI,QAAgB,CAAC;YACrB,IAAI,YAAoB,CAAC;YACzB,IAAI,CAAC;gBACH,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,kBAAkB,CAAC,CAAC,CAAC;gBACnE,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,WAAW,CAAC;oBACjB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,oBAAoB;oBAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,6DAA6D;iBACxG,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;gBACtC,OAAO,WAAW,CAAC;oBACjB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,kBAAkB;oBACzB,OAAO,EAAE,uDAAuD;iBACjE,CAAC,CAAC;YACL,CAAC;YAED,OAAO,WAAW,CAAC,MAAM,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,EAAE;gBAC5E,MAAM,EAAE,wBAAwB;gBAChC,SAAS,EAAE,wBAAwB;gBACnC,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,IAAI,EAAE,QAAQ;gBACd,QAAQ;gBACR,YAAY;gBACZ,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC,CAA4B,CAAC;QACjC,CAAC;QACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;YAEzB,IAAI,aAAiC,CAAC;YACtC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,IAAI,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,QAAQ,CAAC;gBACtF,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAC3C,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,WAAW,CAAC;oBACjB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,oBAAoB;oBAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,6DAA6D;iBACxG,CAAC,CAAC;YACL,CAAC;YAED,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,OAAO,WAAW,CAAC;oBACjB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,kBAAkB;oBACzB,OAAO,EAAE,iDAAiD;iBAC3D,CAAC,CAAC;YACL,CAAC;YAGD,MAAM,iBAAiB,GAAc,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxC,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,QAAqC,EAAE,CAAC;oBACtE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;wBAC9D,IAAI,CAAC;4BACH,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;4BAChE,iBAAiB,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC,CAAC;wBACrE,CAAC;wBAAC,MAAM,CAAC;4BACP,OAAO,WAAW,CAAC;gCACjB,OAAO,EAAE,KAAK;gCACd,KAAK,EAAE,oBAAoB;gCAC3B,OAAO,EAAE,kFAAkF;6BAC5F,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAChC,CAAC;gBACH,CAAC;YACH,CAAC;YAGD,MAAM,OAAO,GAA4B;gBACvC,MAAM,EAAE,mBAAmB;gBAC3B,aAAa;gBACb,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI,IAAI,WAAW;gBACjE,eAAe,EAAE,WAAW,CAAC,eAA4B;gBACzD,QAAQ,EAAE,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,QAAqB;gBAC9F,IAAI,EAAE,WAAW,CAAC,IAAI,KAAK,KAAK;aACjC,CAAC;YAEF,OAAO,WAAW,CAAC,MAAM,wBAAwB,CAAC,KAAK,EAAE,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAA4B,CAAC;QAChI,CAAC;QACD,KAAK,SAAS;YACZ,OAAO,WAAW,CAAC,MAAM,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,EAAE;gBAC5E,MAAM,EAAE,SAAS;gBACjB,SAAS,EAAE,WAAW,CAAC,SAAsB;aAC9C,CAAC,CAA4B,CAAC;QACjC,KAAK,wBAAwB,CAAC,CAAC,CAAC;YAE9B,IAAI,QAAgB,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,QAAQ,IAAI,kBAAkB,CAAC,CAAC;gBACvF,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,WAAW,CAAC;oBACjB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,oBAAoB;oBAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,6DAA6D;iBACxG,CAAC,CAAC;YACL,CAAC;YACD,IAAI,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;YACtC,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;gBACnC,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7G,SAAS,GAAG,SAAS,CAAC;gBACxB,CAAC;YACH,CAAC;YACD,OAAO,WAAW,CAAC,MAAM,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,EAAE;gBAC5E,MAAM,EAAE,wBAAwB;gBAChC,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,QAAQ;gBACR,YAAY,EAAE,WAAW,CAAC,YAAY;gBACtC,SAAS;aACV,CAAC,CAA4B,CAAC;QACjC,CAAC;QACD,KAAK,YAAY,CAAC,CAAC,CAAC;YAElB,IAAI,SAA6B,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,WAAW,CAAC,aAAa,IAAI,WAAW,CAAC,SAAS,CAAC;gBACnE,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAC3C,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,WAAW,CAAC;oBACjB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,oBAAoB;oBAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,6DAA6D;iBACxG,CAAC,CAAC;YACL,CAAC;YACD,OAAO,WAAW,CAAC,MAAM,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,EAAE;gBAC5E,MAAM,EAAE,YAAY;gBACpB,SAAS;gBACT,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,WAAW,CAAC,IAAI;gBACtD,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,WAAW,CAAC,SAAS;aAChD,CAAC,CAA4B,CAAC;QACjC,CAAC;QACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,EAAE;gBACjC,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACpC,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,kBAAkB,EAAE;gBACnD,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACjB,EAAE,GAAG,EAAE,QAAQ,EAAE;gBACjB,EAAE,GAAG,EAAE,cAAc,EAAE;gBACvB,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;gBAC9B,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,GAAG,EAAE;aACzC,CAAC,CAAC;YAEH,OAAO,WAAW,CAAC,MAAM,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,EAAE;gBAC5E,MAAM,EAAE,mBAAmB;gBAC3B,SAAS,EAAE,mBAAmB;gBAC9B,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,eAAe,EAAE,MAAM,CAAC,eAAe;aACxC,CAAC,CAA4B,CAAC;QACjC,CAAC;QACD,KAAK,0BAA0B,CAAC,CAAC,CAAC;YAEhC,IAAI,QAA4B,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC;gBACzC,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;oBACnD,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,WAAW,CAAC;oBACjB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,oBAAoB;oBAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iEAAiE;iBAC5G,CAAC,CAAC;YACL,CAAC;YAED,IAAI,QAA4B,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC;gBACzC,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;oBACnD,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,WAAW,CAAC;oBACjB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,oBAAoB;oBAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iEAAiE;iBAC5G,CAAC,CAAC;YACL,CAAC;YAED,IAAI,YAAgC,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,WAAW,CAAC,YAAY,CAAC;gBACjD,IAAI,eAAe,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE,CAAC;oBAC3D,YAAY,GAAG,YAAY,CAAC,eAAe,CAAC,CAAC;gBAC/C,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,WAAW,CAAC;oBACjB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,oBAAoB;oBAC3B,OAAO,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qEAAqE;iBAChH,CAAC,CAAC;YACL,CAAC;YAGD,MAAM,OAAO,GAA4B;gBACvC,QAAQ;gBACR,YAAY;gBACZ,gBAAgB,EAAE,WAAW,CAAC,gBAAgB;gBAC9C,QAAQ;aACT,CAAC;YAGF,IAAI,WAAW,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;gBACxD,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;YAC5C,CAAC;YAGD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;gBACrE,OAAO,WAAW,CAAC;oBACjB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,kBAAkB;oBACzB,OAAO,EAAE,kFAAkF;iBAC5F,CAAC,CAAC;YACL,CAAC;YAED,OAAO,WAAW,CAAC,MAAM,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,EAAE;gBAC5E,MAAM,EAAE,0BAA0B;gBAClC,GAAG,OAAO;aACX,CAAC,CAA4B,CAAC;QACjC,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YAGR,MAAM,GAAG,GAAG,MAAM,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,kEAAkE,CAAC,CAAC;YACjJ,OAAO,WAAW,CAAC,GAAG,CAA4B,CAAC;QACrD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"asset-handlers.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/asset-handlers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,8BAA8B,CAAC;AAwH3E,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAq2BzH"}
1
+ {"version":3,"file":"asset-handlers.d.ts","sourceRoot":"","sources":["../../../src/tools/handlers/asset-handlers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,8BAA8B,CAAC;AAwH3E,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA42BzH"}
@@ -67,9 +67,9 @@ export async function handleAssetTools(action, args, tools) {
67
67
  switch (action) {
68
68
  case 'list': {
69
69
  const params = normalizeArgs(args, [
70
- { key: 'path', aliases: ['directory', 'assetPath'], default: '/Game' },
70
+ { key: 'path', aliases: ['directory', 'directoryPath', 'assetPath'], default: '/Game' },
71
71
  { key: 'limit', default: 50 },
72
- { key: 'recursive', default: false },
72
+ { key: 'recursive', aliases: ['recursivePaths'], default: false },
73
73
  { key: 'depth', default: undefined }
74
74
  ]);
75
75
  let path = extractOptionalString(params, 'path') ?? '/Game';
@@ -431,26 +431,32 @@ export async function handleAssetTools(action, args, tools) {
431
431
  }
432
432
  case 'search_assets': {
433
433
  const params = normalizeArgs(args, [
434
+ { key: 'searchText' },
434
435
  { key: 'classNames' },
435
436
  { key: 'packagePaths' },
436
437
  { key: 'recursivePaths' },
437
438
  { key: 'recursiveClasses' },
438
- { key: 'limit' }
439
+ { key: 'limit' },
440
+ { key: 'offset' }
439
441
  ]);
442
+ const searchText = extractOptionalString(params, 'searchText');
440
443
  const classNames = extractOptionalArray(params, 'classNames');
441
444
  const packagePaths = extractOptionalArray(params, 'packagePaths');
442
- const recursivePaths = extractOptionalBoolean(params, 'recursivePaths');
445
+ const recursivePaths = extractOptionalBoolean(params, 'recursivePaths') ?? (searchText ? true : undefined);
443
446
  const recursiveClasses = extractOptionalBoolean(params, 'recursiveClasses');
444
447
  const limit = extractOptionalNumber(params, 'limit');
448
+ const offset = extractOptionalNumber(params, 'offset');
445
449
  const pathSecurityError = validatePathsSecurity(packagePaths, 'packagePaths');
446
450
  if (pathSecurityError)
447
451
  return pathSecurityError;
448
452
  const res = await executeAutomationRequest(tools, 'asset_query', {
453
+ searchText,
449
454
  classNames,
450
455
  packagePaths,
451
456
  recursivePaths,
452
457
  recursiveClasses,
453
458
  limit,
459
+ offset,
454
460
  subAction: 'search_assets'
455
461
  });
456
462
  return ResponseFactory.success(res, 'Assets found');