@n24q02m/better-godot-mcp 1.2.2 → 1.2.3

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 (32) hide show
  1. package/bin/cli.mjs +54 -56
  2. package/build/src/tools/composite/animation.d.ts.map +1 -1
  3. package/build/src/tools/composite/animation.js +2 -1
  4. package/build/src/tools/composite/animation.js.map +1 -1
  5. package/build/src/tools/composite/audio.d.ts.map +1 -1
  6. package/build/src/tools/composite/audio.js +2 -1
  7. package/build/src/tools/composite/audio.js.map +1 -1
  8. package/build/src/tools/composite/navigation.d.ts.map +1 -1
  9. package/build/src/tools/composite/navigation.js +2 -1
  10. package/build/src/tools/composite/navigation.js.map +1 -1
  11. package/build/src/tools/composite/nodes.d.ts.map +1 -1
  12. package/build/src/tools/composite/nodes.js +2 -1
  13. package/build/src/tools/composite/nodes.js.map +1 -1
  14. package/build/src/tools/composite/physics.d.ts.map +1 -1
  15. package/build/src/tools/composite/physics.js +3 -2
  16. package/build/src/tools/composite/physics.js.map +1 -1
  17. package/build/src/tools/composite/project.d.ts.map +1 -1
  18. package/build/src/tools/composite/project.js +2 -1
  19. package/build/src/tools/composite/project.js.map +1 -1
  20. package/build/src/tools/composite/shader.d.ts.map +1 -1
  21. package/build/src/tools/composite/shader.js +5 -4
  22. package/build/src/tools/composite/shader.js.map +1 -1
  23. package/build/src/tools/composite/signals.d.ts.map +1 -1
  24. package/build/src/tools/composite/signals.js +2 -1
  25. package/build/src/tools/composite/signals.js.map +1 -1
  26. package/build/src/tools/composite/tilemap.d.ts.map +1 -1
  27. package/build/src/tools/composite/tilemap.js +4 -3
  28. package/build/src/tools/composite/tilemap.js.map +1 -1
  29. package/build/src/tools/composite/ui.d.ts.map +1 -1
  30. package/build/src/tools/composite/ui.js +3 -2
  31. package/build/src/tools/composite/ui.js.map +1 -1
  32. package/package.json +1 -1
package/bin/cli.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- // @n24q02m/better-godot-mcp v1.2.2
2
+ // @n24q02m/better-godot-mcp v1.2.3
3
3
  // Auto-generated CLI bundle - do not edit directly
4
4
 
5
5
 
@@ -161,7 +161,7 @@ import { CallToolRequestSchema, ListToolsRequestSchema } from "@modelcontextprot
161
161
 
162
162
  // src/tools/composite/animation.ts
163
163
  import { existsSync as existsSync2, readFileSync, writeFileSync } from "node:fs";
164
- import { resolve } from "node:path";
164
+ import { resolve as resolve2 } from "node:path";
165
165
 
166
166
  // src/tools/helpers/errors.ts
167
167
  var GodotMCPError = class extends Error {
@@ -198,9 +198,25 @@ function formatJSON(data) {
198
198
  return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
199
199
  }
200
200
 
201
+ // src/tools/helpers/paths.ts
202
+ import { isAbsolute, relative, resolve } from "node:path";
203
+ function safeResolve(baseDir, targetPath) {
204
+ const resolvedBase = resolve(baseDir);
205
+ const resolvedTarget = resolve(resolvedBase, targetPath);
206
+ const relativePath = relative(resolvedBase, resolvedTarget);
207
+ if (relativePath.startsWith("..") || isAbsolute(relativePath)) {
208
+ throw new GodotMCPError(
209
+ `Access denied: Path '${targetPath}' resolves to '${resolvedTarget}' which is outside the project root '${resolvedBase}'.`,
210
+ "INVALID_ARGS",
211
+ "Ensure all file paths are within the project directory."
212
+ );
213
+ }
214
+ return resolvedTarget;
215
+ }
216
+
201
217
  // src/tools/composite/animation.ts
202
218
  function resolveScene(projectPath, scenePath) {
203
- const fullPath = projectPath ? resolve(projectPath, scenePath) : resolve(scenePath);
219
+ const fullPath = projectPath ? safeResolve(projectPath, scenePath) : resolve2(scenePath);
204
220
  if (!existsSync2(fullPath))
205
221
  throw new GodotMCPError(`Scene not found: ${scenePath}`, "SCENE_ERROR", "Check the file path.");
206
222
  return fullPath;
@@ -326,13 +342,13 @@ Track data format: tracks/N/keys = { "times": PackedFloat32Array(0, 1), "values"
326
342
 
327
343
  // src/tools/composite/audio.ts
328
344
  import { existsSync as existsSync3, readFileSync as readFileSync2, writeFileSync as writeFileSync2 } from "node:fs";
329
- import { resolve as resolve2 } from "node:path";
345
+ import { resolve as resolve3 } from "node:path";
330
346
  async function handleAudio(action, args, config) {
331
347
  const projectPath = args.project_path || config.projectPath;
332
348
  switch (action) {
333
349
  case "list_buses": {
334
350
  if (!projectPath) throw new GodotMCPError("No project path specified", "INVALID_ARGS", "Provide project_path.");
335
- const busLayoutPath = resolve2(projectPath, "default_bus_layout.tres");
351
+ const busLayoutPath = resolve3(projectPath, "default_bus_layout.tres");
336
352
  if (!existsSync3(busLayoutPath)) {
337
353
  return formatJSON({ buses: [{ name: "Master", volume: 0, effects: [] }], note: "Using default bus layout." });
338
354
  }
@@ -350,7 +366,7 @@ async function handleAudio(action, args, config) {
350
366
  const busName = args.bus_name;
351
367
  if (!busName) throw new GodotMCPError("No bus_name specified", "INVALID_ARGS", "Provide bus name.");
352
368
  const sendTo = args.send_to || "Master";
353
- const busLayoutPath = resolve2(projectPath, "default_bus_layout.tres");
369
+ const busLayoutPath = resolve3(projectPath, "default_bus_layout.tres");
354
370
  let content;
355
371
  if (existsSync3(busLayoutPath)) {
356
372
  content = readFileSync2(busLayoutPath, "utf-8");
@@ -394,7 +410,7 @@ ${newBus}
394
410
  );
395
411
  }
396
412
  const fullEffectType = effectType.startsWith("AudioEffect") ? effectType : `AudioEffect${effectType}`;
397
- const busLayoutPath = resolve2(projectPath, "default_bus_layout.tres");
413
+ const busLayoutPath = resolve3(projectPath, "default_bus_layout.tres");
398
414
  let content;
399
415
  if (existsSync3(busLayoutPath)) {
400
416
  content = readFileSync2(busLayoutPath, "utf-8");
@@ -451,7 +467,7 @@ ${effectRef}`;
451
467
  const streamType = args.stream_type || "2D";
452
468
  const parent = args.parent || ".";
453
469
  const bus = args.bus || "Master";
454
- const fullPath = projectPath ? resolve2(projectPath, scenePath) : resolve2(scenePath);
470
+ const fullPath = projectPath ? safeResolve(projectPath, scenePath) : resolve3(scenePath);
455
471
  if (!existsSync3(fullPath))
456
472
  throw new GodotMCPError(`Scene not found: ${scenePath}`, "SCENE_ERROR", "Check file path.");
457
473
  let content = readFileSync2(fullPath, "utf-8");
@@ -526,7 +542,7 @@ async function handleConfig(action, args, config) {
526
542
 
527
543
  // src/tools/composite/editor.ts
528
544
  import { execFile } from "node:child_process";
529
- import { resolve as resolve3 } from "node:path";
545
+ import { resolve as resolve4 } from "node:path";
530
546
  import { promisify } from "node:util";
531
547
 
532
548
  // src/godot/headless.ts
@@ -612,7 +628,7 @@ async function handleEditor(action, args, config) {
612
628
  if (!projectPath) {
613
629
  throw new GodotMCPError("No project path specified", "INVALID_ARGS", "Provide project_path argument.");
614
630
  }
615
- const { pid } = launchGodotEditor(config.godotPath, resolve3(projectPath));
631
+ const { pid } = launchGodotEditor(config.godotPath, resolve4(projectPath));
616
632
  return formatSuccess(`Godot editor launched (PID: ${pid})`);
617
633
  }
618
634
  case "status": {
@@ -687,7 +703,7 @@ async function handleHelp(action, args) {
687
703
 
688
704
  // src/tools/composite/input-map.ts
689
705
  import { existsSync as existsSync5, readFileSync as readFileSync4, writeFileSync as writeFileSync3 } from "node:fs";
690
- import { join as join3, resolve as resolve4 } from "node:path";
706
+ import { join as join3, resolve as resolve5 } from "node:path";
691
707
  var GODOT_KEY_CODES = {
692
708
  // Letters (ASCII)
693
709
  KEY_A: 65,
@@ -797,7 +813,7 @@ function resolveMouseCode(value) {
797
813
  }
798
814
  function getProjectGodotPath(projectPath) {
799
815
  if (!projectPath) throw new GodotMCPError("No project path specified", "INVALID_ARGS", "Provide project_path.");
800
- const configPath = join3(resolve4(projectPath), "project.godot");
816
+ const configPath = join3(resolve5(projectPath), "project.godot");
801
817
  if (!existsSync5(configPath))
802
818
  throw new GodotMCPError("No project.godot found", "PROJECT_NOT_FOUND", "Verify the project path.");
803
819
  return configPath;
@@ -977,9 +993,9 @@ ${actionLine}`);
977
993
 
978
994
  // src/tools/composite/navigation.ts
979
995
  import { existsSync as existsSync6, readFileSync as readFileSync5, writeFileSync as writeFileSync4 } from "node:fs";
980
- import { resolve as resolve5 } from "node:path";
996
+ import { resolve as resolve6 } from "node:path";
981
997
  function resolveScene2(projectPath, scenePath) {
982
- const fullPath = projectPath ? resolve5(projectPath, scenePath) : resolve5(scenePath);
998
+ const fullPath = projectPath ? safeResolve(projectPath, scenePath) : resolve6(scenePath);
983
999
  if (!existsSync6(fullPath))
984
1000
  throw new GodotMCPError(`Scene not found: ${scenePath}`, "SCENE_ERROR", "Check the file path.");
985
1001
  return fullPath;
@@ -1061,7 +1077,7 @@ async function handleNavigation(action, args, config) {
1061
1077
 
1062
1078
  // src/tools/composite/nodes.ts
1063
1079
  import { existsSync as existsSync7, readFileSync as readFileSync7, writeFileSync as writeFileSync6 } from "node:fs";
1064
- import { resolve as resolve6 } from "node:path";
1080
+ import { resolve as resolve7 } from "node:path";
1065
1081
 
1066
1082
  // src/tools/helpers/scene-parser.ts
1067
1083
  import { readFileSync as readFileSync6, writeFileSync as writeFileSync5 } from "node:fs";
@@ -1300,7 +1316,7 @@ function mapToSceneNode(node) {
1300
1316
  };
1301
1317
  }
1302
1318
  function resolveScenePath(projectPath, scenePath) {
1303
- return projectPath ? resolve6(projectPath, scenePath) : resolve6(scenePath);
1319
+ return projectPath ? safeResolve(projectPath, scenePath) : resolve7(scenePath);
1304
1320
  }
1305
1321
  async function handleNodes(action, args, config) {
1306
1322
  const projectPath = args.project_path || config.projectPath;
@@ -1431,7 +1447,7 @@ ${nodeDecl}`;
1431
1447
 
1432
1448
  // src/tools/composite/physics.ts
1433
1449
  import { existsSync as existsSync8, readFileSync as readFileSync9, writeFileSync as writeFileSync8 } from "node:fs";
1434
- import { join as join4, resolve as resolve7 } from "node:path";
1450
+ import { join as join4, resolve as resolve8 } from "node:path";
1435
1451
 
1436
1452
  // src/tools/helpers/project-settings.ts
1437
1453
  import { readFileSync as readFileSync8, writeFileSync as writeFileSync7 } from "node:fs";
@@ -1538,7 +1554,7 @@ async function handlePhysics(action, args, config) {
1538
1554
  switch (action) {
1539
1555
  case "layers": {
1540
1556
  if (!projectPath) throw new GodotMCPError("No project path specified", "INVALID_ARGS", "Provide project_path.");
1541
- const configPath = join4(resolve7(projectPath), "project.godot");
1557
+ const configPath = join4(resolve8(projectPath), "project.godot");
1542
1558
  if (!existsSync8(configPath))
1543
1559
  throw new GodotMCPError("No project.godot found", "PROJECT_NOT_FOUND", "Verify project path.");
1544
1560
  const settings = parseProjectSettings(configPath);
@@ -1560,7 +1576,7 @@ async function handlePhysics(action, args, config) {
1560
1576
  if (!nodeName) throw new GodotMCPError("No node name specified", "INVALID_ARGS", "Provide node name.");
1561
1577
  const collisionLayer = args.collision_layer;
1562
1578
  const collisionMask = args.collision_mask;
1563
- const fullPath = projectPath ? resolve7(projectPath, scenePath) : resolve7(scenePath);
1579
+ const fullPath = projectPath ? safeResolve(projectPath, scenePath) : resolve8(scenePath);
1564
1580
  if (!existsSync8(fullPath))
1565
1581
  throw new GodotMCPError(`Scene not found: ${scenePath}`, "SCENE_ERROR", "Check file path.");
1566
1582
  let content = readFileSync9(fullPath, "utf-8");
@@ -1586,7 +1602,7 @@ collision_mask = ${collisionMask}`;
1586
1602
  if (!scenePath) throw new GodotMCPError("No scene_path specified", "INVALID_ARGS", "Provide scene_path.");
1587
1603
  const nodeName = args.name;
1588
1604
  if (!nodeName) throw new GodotMCPError("No node name specified", "INVALID_ARGS", "Provide node name.");
1589
- const fullPath = projectPath ? resolve7(projectPath, scenePath) : resolve7(scenePath);
1605
+ const fullPath = projectPath ? safeResolve(projectPath, scenePath) : resolve8(scenePath);
1590
1606
  if (!existsSync8(fullPath))
1591
1607
  throw new GodotMCPError(`Scene not found: ${scenePath}`, "SCENE_ERROR", "Check file path.");
1592
1608
  let content = readFileSync9(fullPath, "utf-8");
@@ -1617,7 +1633,7 @@ freeze = ${args.freeze}`;
1617
1633
  const dimension = args.dimension || "2d";
1618
1634
  const name = args.name;
1619
1635
  if (!name) throw new GodotMCPError("No name specified", "INVALID_ARGS", "Provide layer name.");
1620
- const configPath = join4(resolve7(projectPath), "project.godot");
1636
+ const configPath = join4(resolve8(projectPath), "project.godot");
1621
1637
  if (!existsSync8(configPath))
1622
1638
  throw new GodotMCPError("No project.godot found", "PROJECT_NOT_FOUND", "Verify project path.");
1623
1639
  const content = readFileSync9(configPath, "utf-8");
@@ -1639,7 +1655,7 @@ freeze = ${args.freeze}`;
1639
1655
  import { execFileSync as execFileSync3 } from "node:child_process";
1640
1656
  import { existsSync as existsSync9 } from "node:fs";
1641
1657
  import { readFile as readFile2, writeFile as writeFile2 } from "node:fs/promises";
1642
- import { join as join5, resolve as resolve8 } from "node:path";
1658
+ import { join as join5, resolve as resolve9 } from "node:path";
1643
1659
  async function parseProjectGodot(projectPath) {
1644
1660
  const configPath = join5(projectPath, "project.godot");
1645
1661
  if (!existsSync9(configPath)) {
@@ -1690,7 +1706,7 @@ async function handleProject(action, args, config) {
1690
1706
  "Provide project_path argument or set it via config.set action."
1691
1707
  );
1692
1708
  }
1693
- const info = await parseProjectGodot(resolve8(projectPath));
1709
+ const info = await parseProjectGodot(resolve9(projectPath));
1694
1710
  return formatJSON(info);
1695
1711
  }
1696
1712
  case "version": {
@@ -1706,7 +1722,7 @@ async function handleProject(action, args, config) {
1706
1722
  const projectPath = args.project_path || config.projectPath;
1707
1723
  if (!projectPath)
1708
1724
  throw new GodotMCPError("No project path specified", "INVALID_ARGS", "Provide project_path argument.");
1709
- const { pid } = runGodotProject(config.godotPath, resolve8(projectPath));
1725
+ const { pid } = runGodotProject(config.godotPath, resolve9(projectPath));
1710
1726
  return formatSuccess(`Godot project started (PID: ${pid})`);
1711
1727
  }
1712
1728
  case "stop": {
@@ -1727,7 +1743,7 @@ async function handleProject(action, args, config) {
1727
1743
  const key = args.key;
1728
1744
  if (!key)
1729
1745
  throw new GodotMCPError("No key specified", "INVALID_ARGS", 'Provide key (e.g., "application/config/name").');
1730
- const configPath = join5(resolve8(projectPath), "project.godot");
1746
+ const configPath = join5(resolve9(projectPath), "project.godot");
1731
1747
  if (!existsSync9(configPath))
1732
1748
  throw new GodotMCPError("No project.godot found", "PROJECT_NOT_FOUND", "Verify the project path.");
1733
1749
  const settings = await parseProjectSettingsAsync(configPath);
@@ -1741,7 +1757,7 @@ async function handleProject(action, args, config) {
1741
1757
  const value = args.value;
1742
1758
  if (!key || value === void 0)
1743
1759
  throw new GodotMCPError("key and value required", "INVALID_ARGS", "Provide key and value.");
1744
- const configPath = join5(resolve8(projectPath), "project.godot");
1760
+ const configPath = join5(resolve9(projectPath), "project.godot");
1745
1761
  if (!existsSync9(configPath))
1746
1762
  throw new GodotMCPError("No project.godot found", "PROJECT_NOT_FOUND", "Verify the project path.");
1747
1763
  const content = await readFile2(configPath, "utf-8");
@@ -1766,10 +1782,10 @@ async function handleProject(action, args, config) {
1766
1782
  const result = execGodotSync(config.godotPath, [
1767
1783
  "--headless",
1768
1784
  "--path",
1769
- resolve8(projectPath),
1785
+ resolve9(projectPath),
1770
1786
  "--export-release",
1771
1787
  preset,
1772
- resolve8(projectPath, outputPath)
1788
+ safeResolve(projectPath, outputPath)
1773
1789
  ]);
1774
1790
  return formatSuccess(`Export complete: ${outputPath}
1775
1791
  ${result.stdout}`);
@@ -1786,24 +1802,6 @@ ${result.stdout}`);
1786
1802
  // src/tools/composite/resources.ts
1787
1803
  import { existsSync as existsSync10, readdirSync as readdirSync2, readFileSync as readFileSync10, statSync, unlinkSync } from "node:fs";
1788
1804
  import { extname, join as join6, relative as relative2, resolve as resolve10 } from "node:path";
1789
-
1790
- // src/tools/helpers/paths.ts
1791
- import { isAbsolute, relative, resolve as resolve9 } from "node:path";
1792
- function safeResolve(baseDir, targetPath) {
1793
- const resolvedBase = resolve9(baseDir);
1794
- const resolvedTarget = resolve9(resolvedBase, targetPath);
1795
- const relativePath = relative(resolvedBase, resolvedTarget);
1796
- if (relativePath.startsWith("..") || isAbsolute(relativePath)) {
1797
- throw new GodotMCPError(
1798
- `Access denied: Path '${targetPath}' resolves to '${resolvedTarget}' which is outside the project root '${resolvedBase}'.`,
1799
- "INVALID_ARGS",
1800
- "Ensure all file paths are within the project directory."
1801
- );
1802
- }
1803
- return resolvedTarget;
1804
- }
1805
-
1806
- // src/tools/composite/resources.ts
1807
1805
  var RESOURCE_EXTENSIONS = /* @__PURE__ */ new Set([
1808
1806
  ".tres",
1809
1807
  ".res",
@@ -2435,7 +2433,7 @@ async function handleShader(action, args, config) {
2435
2433
  );
2436
2434
  const shaderType = args.shader_type || "canvas_item";
2437
2435
  const content = args.content || SHADER_TEMPLATES[shaderType] || SHADER_TEMPLATES.canvas_item;
2438
- const fullPath = projectPath ? resolve13(projectPath, shaderPath) : resolve13(shaderPath);
2436
+ const fullPath = projectPath ? safeResolve(projectPath, shaderPath) : resolve13(shaderPath);
2439
2437
  await mkdir(dirname3(fullPath), { recursive: true });
2440
2438
  try {
2441
2439
  await writeFile3(fullPath, content, { encoding: "utf-8", flag: "wx" });
@@ -2450,7 +2448,7 @@ async function handleShader(action, args, config) {
2450
2448
  case "read": {
2451
2449
  const shaderPath = args.shader_path;
2452
2450
  if (!shaderPath) throw new GodotMCPError("No shader_path specified", "INVALID_ARGS", "Provide shader_path.");
2453
- const fullPath = projectPath ? resolve13(projectPath, shaderPath) : resolve13(shaderPath);
2451
+ const fullPath = projectPath ? safeResolve(projectPath, shaderPath) : resolve13(shaderPath);
2454
2452
  try {
2455
2453
  const content = await readFile4(fullPath, "utf-8");
2456
2454
  return formatSuccess(`File: ${shaderPath}
@@ -2468,7 +2466,7 @@ ${content}`);
2468
2466
  if (!shaderPath) throw new GodotMCPError("No shader_path specified", "INVALID_ARGS", "Provide shader_path.");
2469
2467
  const content = args.content;
2470
2468
  if (!content) throw new GodotMCPError("No content specified", "INVALID_ARGS", "Provide shader content.");
2471
- const fullPath = projectPath ? resolve13(projectPath, shaderPath) : resolve13(shaderPath);
2469
+ const fullPath = projectPath ? safeResolve(projectPath, shaderPath) : resolve13(shaderPath);
2472
2470
  await mkdir(dirname3(fullPath), { recursive: true });
2473
2471
  await writeFile3(fullPath, content, "utf-8");
2474
2472
  return formatSuccess(`Written: ${shaderPath} (${content.length} chars)`);
@@ -2476,7 +2474,7 @@ ${content}`);
2476
2474
  case "get_params": {
2477
2475
  const shaderPath = args.shader_path;
2478
2476
  if (!shaderPath) throw new GodotMCPError("No shader_path specified", "INVALID_ARGS", "Provide shader_path.");
2479
- const fullPath = projectPath ? resolve13(projectPath, shaderPath) : resolve13(shaderPath);
2477
+ const fullPath = projectPath ? safeResolve(projectPath, shaderPath) : resolve13(shaderPath);
2480
2478
  try {
2481
2479
  const content = await readFile4(fullPath, "utf-8");
2482
2480
  const params = [];
@@ -2525,7 +2523,7 @@ async function handleSignals(action, args, config) {
2525
2523
  const projectPath = args.project_path || config.projectPath;
2526
2524
  const scenePath = args.scene_path;
2527
2525
  if (!scenePath) throw new GodotMCPError("No scene_path specified", "INVALID_ARGS", "Provide scene_path.");
2528
- const fullPath = projectPath ? resolve14(projectPath, scenePath) : resolve14(scenePath);
2526
+ const fullPath = projectPath ? safeResolve(projectPath, scenePath) : resolve14(scenePath);
2529
2527
  async function readScene() {
2530
2528
  try {
2531
2529
  return await readFile5(fullPath, "utf-8");
@@ -2639,7 +2637,7 @@ async function handleTilemap(action, args, config) {
2639
2637
  'Provide tileset_path (e.g., "tilesets/main.tres").'
2640
2638
  );
2641
2639
  const tileSize = args.tile_size || 16;
2642
- const fullPath = projectPath ? resolve15(projectPath, tilesetPath) : resolve15(tilesetPath);
2640
+ const fullPath = projectPath ? safeResolve(projectPath, tilesetPath) : resolve15(tilesetPath);
2643
2641
  if (existsSync14(fullPath)) {
2644
2642
  throw new GodotMCPError(`TileSet already exists: ${tilesetPath}`, "TILEMAP_ERROR", "Use a different path.");
2645
2643
  }
@@ -2661,7 +2659,7 @@ async function handleTilemap(action, args, config) {
2661
2659
  if (!tilesetPath || !texturePath) {
2662
2660
  throw new GodotMCPError("tileset_path and texture_path required", "INVALID_ARGS", "Both are required.");
2663
2661
  }
2664
- const fullPath = projectPath ? resolve15(projectPath, tilesetPath) : resolve15(tilesetPath);
2662
+ const fullPath = projectPath ? safeResolve(projectPath, tilesetPath) : resolve15(tilesetPath);
2665
2663
  if (!existsSync14(fullPath))
2666
2664
  throw new GodotMCPError(`TileSet not found: ${tilesetPath}`, "TILEMAP_ERROR", "Create the tileset first.");
2667
2665
  let content = readFileSync13(fullPath, "utf-8");
@@ -2691,7 +2689,7 @@ async function handleTilemap(action, args, config) {
2691
2689
  case "list": {
2692
2690
  const scenePath = args.scene_path;
2693
2691
  if (!scenePath) throw new GodotMCPError("No scene_path specified", "INVALID_ARGS", "Provide scene_path.");
2694
- const fullPath = projectPath ? resolve15(projectPath, scenePath) : resolve15(scenePath);
2692
+ const fullPath = projectPath ? safeResolve(projectPath, scenePath) : resolve15(scenePath);
2695
2693
  if (!existsSync14(fullPath))
2696
2694
  throw new GodotMCPError(`Scene not found: ${scenePath}`, "SCENE_ERROR", "Check the file path.");
2697
2695
  const content = readFileSync13(fullPath, "utf-8");
@@ -2735,7 +2733,7 @@ var CONTROL_TEMPLATES = {
2735
2733
  GridContainer: { columns: "2" }
2736
2734
  };
2737
2735
  function resolveScene3(projectPath, scenePath) {
2738
- const fullPath = projectPath ? resolve16(projectPath, scenePath) : resolve16(scenePath);
2736
+ const fullPath = projectPath ? safeResolve(projectPath, scenePath) : resolve16(scenePath);
2739
2737
  if (!existsSync15(fullPath))
2740
2738
  throw new GodotMCPError(`Scene not found: ${scenePath}`, "SCENE_ERROR", "Check the file path.");
2741
2739
  return fullPath;
@@ -2783,7 +2781,7 @@ ${nodeDecl}`;
2783
2781
  "INVALID_ARGS",
2784
2782
  'Provide theme_path (e.g., "themes/main.tres").'
2785
2783
  );
2786
- const fullPath = projectPath ? resolve16(projectPath, themePath) : resolve16(themePath);
2784
+ const fullPath = projectPath ? safeResolve(projectPath, themePath) : resolve16(themePath);
2787
2785
  const fontSize = args.font_size || 16;
2788
2786
  const _fontColor = args.font_color || "Color(1, 1, 1, 1)";
2789
2787
  const _bgColor = args.bg_color || "Color(0.15, 0.15, 0.15, 1)";
@@ -1 +1 @@
1
- {"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/animation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAUvD,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAuIvG"}
1
+ {"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/animation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAWvD,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAuIvG"}
@@ -5,8 +5,9 @@
5
5
  import { existsSync, readFileSync, writeFileSync } from 'node:fs';
6
6
  import { resolve } from 'node:path';
7
7
  import { formatJSON, formatSuccess, GodotMCPError } from '../helpers/errors.js';
8
+ import { safeResolve } from '../helpers/paths.js';
8
9
  function resolveScene(projectPath, scenePath) {
9
- const fullPath = projectPath ? resolve(projectPath, scenePath) : resolve(scenePath);
10
+ const fullPath = projectPath ? safeResolve(projectPath, scenePath) : resolve(scenePath);
10
11
  if (!existsSync(fullPath))
11
12
  throw new GodotMCPError(`Scene not found: ${scenePath}`, 'SCENE_ERROR', 'Check the file path.');
12
13
  return fullPath;
@@ -1 +1 @@
1
- {"version":3,"file":"animation.js","sourceRoot":"","sources":["../../../../src/tools/composite/animation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAE/E,SAAS,YAAY,CAAC,WAAsC,EAAE,SAAiB;IAC7E,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACnF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACvB,MAAM,IAAI,aAAa,CAAC,oBAAoB,SAAS,EAAE,EAAE,aAAa,EAAE,sBAAsB,CAAC,CAAA;IACjG,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,MAAc,EAAE,IAA6B,EAAE,MAAmB;IACtG,MAAM,WAAW,GAAI,IAAI,CAAC,YAAuB,IAAI,MAAM,CAAC,WAAW,CAAA;IAEvE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAA;YAC3C,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAA;YACzG,MAAM,UAAU,GAAI,IAAI,CAAC,IAAe,IAAI,iBAAiB,CAAA;YAC7D,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,GAAG,CAAA;YAE7C,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YACrD,IAAI,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAE7C,MAAM,UAAU,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,MAAM,GAAG,CAAA;YAC9D,MAAM,QAAQ,GAAG,iBAAiB,UAAU,2BAA2B,UAAU,KAAK,CAAA;YACtF,OAAO,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAA;YAE7C,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YACzC,OAAO,aAAa,CAAC,4BAA4B,UAAU,UAAU,MAAM,EAAE,CAAC,CAAA;QAChF,CAAC;QAED,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAA;YAC3C,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAA;YACzG,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAmB,CAAA;YACzC,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,aAAa,CAAC,wBAAwB,EAAE,cAAc,EAAE,yBAAyB,CAAC,CAAA;YAC3G,MAAM,QAAQ,GAAI,IAAI,CAAC,QAAmB,IAAI,GAAG,CAAA;YACjD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,KAAK,CAAA;YAEhC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YACrD,IAAI,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAE7C,iCAAiC;YACjC,MAAM,MAAM,GAAG,aAAa,QAAQ,EAAE,CAAA;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7B,MAAM,YAAY,GAAG,wCAAwC,MAAM,wBAAwB,QAAQ,eAAe,QAAQ,iBAAiB,QAAQ,IAAI,CAAA;YAEvJ,6BAA6B;YAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;YACxC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;gBACnB,OAAO,IAAI,YAAY,CAAA;YACzB,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,YAAY,KAAK,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAA;YACpF,CAAC;YAED,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YACzC,OAAO,aAAa,CAAC,oBAAoB,QAAQ,eAAe,QAAQ,YAAY,IAAI,GAAG,CAAC,CAAA;QAC9F,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAA;YAC3C,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAA;YACzG,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAmB,CAAA;YACzC,MAAM,SAAS,GAAI,IAAI,CAAC,UAAqB,IAAI,OAAO,CAAA;YACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAmB,CAAA;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAkB,CAAA;YACxC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACxC,MAAM,IAAI,aAAa,CACrB,6CAA6C,EAC7C,cAAc,EACd,yBAAyB,CAC1B,CAAA;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YACrD,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAE/C,MAAM,SAAS,GAAG,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAA;YAC3C,MAAM,SAAS,GAAG,UAAU,SAAS,YAAY,SAAS,aAAa,SAAS,qBAAqB,SAAS,MAAM,CAAA;YAEpH,mDAAmD;YACnD,MAAM,MAAM,GAAG,aAAa,QAAQ,EAAE,CAAA;YACtC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,MAAM,GAAG,CAAC,CAAA;YACjD,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;gBACnB,MAAM,IAAI,aAAa,CAAC,cAAc,QAAQ,aAAa,EAAE,iBAAiB,EAAE,6BAA6B,CAAC,CAAA;YAChH,CAAC;YAED,wCAAwC;YACxC,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,CAAA;YAChD,IAAI,MAAM,KAAK,CAAC,CAAC;gBAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;YAE1C,MAAM,OAAO,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAA;YACnF,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAEzC,OAAO,aAAa,CAAC,SAAS,SAAS,WAAW,SAAS,iBAAiB,QAAQ,EAAE,CAAC,CAAA;QACzF,CAAC;QAED,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,wEAAwE;YACxE,4BAA4B;YAC5B,OAAO,aAAa,CAClB,iEAAiE;gBAC/D,kEAAkE;gBAClE,kGAAkG,CACrG,CAAA;QACH,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAA;YAC3C,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAA;YAEzG,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YACrD,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAE/C,MAAM,UAAU,GAA0D,EAAE,CAAA;YAC5E,MAAM,SAAS,GAAG,iDAAiD,CAAA;YACnE,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBACnB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAA;gBACnF,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;gBAC/E,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;gBAC3E,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;oBAC1B,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;oBAC5B,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,KAAK;iBAC/C,CAAC,CAAA;YACJ,CAAC;YAED,kCAAkC;YAClC,MAAM,OAAO,GAAa,EAAE,CAAA;YAC5B,MAAM,WAAW,GAAG,+CAA+C,CAAA;YACnE,KAAK,MAAM,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;YAC9B,CAAC;YAED,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAA;QAC9D,CAAC;QAED;YACE,MAAM,IAAI,aAAa,CACrB,mBAAmB,MAAM,EAAE,EAC3B,gBAAgB,EAChB,0GAA0G,CAC3G,CAAA;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"animation.js","sourceRoot":"","sources":["../../../../src/tools/composite/animation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/audio.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGvD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GA0KnG"}
1
+ {"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/audio.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIvD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GA0KnG"}
@@ -5,6 +5,7 @@
5
5
  import { existsSync, readFileSync, writeFileSync } from 'node:fs';
6
6
  import { resolve } from 'node:path';
7
7
  import { formatJSON, formatSuccess, GodotMCPError } from '../helpers/errors.js';
8
+ import { safeResolve } from '../helpers/paths.js';
8
9
  export async function handleAudio(action, args, config) {
9
10
  const projectPath = args.project_path || config.projectPath;
10
11
  switch (action) {
@@ -134,7 +135,7 @@ export async function handleAudio(action, args, config) {
134
135
  const streamType = args.stream_type || '2D';
135
136
  const parent = args.parent || '.';
136
137
  const bus = args.bus || 'Master';
137
- const fullPath = projectPath ? resolve(projectPath, scenePath) : resolve(scenePath);
138
+ const fullPath = projectPath ? safeResolve(projectPath, scenePath) : resolve(scenePath);
138
139
  if (!existsSync(fullPath))
139
140
  throw new GodotMCPError(`Scene not found: ${scenePath}`, 'SCENE_ERROR', 'Check file path.');
140
141
  let content = readFileSync(fullPath, 'utf-8');
@@ -1 +1 @@
1
- {"version":3,"file":"audio.js","sourceRoot":"","sources":["../../../../src/tools/composite/audio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audio.js","sourceRoot":"","sources":["../../../../src/tools/composite/audio.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/navigation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAiBvD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAwExG"}
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/navigation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAkBvD,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAwExG"}
@@ -5,8 +5,9 @@
5
5
  import { existsSync, readFileSync, writeFileSync } from 'node:fs';
6
6
  import { resolve } from 'node:path';
7
7
  import { formatSuccess, GodotMCPError } from '../helpers/errors.js';
8
+ import { safeResolve } from '../helpers/paths.js';
8
9
  function resolveScene(projectPath, scenePath) {
9
- const fullPath = projectPath ? resolve(projectPath, scenePath) : resolve(scenePath);
10
+ const fullPath = projectPath ? safeResolve(projectPath, scenePath) : resolve(scenePath);
10
11
  if (!existsSync(fullPath))
11
12
  throw new GodotMCPError(`Scene not found: ${scenePath}`, 'SCENE_ERROR', 'Check the file path.');
12
13
  return fullPath;
@@ -1 +1 @@
1
- {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/tools/composite/navigation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEnE,SAAS,YAAY,CAAC,WAAsC,EAAE,SAAiB;IAC7E,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACnF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACvB,MAAM,IAAI,aAAa,CAAC,oBAAoB,SAAS,EAAE,EAAE,aAAa,EAAE,sBAAsB,CAAC,CAAA;IACjG,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,IAAY,EAAE,IAAY,EAAE,MAAc,EAAE,UAAmB;IAClG,MAAM,UAAU,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,MAAM,GAAG,CAAA;IAC9D,IAAI,QAAQ,GAAG,iBAAiB,IAAI,WAAW,IAAI,IAAI,UAAU,KAAK,CAAA;IACtE,IAAI,UAAU;QAAE,QAAQ,IAAI,GAAG,UAAU,IAAI,CAAA;IAC7C,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAA;AAC5C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,IAA6B,EAAE,MAAmB;IACvG,MAAM,WAAW,GAAI,IAAI,CAAC,YAAuB,IAAI,MAAM,CAAC,WAAW,CAAA;IAEvE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAA;YAC3C,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAA;YACzG,MAAM,UAAU,GAAI,IAAI,CAAC,IAAe,IAAI,oBAAoB,CAAA;YAChE,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,GAAG,CAAA;YAC7C,MAAM,SAAS,GAAI,IAAI,CAAC,SAAoB,IAAI,IAAI,CAAA;YAEpD,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YACrD,IAAI,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAE7C,MAAM,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAA;YACjF,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;YAE3D,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YACzC,OAAO,aAAa,CAAC,8BAA8B,UAAU,KAAK,QAAQ,GAAG,CAAC,CAAA;QAChF,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAA;YAC3C,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAA;YACzG,MAAM,SAAS,GAAI,IAAI,CAAC,IAAe,IAAI,mBAAmB,CAAA;YAC9D,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,GAAG,CAAA;YAC7C,MAAM,SAAS,GAAI,IAAI,CAAC,SAAoB,IAAI,IAAI,CAAA;YAEpD,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YACrD,IAAI,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAE7C,MAAM,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAA;YAC/E,IAAI,UAAU,GAAG,EAAE,CAAA;YACnB,IAAI,IAAI,CAAC,MAAM;gBAAE,UAAU,IAAI,YAAY,IAAI,CAAC,MAAM,IAAI,CAAA;YAC1D,IAAI,IAAI,CAAC,SAAS;gBAAE,UAAU,IAAI,eAAe,IAAI,CAAC,SAAS,IAAI,CAAA;YACnE,IAAI,IAAI,CAAC,qBAAqB;gBAAE,UAAU,IAAI,2BAA2B,IAAI,CAAC,qBAAqB,IAAI,CAAA;YACvG,IAAI,IAAI,CAAC,uBAAuB;gBAAE,UAAU,IAAI,6BAA6B,IAAI,CAAC,uBAAuB,IAAI,CAAA;YAE7G,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,IAAI,SAAS,CAAC,CAAA;YAEnF,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YACzC,OAAO,aAAa,CAAC,2BAA2B,SAAS,KAAK,QAAQ,GAAG,CAAC,CAAA;QAC5E,CAAC;QAED,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAA;YAC3C,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAA;YACzG,MAAM,YAAY,GAAI,IAAI,CAAC,IAAe,IAAI,sBAAsB,CAAA;YACpE,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,GAAG,CAAA;YAC7C,MAAM,SAAS,GAAI,IAAI,CAAC,SAAoB,IAAI,IAAI,CAAA;YAEpD,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YACrD,IAAI,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAE7C,MAAM,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,sBAAsB,CAAA;YACrF,IAAI,UAAU,GAAG,EAAE,CAAA;YACnB,IAAI,IAAI,CAAC,MAAM;gBAAE,UAAU,IAAI,YAAY,IAAI,CAAC,MAAM,IAAI,CAAA;YAC1D,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS;gBAAE,UAAU,IAAI,uBAAuB,IAAI,CAAC,iBAAiB,IAAI,CAAA;YAEzG,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,IAAI,SAAS,CAAC,CAAA;YAEtF,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YACzC,OAAO,aAAa,CAAC,8BAA8B,YAAY,KAAK,QAAQ,GAAG,CAAC,CAAA;QAClF,CAAC;QAED;YACE,MAAM,IAAI,aAAa,CACrB,mBAAmB,MAAM,EAAE,EAC3B,gBAAgB,EAChB,qFAAqF,CACtF,CAAA;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/tools/composite/navigation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/nodes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,sBAAsB,CAAA;AAoClE,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAoJnG"}
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/nodes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,sBAAsB,CAAA;AAqClE,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAoJnG"}
@@ -5,6 +5,7 @@
5
5
  import { existsSync, readFileSync, writeFileSync } from 'node:fs';
6
6
  import { resolve } from 'node:path';
7
7
  import { formatJSON, formatSuccess, GodotMCPError } from '../helpers/errors.js';
8
+ import { safeResolve } from '../helpers/paths.js';
8
9
  import { getNodeProperty, parseSceneContent, removeNodeFromContent, renameNodeInContent, setNodePropertyInContent, } from '../helpers/scene-parser.js';
9
10
  /**
10
11
  * Map scene-parser's SceneNodeInfo to internal SceneNode format
@@ -25,7 +26,7 @@ function mapToSceneNode(node) {
25
26
  };
26
27
  }
27
28
  function resolveScenePath(projectPath, scenePath) {
28
- return projectPath ? resolve(projectPath, scenePath) : resolve(scenePath);
29
+ return projectPath ? safeResolve(projectPath, scenePath) : resolve(scenePath);
29
30
  }
30
31
  export async function handleNodes(action, args, config) {
31
32
  const projectPath = args.project_path || config.projectPath;
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../../src/tools/composite/nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../../src/tools/composite/nodes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"physics.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/physics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIvD,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAoHrG"}
1
+ {"version":3,"file":"physics.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/physics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAKvD,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAoHrG"}
@@ -5,6 +5,7 @@
5
5
  import { existsSync, readFileSync, writeFileSync } from 'node:fs';
6
6
  import { join, resolve } from 'node:path';
7
7
  import { formatJSON, formatSuccess, GodotMCPError } from '../helpers/errors.js';
8
+ import { safeResolve } from '../helpers/paths.js';
8
9
  import { parseProjectSettings, setSettingInContent } from '../helpers/project-settings.js';
9
10
  export async function handlePhysics(action, args, config) {
10
11
  const projectPath = args.project_path || config.projectPath;
@@ -38,7 +39,7 @@ export async function handlePhysics(action, args, config) {
38
39
  throw new GodotMCPError('No node name specified', 'INVALID_ARGS', 'Provide node name.');
39
40
  const collisionLayer = args.collision_layer;
40
41
  const collisionMask = args.collision_mask;
41
- const fullPath = projectPath ? resolve(projectPath, scenePath) : resolve(scenePath);
42
+ const fullPath = projectPath ? safeResolve(projectPath, scenePath) : resolve(scenePath);
42
43
  if (!existsSync(fullPath))
43
44
  throw new GodotMCPError(`Scene not found: ${scenePath}`, 'SCENE_ERROR', 'Check file path.');
44
45
  let content = readFileSync(fullPath, 'utf-8');
@@ -66,7 +67,7 @@ export async function handlePhysics(action, args, config) {
66
67
  const nodeName = args.name;
67
68
  if (!nodeName)
68
69
  throw new GodotMCPError('No node name specified', 'INVALID_ARGS', 'Provide node name.');
69
- const fullPath = projectPath ? resolve(projectPath, scenePath) : resolve(scenePath);
70
+ const fullPath = projectPath ? safeResolve(projectPath, scenePath) : resolve(scenePath);
70
71
  if (!existsSync(fullPath))
71
72
  throw new GodotMCPError(`Scene not found: ${scenePath}`, 'SCENE_ERROR', 'Check file path.');
72
73
  let content = readFileSync(fullPath, 'utf-8');
@@ -1 +1 @@
1
- {"version":3,"file":"physics.js","sourceRoot":"","sources":["../../../../src/tools/composite/physics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"physics.js","sourceRoot":"","sources":["../../../../src/tools/composite/physics.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/project.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,sBAAsB,CAAA;AAqDpE,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAoHrG"}
1
+ {"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/project.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAe,MAAM,sBAAsB,CAAA;AAsDpE,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAoHrG"}
@@ -8,6 +8,7 @@ import { readFile, writeFile } from 'node:fs/promises';
8
8
  import { join, resolve } from 'node:path';
9
9
  import { execGodotSync, runGodotProject } from '../../godot/headless.js';
10
10
  import { formatJSON, formatSuccess, GodotMCPError } from '../helpers/errors.js';
11
+ import { safeResolve } from '../helpers/paths.js';
11
12
  import { getSetting, parseProjectSettingsAsync, setSettingInContent } from '../helpers/project-settings.js';
12
13
  async function parseProjectGodot(projectPath) {
13
14
  const configPath = join(projectPath, 'project.godot');
@@ -135,7 +136,7 @@ export async function handleProject(action, args, config) {
135
136
  resolve(projectPath),
136
137
  '--export-release',
137
138
  preset,
138
- resolve(projectPath, outputPath),
139
+ safeResolve(projectPath, outputPath),
139
140
  ]);
140
141
  return formatSuccess(`Export complete: ${outputPath}\n${result.stdout}`);
141
142
  }
@@ -1 +1 @@
1
- {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../../src/tools/composite/project.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project.js","sourceRoot":"","sources":["../../../../src/tools/composite/project.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shader.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/shader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAmEvD,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAiHpG"}
1
+ {"version":3,"file":"shader.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/shader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAoEvD,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAiHpG"}
@@ -5,6 +5,7 @@
5
5
  import { mkdir, readdir, readFile, writeFile } from 'node:fs/promises';
6
6
  import { dirname, extname, join, relative, resolve } from 'node:path';
7
7
  import { formatJSON, formatSuccess, GodotMCPError } from '../helpers/errors.js';
8
+ import { safeResolve } from '../helpers/paths.js';
8
9
  const SHADER_TEMPLATES = {
9
10
  canvas_item: `shader_type canvas_item;
10
11
 
@@ -77,7 +78,7 @@ export async function handleShader(action, args, config) {
77
78
  throw new GodotMCPError('No shader_path specified', 'INVALID_ARGS', 'Provide shader_path (e.g., "shaders/effect.gdshader").');
78
79
  const shaderType = args.shader_type || 'canvas_item';
79
80
  const content = args.content || SHADER_TEMPLATES[shaderType] || SHADER_TEMPLATES.canvas_item;
80
- const fullPath = projectPath ? resolve(projectPath, shaderPath) : resolve(shaderPath);
81
+ const fullPath = projectPath ? safeResolve(projectPath, shaderPath) : resolve(shaderPath);
81
82
  // Ensure directory exists
82
83
  await mkdir(dirname(fullPath), { recursive: true });
83
84
  try {
@@ -96,7 +97,7 @@ export async function handleShader(action, args, config) {
96
97
  const shaderPath = args.shader_path;
97
98
  if (!shaderPath)
98
99
  throw new GodotMCPError('No shader_path specified', 'INVALID_ARGS', 'Provide shader_path.');
99
- const fullPath = projectPath ? resolve(projectPath, shaderPath) : resolve(shaderPath);
100
+ const fullPath = projectPath ? safeResolve(projectPath, shaderPath) : resolve(shaderPath);
100
101
  try {
101
102
  const content = await readFile(fullPath, 'utf-8');
102
103
  return formatSuccess(`File: ${shaderPath}\n\n${content}`);
@@ -115,7 +116,7 @@ export async function handleShader(action, args, config) {
115
116
  const content = args.content;
116
117
  if (!content)
117
118
  throw new GodotMCPError('No content specified', 'INVALID_ARGS', 'Provide shader content.');
118
- const fullPath = projectPath ? resolve(projectPath, shaderPath) : resolve(shaderPath);
119
+ const fullPath = projectPath ? safeResolve(projectPath, shaderPath) : resolve(shaderPath);
119
120
  await mkdir(dirname(fullPath), { recursive: true });
120
121
  await writeFile(fullPath, content, 'utf-8');
121
122
  return formatSuccess(`Written: ${shaderPath} (${content.length} chars)`);
@@ -124,7 +125,7 @@ export async function handleShader(action, args, config) {
124
125
  const shaderPath = args.shader_path;
125
126
  if (!shaderPath)
126
127
  throw new GodotMCPError('No shader_path specified', 'INVALID_ARGS', 'Provide shader_path.');
127
- const fullPath = projectPath ? resolve(projectPath, shaderPath) : resolve(shaderPath);
128
+ const fullPath = projectPath ? safeResolve(projectPath, shaderPath) : resolve(shaderPath);
128
129
  try {
129
130
  const content = await readFile(fullPath, 'utf-8');
130
131
  const params = [];
@@ -1 +1 @@
1
- {"version":3,"file":"shader.js","sourceRoot":"","sources":["../../../../src/tools/composite/shader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shader.js","sourceRoot":"","sources":["../../../../src/tools/composite/shader.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/signals.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIvD,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAwHrG"}
1
+ {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/signals.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAKvD,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAwHrG"}
@@ -5,13 +5,14 @@
5
5
  import { readFile, writeFile } from 'node:fs/promises';
6
6
  import { resolve } from 'node:path';
7
7
  import { formatJSON, formatSuccess, GodotMCPError } from '../helpers/errors.js';
8
+ import { safeResolve } from '../helpers/paths.js';
8
9
  import { parseSceneContent } from '../helpers/scene-parser.js';
9
10
  export async function handleSignals(action, args, config) {
10
11
  const projectPath = args.project_path || config.projectPath;
11
12
  const scenePath = args.scene_path;
12
13
  if (!scenePath)
13
14
  throw new GodotMCPError('No scene_path specified', 'INVALID_ARGS', 'Provide scene_path.');
14
- const fullPath = projectPath ? resolve(projectPath, scenePath) : resolve(scenePath);
15
+ const fullPath = projectPath ? safeResolve(projectPath, scenePath) : resolve(scenePath);
15
16
  async function readScene() {
16
17
  try {
17
18
  return await readFile(fullPath, 'utf-8');
@@ -1 +1 @@
1
- {"version":3,"file":"signals.js","sourceRoot":"","sources":["../../../../src/tools/composite/signals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"signals.js","sourceRoot":"","sources":["../../../../src/tools/composite/signals.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAE9D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,IAA6B,EAAE,MAAmB;IACpG,MAAM,WAAW,GAAI,IAAI,CAAC,YAAuB,IAAI,MAAM,CAAC,WAAW,CAAA;IACvE,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAA;IAE3C,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAA;IACzG,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAEvF,KAAK,UAAU,SAAS;QACtB,IAAI,CAAC;YACH,OAAO,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAC1C,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,MAAM,IAAI,aAAa,CAAC,oBAAoB,SAAS,EAAE,EAAE,aAAa,EAAE,sBAAsB,CAAC,CAAA;YACjG,CAAC;YACD,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,OAAO,GAAG,MAAM,SAAS,EAAE,CAAA;YACjC,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;YAExC,OAAO,UAAU,CAAC;gBAChB,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM;gBAC/B,WAAW,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzC,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,KAAK,EAAE,CAAC,CAAC,KAAK;iBACf,CAAC,CAAC;aACJ,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAA;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAA;YAChC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAY,CAAA;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAA;YACpC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACvC,MAAM,IAAI,aAAa,CACrB,uCAAuC,EACvC,cAAc,EACd,iEAAiE,CAClE,CAAA;YACH,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAA2B,CAAA;YAE9C,IAAI,OAAO,GAAG,MAAM,SAAS,EAAE,CAAA;YAE/B,sBAAsB;YACtB,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;YACxC,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,IAAI,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CACpF,CAAA;YACD,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,IAAI,aAAa,CACrB,2BAA2B,EAC3B,cAAc,EACd,4CAA4C,CAC7C,CAAA;YACH,CAAC;YAED,oBAAoB;YACpB,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;YAC9D,MAAM,cAAc,GAAG,yBAAyB,MAAM,WAAW,IAAI,SAAS,EAAE,aAAa,MAAM,IAAI,SAAS,KAAK,CAAA;YACrH,OAAO,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,cAAc,EAAE,CAAA;YAEnD,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAC3C,OAAO,aAAa,CAAC,cAAc,IAAI,IAAI,MAAM,OAAO,EAAE,IAAI,MAAM,IAAI,CAAC,CAAA;QAC3E,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAA;YACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAA;YAChC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAY,CAAA;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAgB,CAAA;YACpC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACvC,MAAM,IAAI,aAAa,CACrB,uCAAuC,EACvC,cAAc,EACd,mCAAmC,CACpC,CAAA;YACH,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,SAAS,EAAE,CAAA;YACjC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;gBAC3B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC;oBAAE,OAAO,IAAI,CAAA;gBACnD,OAAO,CAAC,CACN,OAAO,CAAC,QAAQ,CAAC,WAAW,MAAM,GAAG,CAAC;oBACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,IAAI,GAAG,CAAC;oBAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;oBAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,MAAM,GAAG,CAAC,CACvC,CAAA;YACH,CAAC,CAAC,CAAA;YAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;gBACrC,MAAM,IAAI,aAAa,CACrB,sBAAsB,EACtB,cAAc,EACd,gDAAgD,CACjD,CAAA;YACH,CAAC;YAED,MAAM,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;YACvD,OAAO,aAAa,CAAC,iBAAiB,IAAI,IAAI,MAAM,OAAO,EAAE,IAAI,MAAM,IAAI,CAAC,CAAA;QAC9E,CAAC;QAED;YACE,MAAM,IAAI,aAAa,CACrB,mBAAmB,MAAM,EAAE,EAC3B,gBAAgB,EAChB,wEAAwE,CACzE,CAAA;IACL,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tilemap.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/tilemap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAGvD,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAwGrG"}
1
+ {"version":3,"file":"tilemap.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/tilemap.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAIvD,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAwGrG"}
@@ -5,6 +5,7 @@
5
5
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
6
6
  import { dirname, resolve } from 'node:path';
7
7
  import { formatJSON, formatSuccess, GodotMCPError } from '../helpers/errors.js';
8
+ import { safeResolve } from '../helpers/paths.js';
8
9
  export async function handleTilemap(action, args, config) {
9
10
  const projectPath = args.project_path || config.projectPath;
10
11
  switch (action) {
@@ -13,7 +14,7 @@ export async function handleTilemap(action, args, config) {
13
14
  if (!tilesetPath)
14
15
  throw new GodotMCPError('No tileset_path specified', 'INVALID_ARGS', 'Provide tileset_path (e.g., "tilesets/main.tres").');
15
16
  const tileSize = args.tile_size || 16;
16
- const fullPath = projectPath ? resolve(projectPath, tilesetPath) : resolve(tilesetPath);
17
+ const fullPath = projectPath ? safeResolve(projectPath, tilesetPath) : resolve(tilesetPath);
17
18
  if (existsSync(fullPath)) {
18
19
  throw new GodotMCPError(`TileSet already exists: ${tilesetPath}`, 'TILEMAP_ERROR', 'Use a different path.');
19
20
  }
@@ -35,7 +36,7 @@ export async function handleTilemap(action, args, config) {
35
36
  if (!tilesetPath || !texturePath) {
36
37
  throw new GodotMCPError('tileset_path and texture_path required', 'INVALID_ARGS', 'Both are required.');
37
38
  }
38
- const fullPath = projectPath ? resolve(projectPath, tilesetPath) : resolve(tilesetPath);
39
+ const fullPath = projectPath ? safeResolve(projectPath, tilesetPath) : resolve(tilesetPath);
39
40
  if (!existsSync(fullPath))
40
41
  throw new GodotMCPError(`TileSet not found: ${tilesetPath}`, 'TILEMAP_ERROR', 'Create the tileset first.');
41
42
  let content = readFileSync(fullPath, 'utf-8');
@@ -66,7 +67,7 @@ export async function handleTilemap(action, args, config) {
66
67
  const scenePath = args.scene_path;
67
68
  if (!scenePath)
68
69
  throw new GodotMCPError('No scene_path specified', 'INVALID_ARGS', 'Provide scene_path.');
69
- const fullPath = projectPath ? resolve(projectPath, scenePath) : resolve(scenePath);
70
+ const fullPath = projectPath ? safeResolve(projectPath, scenePath) : resolve(scenePath);
70
71
  if (!existsSync(fullPath))
71
72
  throw new GodotMCPError(`Scene not found: ${scenePath}`, 'SCENE_ERROR', 'Check the file path.');
72
73
  const content = readFileSync(fullPath, 'utf-8');
@@ -1 +1 @@
1
- {"version":3,"file":"tilemap.js","sourceRoot":"","sources":["../../../../src/tools/composite/tilemap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tilemap.js","sourceRoot":"","sources":["../../../../src/tools/composite/tilemap.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAgCvD,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAyLhG"}
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../src/tools/composite/ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAiCvD,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW;;;;;GAyLhG"}
@@ -5,6 +5,7 @@
5
5
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
6
6
  import { dirname, resolve } from 'node:path';
7
7
  import { formatJSON, formatSuccess, GodotMCPError } from '../helpers/errors.js';
8
+ import { safeResolve } from '../helpers/paths.js';
8
9
  import { parseScene } from '../helpers/scene-parser.js';
9
10
  const CONTROL_TEMPLATES = {
10
11
  Button: { text: '"Click"' },
@@ -27,7 +28,7 @@ const CONTROL_TEMPLATES = {
27
28
  GridContainer: { columns: '2' },
28
29
  };
29
30
  function resolveScene(projectPath, scenePath) {
30
- const fullPath = projectPath ? resolve(projectPath, scenePath) : resolve(scenePath);
31
+ const fullPath = projectPath ? safeResolve(projectPath, scenePath) : resolve(scenePath);
31
32
  if (!existsSync(fullPath))
32
33
  throw new GodotMCPError(`Scene not found: ${scenePath}`, 'SCENE_ERROR', 'Check the file path.');
33
34
  return fullPath;
@@ -70,7 +71,7 @@ export async function handleUI(action, args, config) {
70
71
  const themePath = args.theme_path;
71
72
  if (!themePath)
72
73
  throw new GodotMCPError('No theme_path specified', 'INVALID_ARGS', 'Provide theme_path (e.g., "themes/main.tres").');
73
- const fullPath = projectPath ? resolve(projectPath, themePath) : resolve(themePath);
74
+ const fullPath = projectPath ? safeResolve(projectPath, themePath) : resolve(themePath);
74
75
  const fontSize = args.font_size || 16;
75
76
  const _fontColor = args.font_color || 'Color(1, 1, 1, 1)';
76
77
  const _bgColor = args.bg_color || 'Color(0.15, 0.15, 0.15, 1)';
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../../src/tools/composite/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../../src/tools/composite/ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC5E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAE5C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,MAAM,iBAAiB,GAA2C;IAChE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC1B,QAAQ,EAAE,EAAE,gBAAgB,EAAE,iBAAiB,EAAE;IACjD,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE;IAClD,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE;IAC7C,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC7B,YAAY,EAAE,EAAE;IAChB,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE;IAC7C,iBAAiB,EAAE,EAAE;IACrB,WAAW,EAAE,EAAE;IACf,KAAK,EAAE,EAAE;IACT,YAAY,EAAE,EAAE;IAChB,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,EAAE;IACnB,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE;IACjB,aAAa,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE;CAChC,CAAA;AAED,SAAS,YAAY,CAAC,WAAsC,EAAE,SAAiB;IAC7E,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACvF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACvB,MAAM,IAAI,aAAa,CAAC,oBAAoB,SAAS,EAAE,EAAE,aAAa,EAAE,sBAAsB,CAAC,CAAA;IACjG,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,MAAc,EAAE,IAA6B,EAAE,MAAmB;IAC/F,MAAM,WAAW,GAAI,IAAI,CAAC,YAAuB,IAAI,MAAM,CAAC,WAAW,CAAA;IAEvE,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,gBAAgB,CAAC,CAAC,CAAC;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAA;YAC3C,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAA;YACzG,MAAM,WAAW,GAAG,IAAI,CAAC,IAAc,CAAA;YACvC,MAAM,WAAW,GAAI,IAAI,CAAC,IAAe,IAAI,SAAS,CAAA;YACtD,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,GAAG,CAAA;YAE7C,IAAI,CAAC,WAAW;gBAAE,MAAM,IAAI,aAAa,CAAC,mBAAmB,EAAE,cAAc,EAAE,4BAA4B,CAAC,CAAA;YAE5G,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YACrD,IAAI,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAE7C,MAAM,UAAU,GAAG,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,MAAM,GAAG,CAAA;YAC9D,IAAI,QAAQ,GAAG,iBAAiB,WAAW,WAAW,WAAW,IAAI,UAAU,KAAK,CAAA;YAEpF,iDAAiD;YACjD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAA;YAC/C,IAAI,QAAQ,EAAE,CAAC;gBACb,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACpD,QAAQ,IAAI,GAAG,GAAG,MAAM,KAAK,IAAI,CAAA;gBACnC,CAAC;YACH,CAAC;YAED,wBAAwB;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAgD,CAAA;YACnE,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjD,QAAQ,IAAI,GAAG,GAAG,MAAM,KAAK,IAAI,CAAA;gBACnC,CAAC;YACH,CAAC;YAED,OAAO,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAA;YAC7C,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAEzC,OAAO,aAAa,CAAC,uBAAuB,WAAW,KAAK,WAAW,WAAW,MAAM,EAAE,CAAC,CAAA;QAC7F,CAAC;QAED,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAA;YAC3C,IAAI,CAAC,SAAS;gBACZ,MAAM,IAAI,aAAa,CACrB,yBAAyB,EACzB,cAAc,EACd,gDAAgD,CACjD,CAAA;YAEH,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YAEvF,MAAM,QAAQ,GAAI,IAAI,CAAC,SAAoB,IAAI,EAAE,CAAA;YACjD,MAAM,UAAU,GAAI,IAAI,CAAC,UAAqB,IAAI,mBAAmB,CAAA;YACrE,MAAM,QAAQ,GAAI,IAAI,CAAC,QAAmB,IAAI,4BAA4B,CAAA;YAE1E,MAAM,OAAO,GAAG;gBACd,qCAAqC;gBACrC,EAAE;gBACF,YAAY;gBACZ,uBAAuB,QAAQ,EAAE;gBACjC,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAEZ,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YACjD,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAEzC,OAAO,aAAa,CAAC,kBAAkB,SAAS,gBAAgB,QAAQ,GAAG,CAAC,CAAA;QAC9E,CAAC;QAED,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAA;YAC3C,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAA;YACzG,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAc,CAAA;YACpC,IAAI,CAAC,QAAQ;gBAAE,MAAM,IAAI,aAAa,CAAC,mBAAmB,EAAE,cAAc,EAAE,oBAAoB,CAAC,CAAA;YACjG,MAAM,MAAM,GAAI,IAAI,CAAC,MAAiB,IAAI,WAAW,CAAA;YAErD,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YACrD,IAAI,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAE7C,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,kBAAkB,QAAQ,cAAc,CAAC,CAAA;YACtE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YACtC,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,aAAa,CAAC,SAAS,QAAQ,aAAa,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAA;YAErG,IAAI,WAAW,GAAG,EAAE,CAAA;YACpB,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,WAAW;oBACd,WAAW;wBACT,wGAAwG,CAAA;oBAC1G,MAAK;gBACP,KAAK,QAAQ;oBACX,WAAW;wBACT,4IAA4I,CAAA;oBAC9I,MAAK;gBACP,KAAK,UAAU;oBACb,WAAW,GAAG,gEAAgE,CAAA;oBAC9E,MAAK;gBACP,KAAK,aAAa;oBAChB,WAAW;wBACT,0HAA0H,CAAA;oBAC5H,MAAK;gBACP,KAAK,WAAW;oBACd,WAAW,GAAG,8DAA8D,CAAA;oBAC5E,MAAK;gBACP,KAAK,YAAY;oBACf,WAAW;wBACT,2HAA2H,CAAA;oBAC7H,MAAK;gBACP;oBACE,MAAM,IAAI,aAAa,CACrB,0BAA0B,MAAM,EAAE,EAClC,cAAc,EACd,iFAAiF,CAClF,CAAA;YACL,CAAC;YAED,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS;gBAC3B,MAAM,IAAI,aAAa,CAAC,SAAS,QAAQ,aAAa,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAA;YAC3F,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;YACjD,OAAO,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAA;YACvF,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;YAEzC,OAAO,aAAa,CAAC,sBAAsB,MAAM,QAAQ,QAAQ,EAAE,CAAC,CAAA;QACtE,CAAC;QAED,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAoB,CAAA;YAC3C,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,aAAa,CAAC,yBAAyB,EAAE,cAAc,EAAE,qBAAqB,CAAC,CAAA;YAEzG,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;YACrD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAA;YAElC,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC;gBAC3B,SAAS;gBACT,QAAQ;gBACR,OAAO;gBACP,UAAU;gBACV,UAAU;gBACV,eAAe;gBACf,aAAa;gBACb,SAAS;gBACT,SAAS;gBACT,UAAU;gBACV,aAAa;gBACb,cAAc;gBACd,SAAS;gBACT,mBAAmB;gBACnB,aAAa;gBACb,eAAe;gBACf,OAAO;gBACP,gBAAgB;gBAChB,cAAc;gBACd,iBAAiB;gBACjB,iBAAiB;gBACjB,eAAe;gBACf,eAAe;gBACf,eAAe;gBACf,iBAAiB;gBACjB,sBAAsB;gBACtB,sBAAsB;gBACtB,UAAU;gBACV,MAAM;gBACN,WAAW;gBACX,WAAW;gBACX,eAAe;aAChB,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAqD,EAAE,CAAA;YAErE,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC/B,IAAI,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAA;gBACtF,CAAC;YACH,CAAC;YAED,OAAO,UAAU,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC3E,CAAC;QAED;YACE,MAAM,IAAI,aAAa,CACrB,mBAAmB,MAAM,EAAE,EAC3B,gBAAgB,EAChB,+FAA+F,CAChG,CAAA;IACL,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@n24q02m/better-godot-mcp",
3
- "version": "1.2.2",
3
+ "version": "1.2.3",
4
4
  "description": "Enhanced MCP server for Godot Engine with composite mega-tools and comprehensive game development tooling.",
5
5
  "type": "module",
6
6
  "main": "build/src/init-server.js",