@keeveeg/godot-mcp 1.0.2 → 1.0.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 (223) hide show
  1. package/package.json +1 -1
  2. package/server/dist/config.js +1 -1
  3. package/server/dist/godot-bridge.d.ts.map +1 -1
  4. package/server/dist/godot-bridge.js +264 -261
  5. package/server/dist/godot-bridge.js.map +1 -1
  6. package/server/dist/index.js +46 -45
  7. package/server/dist/server.d.ts.map +1 -1
  8. package/server/dist/server.js +25 -23
  9. package/server/dist/server.js.map +1 -1
  10. package/server/dist/tools/addon_management.d.ts.map +1 -1
  11. package/server/dist/tools/addon_management.js +37 -57
  12. package/server/dist/tools/addon_management.js.map +1 -1
  13. package/server/dist/tools/analysis.d.ts.map +1 -1
  14. package/server/dist/tools/analysis.js +21 -37
  15. package/server/dist/tools/analysis.js.map +1 -1
  16. package/server/dist/tools/animation.d.ts.map +1 -1
  17. package/server/dist/tools/animation.js +95 -135
  18. package/server/dist/tools/animation.js.map +1 -1
  19. package/server/dist/tools/audio.d.ts.map +1 -1
  20. package/server/dist/tools/audio.js +81 -109
  21. package/server/dist/tools/audio.js.map +1 -1
  22. package/server/dist/tools/audio_config.d.ts.map +1 -1
  23. package/server/dist/tools/audio_config.js +50 -76
  24. package/server/dist/tools/audio_config.js.map +1 -1
  25. package/server/dist/tools/batch.d.ts.map +1 -1
  26. package/server/dist/tools/batch.js +57 -89
  27. package/server/dist/tools/batch.js.map +1 -1
  28. package/server/dist/tools/build_config.d.ts.map +1 -1
  29. package/server/dist/tools/build_config.js +59 -91
  30. package/server/dist/tools/build_config.js.map +1 -1
  31. package/server/dist/tools/debug_config.d.ts.map +1 -1
  32. package/server/dist/tools/debug_config.js +46 -70
  33. package/server/dist/tools/debug_config.js.map +1 -1
  34. package/server/dist/tools/debugging.d.ts.map +1 -1
  35. package/server/dist/tools/debugging.js +51 -83
  36. package/server/dist/tools/debugging.js.map +1 -1
  37. package/server/dist/tools/editor.d.ts.map +1 -1
  38. package/server/dist/tools/editor.js +54 -90
  39. package/server/dist/tools/editor.js.map +1 -1
  40. package/server/dist/tools/editor_config.d.ts.map +1 -1
  41. package/server/dist/tools/editor_config.js +53 -85
  42. package/server/dist/tools/editor_config.js.map +1 -1
  43. package/server/dist/tools/export.d.ts.map +1 -1
  44. package/server/dist/tools/export.js +46 -74
  45. package/server/dist/tools/export.js.map +1 -1
  46. package/server/dist/tools/gameplay_automation.d.ts.map +1 -1
  47. package/server/dist/tools/gameplay_automation.js +70 -102
  48. package/server/dist/tools/gameplay_automation.js.map +1 -1
  49. package/server/dist/tools/index.js +42 -42
  50. package/server/dist/tools/input.d.ts.map +1 -1
  51. package/server/dist/tools/input.js +68 -100
  52. package/server/dist/tools/input.js.map +1 -1
  53. package/server/dist/tools/memory_profiling.d.ts.map +1 -1
  54. package/server/dist/tools/memory_profiling.js +31 -51
  55. package/server/dist/tools/memory_profiling.js.map +1 -1
  56. package/server/dist/tools/navigation.d.ts.map +1 -1
  57. package/server/dist/tools/navigation.js +86 -126
  58. package/server/dist/tools/navigation.js.map +1 -1
  59. package/server/dist/tools/node.d.ts.map +1 -1
  60. package/server/dist/tools/node.js +134 -202
  61. package/server/dist/tools/node.js.map +1 -1
  62. package/server/dist/tools/node_config.d.ts.map +1 -1
  63. package/server/dist/tools/node_config.js +58 -90
  64. package/server/dist/tools/node_config.js.map +1 -1
  65. package/server/dist/tools/particles.d.ts.map +1 -1
  66. package/server/dist/tools/particles.js +75 -111
  67. package/server/dist/tools/particles.js.map +1 -1
  68. package/server/dist/tools/physics.d.ts.map +1 -1
  69. package/server/dist/tools/physics.js +67 -99
  70. package/server/dist/tools/physics.js.map +1 -1
  71. package/server/dist/tools/physics_config.d.ts.map +1 -1
  72. package/server/dist/tools/physics_config.js +56 -88
  73. package/server/dist/tools/physics_config.js.map +1 -1
  74. package/server/dist/tools/platform_export.d.ts.map +1 -1
  75. package/server/dist/tools/platform_export.js +45 -69
  76. package/server/dist/tools/platform_export.js.map +1 -1
  77. package/server/dist/tools/platform_specific.d.ts.map +1 -1
  78. package/server/dist/tools/platform_specific.js +61 -85
  79. package/server/dist/tools/platform_specific.js.map +1 -1
  80. package/server/dist/tools/profiling.d.ts.map +1 -1
  81. package/server/dist/tools/profiling.js +13 -21
  82. package/server/dist/tools/profiling.js.map +1 -1
  83. package/server/dist/tools/project.d.ts.map +1 -1
  84. package/server/dist/tools/project.js +51 -79
  85. package/server/dist/tools/project.js.map +1 -1
  86. package/server/dist/tools/project_config.d.ts.map +1 -1
  87. package/server/dist/tools/project_config.js +88 -136
  88. package/server/dist/tools/project_config.js.map +1 -1
  89. package/server/dist/tools/project_creation.d.ts.map +1 -1
  90. package/server/dist/tools/project_creation.js +96 -140
  91. package/server/dist/tools/project_creation.js.map +1 -1
  92. package/server/dist/tools/rendering_config.d.ts.map +1 -1
  93. package/server/dist/tools/rendering_config.js +67 -103
  94. package/server/dist/tools/rendering_config.js.map +1 -1
  95. package/server/dist/tools/resource.js +77 -117
  96. package/server/dist/tools/resource_config.d.ts.map +1 -1
  97. package/server/dist/tools/resource_config.js +45 -69
  98. package/server/dist/tools/resource_config.js.map +1 -1
  99. package/server/dist/tools/runtime.d.ts.map +1 -1
  100. package/server/dist/tools/runtime.js +148 -224
  101. package/server/dist/tools/runtime.js.map +1 -1
  102. package/server/dist/tools/save_load.d.ts.map +1 -1
  103. package/server/dist/tools/save_load.js +36 -56
  104. package/server/dist/tools/save_load.js.map +1 -1
  105. package/server/dist/tools/scene.d.ts.map +1 -1
  106. package/server/dist/tools/scene.js +78 -122
  107. package/server/dist/tools/scene.js.map +1 -1
  108. package/server/dist/tools/scene3d.d.ts.map +1 -1
  109. package/server/dist/tools/scene3d.js +51 -75
  110. package/server/dist/tools/scene3d.js.map +1 -1
  111. package/server/dist/tools/scene_config.d.ts.map +1 -1
  112. package/server/dist/tools/scene_config.js +48 -72
  113. package/server/dist/tools/scene_config.js.map +1 -1
  114. package/server/dist/tools/script.js +68 -104
  115. package/server/dist/tools/script.js.map +1 -1
  116. package/server/dist/tools/shader.d.ts.map +1 -1
  117. package/server/dist/tools/shader.js +75 -111
  118. package/server/dist/tools/shader.js.map +1 -1
  119. package/server/dist/tools/shared-types.d.ts +2 -2
  120. package/server/dist/tools/shared-types.d.ts.map +1 -1
  121. package/server/dist/tools/shared-types.js +38 -36
  122. package/server/dist/tools/shared-types.js.map +1 -1
  123. package/server/dist/tools/testing.d.ts.map +1 -1
  124. package/server/dist/tools/testing.js +47 -69
  125. package/server/dist/tools/testing.js.map +1 -1
  126. package/server/dist/tools/theme.js +62 -90
  127. package/server/dist/tools/tilemap.js +58 -82
  128. package/server/dist/tools/visual_testing.d.ts.map +1 -1
  129. package/server/dist/tools/visual_testing.js +50 -74
  130. package/server/dist/tools/visual_testing.js.map +1 -1
  131. package/server/dist/types.js +15 -15
  132. package/server/dist/tools/accessibility.d.ts +0 -7
  133. package/server/dist/tools/accessibility.d.ts.map +0 -1
  134. package/server/dist/tools/accessibility.js +0 -71
  135. package/server/dist/tools/accessibility.js.map +0 -1
  136. package/server/dist/tools/analytics.d.ts +0 -7
  137. package/server/dist/tools/analytics.d.ts.map +0 -1
  138. package/server/dist/tools/analytics.js +0 -76
  139. package/server/dist/tools/analytics.js.map +0 -1
  140. package/server/dist/tools/asset_pipeline.d.ts +0 -7
  141. package/server/dist/tools/asset_pipeline.d.ts.map +0 -1
  142. package/server/dist/tools/asset_pipeline.js +0 -102
  143. package/server/dist/tools/asset_pipeline.js.map +0 -1
  144. package/server/dist/tools/asset_scaffolding.d.ts +0 -7
  145. package/server/dist/tools/asset_scaffolding.d.ts.map +0 -1
  146. package/server/dist/tools/asset_scaffolding.js +0 -113
  147. package/server/dist/tools/asset_scaffolding.js.map +0 -1
  148. package/server/dist/tools/cicd_pipeline.d.ts +0 -7
  149. package/server/dist/tools/cicd_pipeline.d.ts.map +0 -1
  150. package/server/dist/tools/cicd_pipeline.js +0 -125
  151. package/server/dist/tools/cicd_pipeline.js.map +0 -1
  152. package/server/dist/tools/cloud_services.d.ts +0 -7
  153. package/server/dist/tools/cloud_services.d.ts.map +0 -1
  154. package/server/dist/tools/cloud_services.js +0 -97
  155. package/server/dist/tools/cloud_services.js.map +0 -1
  156. package/server/dist/tools/code_generation.d.ts +0 -7
  157. package/server/dist/tools/code_generation.d.ts.map +0 -1
  158. package/server/dist/tools/code_generation.js +0 -79
  159. package/server/dist/tools/code_generation.js.map +0 -1
  160. package/server/dist/tools/code_quality.d.ts +0 -7
  161. package/server/dist/tools/code_quality.d.ts.map +0 -1
  162. package/server/dist/tools/code_quality.js +0 -98
  163. package/server/dist/tools/code_quality.js.map +0 -1
  164. package/server/dist/tools/collaboration.d.ts +0 -7
  165. package/server/dist/tools/collaboration.d.ts.map +0 -1
  166. package/server/dist/tools/collaboration.js +0 -73
  167. package/server/dist/tools/collaboration.js.map +0 -1
  168. package/server/dist/tools/documentation_tools.d.ts +0 -7
  169. package/server/dist/tools/documentation_tools.d.ts.map +0 -1
  170. package/server/dist/tools/documentation_tools.js +0 -89
  171. package/server/dist/tools/documentation_tools.js.map +0 -1
  172. package/server/dist/tools/game_template.d.ts +0 -7
  173. package/server/dist/tools/game_template.d.ts.map +0 -1
  174. package/server/dist/tools/game_template.js +0 -112
  175. package/server/dist/tools/game_template.js.map +0 -1
  176. package/server/dist/tools/git_integration.d.ts +0 -7
  177. package/server/dist/tools/git_integration.d.ts.map +0 -1
  178. package/server/dist/tools/git_integration.js +0 -75
  179. package/server/dist/tools/git_integration.js.map +0 -1
  180. package/server/dist/tools/headless_testing.d.ts +0 -7
  181. package/server/dist/tools/headless_testing.d.ts.map +0 -1
  182. package/server/dist/tools/headless_testing.js +0 -65
  183. package/server/dist/tools/headless_testing.js.map +0 -1
  184. package/server/dist/tools/iap_monetization.d.ts +0 -7
  185. package/server/dist/tools/iap_monetization.d.ts.map +0 -1
  186. package/server/dist/tools/iap_monetization.js +0 -70
  187. package/server/dist/tools/iap_monetization.js.map +0 -1
  188. package/server/dist/tools/localization.d.ts +0 -7
  189. package/server/dist/tools/localization.d.ts.map +0 -1
  190. package/server/dist/tools/localization.js +0 -97
  191. package/server/dist/tools/localization.js.map +0 -1
  192. package/server/dist/tools/marketing.d.ts +0 -7
  193. package/server/dist/tools/marketing.d.ts.map +0 -1
  194. package/server/dist/tools/marketing.js +0 -87
  195. package/server/dist/tools/marketing.js.map +0 -1
  196. package/server/dist/tools/mod_support.d.ts +0 -7
  197. package/server/dist/tools/mod_support.d.ts.map +0 -1
  198. package/server/dist/tools/mod_support.js +0 -93
  199. package/server/dist/tools/mod_support.js.map +0 -1
  200. package/server/dist/tools/networking.d.ts +0 -7
  201. package/server/dist/tools/networking.d.ts.map +0 -1
  202. package/server/dist/tools/networking.js +0 -94
  203. package/server/dist/tools/networking.js.map +0 -1
  204. package/server/dist/tools/performance_optimization.d.ts +0 -7
  205. package/server/dist/tools/performance_optimization.d.ts.map +0 -1
  206. package/server/dist/tools/performance_optimization.js +0 -75
  207. package/server/dist/tools/performance_optimization.js.map +0 -1
  208. package/server/dist/tools/scene_scaffolding.d.ts +0 -7
  209. package/server/dist/tools/scene_scaffolding.d.ts.map +0 -1
  210. package/server/dist/tools/scene_scaffolding.js +0 -110
  211. package/server/dist/tools/scene_scaffolding.js.map +0 -1
  212. package/server/dist/tools/script_scaffolding.d.ts +0 -7
  213. package/server/dist/tools/script_scaffolding.d.ts.map +0 -1
  214. package/server/dist/tools/script_scaffolding.js +0 -115
  215. package/server/dist/tools/script_scaffolding.js.map +0 -1
  216. package/server/dist/tools/security.d.ts +0 -7
  217. package/server/dist/tools/security.d.ts.map +0 -1
  218. package/server/dist/tools/security.js +0 -73
  219. package/server/dist/tools/security.js.map +0 -1
  220. package/server/dist/tools/version_control_advanced.d.ts +0 -7
  221. package/server/dist/tools/version_control_advanced.d.ts.map +0 -1
  222. package/server/dist/tools/version_control_advanced.js +0 -100
  223. package/server/dist/tools/version_control_advanced.js.map +0 -1
@@ -4,78 +4,50 @@
4
4
  import { callGodot } from '../server.js';
5
5
  import { z, Name } from './shared-types.js';
6
6
  export function registerExportTools(server, bridge) {
7
- // 1. list_export_presets
8
- server.registerTool(
9
- 'list_export_presets',
10
- {
11
- description: 'List all configured export presets',
12
- inputSchema: {},
13
- },
14
- async () => callGodot(bridge, 'export/list_presets'),
15
- );
16
- // 2. export_project
17
- server.registerTool(
18
- 'export_project',
19
- {
20
- description: 'Export the project using a specific preset',
21
- inputSchema: {
22
- preset: Name.describe('Export preset name'),
23
- output_path: z.string().optional().describe('Output path for the export'),
24
- debug: z.boolean().optional().default(false).describe('Export as debug build (default: false = release)'),
25
- pack_only: z.boolean().optional().default(false).describe('Export as pack file only (default: false)'),
26
- },
27
- },
28
- async (args) => callGodot(bridge, 'export/project', args),
29
- );
30
- // 3. get_export_info
31
- server.registerTool(
32
- 'get_export_info',
33
- {
34
- description: 'Get export project information (platform, features, resources)',
35
- inputSchema: {},
36
- },
37
- async () => callGodot(bridge, 'export/get_info'),
38
- );
39
- // 4. validate_export
40
- server.registerTool(
41
- 'validate_export',
42
- {
43
- description: 'Validate the project for export (check for missing resources, errors)',
44
- inputSchema: {},
45
- },
46
- async (args) => callGodot(bridge, 'export/validate', args),
47
- );
48
- // 5. get_export_templates
49
- server.registerTool(
50
- 'get_export_templates',
51
- {
52
- description: 'Get available export templates for the current Godot version',
53
- inputSchema: {},
54
- },
55
- async () => callGodot(bridge, 'export/get_templates'),
56
- );
57
- // 6. create_export_preset
58
- server.registerTool(
59
- 'create_export_preset',
60
- {
61
- description: 'Create a new export preset',
62
- inputSchema: {
63
- name: Name.describe('Preset name'),
64
- platform: z.string().describe("Target platform (e.g. 'Windows Desktop', 'Linux', 'Android')"),
65
- },
66
- },
67
- async (args) => callGodot(bridge, 'export/create_preset', args),
68
- );
69
- // 7. delete_export_preset
70
- server.registerTool(
71
- 'delete_export_preset',
72
- {
73
- description: 'Delete an export preset from the project',
74
- inputSchema: {
75
- name: z.string().describe('Name of the export preset to delete'),
76
- },
77
- },
78
- async (args) => callGodot(bridge, 'export/delete_preset', args),
79
- );
7
+ // 1. list_export_presets
8
+ server.registerTool('list_export_presets', {
9
+ description: 'List all configured export presets',
10
+ inputSchema: {},
11
+ }, async () => callGodot(bridge, 'export/list_presets'));
12
+ // 2. export_project
13
+ server.registerTool('export_project', {
14
+ description: 'Export the project using a specific preset',
15
+ inputSchema: {
16
+ preset: Name.describe('Export preset name'),
17
+ output_path: z.string().optional().describe('Output path for the export'),
18
+ debug: z.boolean().optional().default(false).describe('Export as debug build (default: false = release)'),
19
+ pack_only: z.boolean().optional().default(false).describe('Export as pack file only (default: false)'),
20
+ },
21
+ }, async (args) => callGodot(bridge, 'export/project', args));
22
+ // 3. get_export_info
23
+ server.registerTool('get_export_info', {
24
+ description: 'Get export project information (platform, features, resources)',
25
+ inputSchema: {},
26
+ }, async () => callGodot(bridge, 'export/get_info'));
27
+ // 4. validate_export
28
+ server.registerTool('validate_export', {
29
+ description: 'Validate the project for export (check for missing resources, errors)',
30
+ inputSchema: {},
31
+ }, async (args) => callGodot(bridge, 'export/validate', args));
32
+ // 5. get_export_templates
33
+ server.registerTool('get_export_templates', {
34
+ description: 'Get available export templates for the current Godot version',
35
+ inputSchema: {},
36
+ }, async () => callGodot(bridge, 'export/get_templates'));
37
+ // 6. create_export_preset
38
+ server.registerTool('create_export_preset', {
39
+ description: 'Create a new export preset',
40
+ inputSchema: {
41
+ name: Name.describe('Preset name'),
42
+ platform: z.string().describe("Target platform (e.g. 'Windows Desktop', 'Linux', 'Android')"),
43
+ },
44
+ }, async (args) => callGodot(bridge, 'export/create_preset', args));
45
+ // 7. delete_export_preset
46
+ server.registerTool('delete_export_preset', {
47
+ description: 'Delete an export preset from the project',
48
+ inputSchema: {
49
+ name: z.string().describe('Name of the export preset to delete'),
50
+ },
51
+ }, async (args) => callGodot(bridge, 'export/delete_preset', args));
80
52
  }
81
- //# sourceMappingURL=export.js.map
53
+ //# sourceMappingURL=export.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/tools/export.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAmB;IACxE,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,oCAAoC;QACjD,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC,CACrD,CAAC;IAEF,oBAAoB;IACpB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,4CAA4C;QACzD,WAAW,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YACzE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YACzG,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;SACvG;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAA+B,CAAC,CACrF,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,gEAAgE;QAC7E,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,CAAC,CACjD,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAA+B,CAAC,CACtF,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,8DAA8D;QAC3E,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,CAAC,CACtD,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,4BAA4B;QACzC,WAAW,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAClC,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,CAAC,8DAA8D,CAAC;SAC5E;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAA+B,CAAC,CAC3F,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,0CAA0C;QACvD,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;SACjE;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAA+B,CAAC,CAC3F,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/tools/export.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAmB;IACxE,yBAAyB;IACzB,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EAAE,oCAAoC;QACjD,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC,CACrD,CAAC;IAEF,oBAAoB;IACpB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,4CAA4C;QACzD,WAAW,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC3C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;YACzE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,kDAAkD,CAAC;YACzG,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;SACvG;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAA+B,CAAC,CACrF,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,gEAAgE;QAC7E,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,CAAC,CACjD,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAA+B,CAAC,CACtF,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,8DAA8D;QAC3E,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,CAAC,CACtD,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,4BAA4B;QACzC,WAAW,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;YAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;SAC9F;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAA+B,CAAC,CAC3F,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EAAE,0CAA0C;QACvD,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;SACjE;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAA+B,CAAC,CAC3F,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"gameplay_automation.d.ts","sourceRoot":"","sources":["../../src/tools/gameplay_automation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA2I5F"}
1
+ {"version":3,"file":"gameplay_automation.d.ts","sourceRoot":"","sources":["../../src/tools/gameplay_automation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA4G5F"}
@@ -4,106 +4,74 @@
4
4
  import { callGodot } from '../server.js';
5
5
  import { z, ScenePath, NodePath, Position3D, Properties } from './shared-types.js';
6
6
  export function registerGameplayAutomationTools(server, bridge) {
7
- // 1. simulate_gameplay_scenario
8
- server.registerTool(
9
- 'simulate_gameplay_scenario',
10
- {
11
- description: 'Run a sequence of gameplay actions (input, wait, check) as an automated scenario',
12
- inputSchema: {
13
- scenario: z
14
- .array(
15
- z.object({
16
- action: z.string().describe("Action type: 'input', 'wait', 'move', 'click', 'assert'"),
17
- params: Properties.describe('Parameters for the action'),
18
- wait: z.number().optional().describe('Wait time in ms after this step'),
19
- }),
20
- )
21
- .describe('Ordered list of gameplay actions to execute'),
22
- },
23
- },
24
- async (args) => callGodot(bridge, 'simulate_gameplay_scenario', args),
25
- );
26
- // 2. record_gameplay
27
- server.registerTool(
28
- 'record_gameplay',
29
- {
30
- description: 'Record gameplay for a duration, capturing input events and/or game state',
31
- inputSchema: {
32
- duration: z.number().min(1).max(300).optional().default(10).describe('Recording duration in seconds (default: 10)'),
33
- include_input: z.boolean().optional().default(true).describe('Record input events (default: true)'),
34
- include_state: z.boolean().optional().default(false).describe('Record game state snapshots (default: false)'),
35
- },
36
- },
37
- async (args) => callGodot(bridge, 'record_gameplay', args),
38
- );
39
- // 3. replay_gameplay
40
- server.registerTool(
41
- 'replay_gameplay',
42
- {
43
- description: 'Replay a previously recorded gameplay session',
44
- inputSchema: {
45
- recording_path: z.string().describe('Path to the recording file'),
46
- speed: z.number().min(0.1).max(10).optional().default(1.0).describe('Playback speed multiplier (default: 1.0)'),
47
- },
48
- },
49
- async (args) => callGodot(bridge, 'replay_gameplay', args),
50
- );
51
- // 4. create_test_character
52
- server.registerTool(
53
- 'create_test_character',
54
- {
55
- description: 'Create a test character in the scene at a specified position',
56
- inputSchema: {
57
- scene_path: ScenePath.describe('Path to the character scene to instantiate'),
58
- position: Position3D.optional().describe('World position [x, y, z]'),
59
- },
60
- },
61
- async (args) => callGodot(bridge, 'create_test_character', args),
62
- );
63
- // 5. navigate_character
64
- server.registerTool(
65
- 'navigate_character',
66
- {
67
- description: 'Move a character to a target position using direct movement or pathfinding',
68
- inputSchema: {
69
- character_path: NodePath,
70
- target: Position3D.describe('Target position [x, y, z]'),
71
- method: z.enum(['direct', 'pathfind']).optional().default('direct').describe('Navigation method (default: direct)'),
72
- },
73
- },
74
- async (args) => callGodot(bridge, 'navigate_character', args),
75
- );
76
- // 6. assert_game_state
77
- server.registerTool(
78
- 'assert_game_state',
79
- {
80
- description: 'Assert multiple game state conditions simultaneously',
81
- inputSchema: {
82
- conditions: z
83
- .array(
84
- z.object({
85
- path: z.string().describe('Node path'),
86
- property: z.string().describe('Property name to check'),
87
- expected: z.unknown().describe('Expected value'),
88
- operator: z.string().optional().describe('Comparison operator: ==, !=, >, <, >=, <=, contains'),
89
- }),
90
- )
91
- .describe('List of conditions that must all pass'),
92
- },
93
- },
94
- async (args) => callGodot(bridge, 'assert_game_state', args),
95
- );
96
- // 7. wait_for_game_event
97
- server.registerTool(
98
- 'wait_for_game_event',
99
- {
100
- description: 'Wait for a specific game event (signal, node creation, property change) with timeout',
101
- inputSchema: {
102
- event: z.string().describe("Event to wait for. Use prefix format: 'signal:NodePath:SignalName', 'node:NodePath', or 'property:NodePath:PropName:ExpectedValue'"),
103
- timeout: z.number().int().min(1).max(30000).optional().default(5000).describe('Timeout in milliseconds (default: 5000)'),
104
- },
105
- },
106
- async (args) => callGodot(bridge, 'wait_for_game_event', args),
107
- );
7
+ // 1. simulate_gameplay_scenario
8
+ server.registerTool('simulate_gameplay_scenario', {
9
+ description: 'Run a sequence of gameplay actions (input, wait, check) as an automated scenario',
10
+ inputSchema: {
11
+ scenario: z
12
+ .array(z.object({
13
+ action: z.string().describe("Action type: 'input', 'wait', 'move', 'click', 'assert'"),
14
+ params: Properties.describe('Parameters for the action'),
15
+ wait: z.number().optional().describe('Wait time in ms after this step'),
16
+ }))
17
+ .describe('Ordered list of gameplay actions to execute'),
18
+ },
19
+ }, async (args) => callGodot(bridge, 'simulate_gameplay_scenario', args));
20
+ // 2. record_gameplay
21
+ server.registerTool('record_gameplay', {
22
+ description: 'Record gameplay for a duration, capturing input events and/or game state',
23
+ inputSchema: {
24
+ duration: z.number().min(1).max(300).optional().default(10).describe('Recording duration in seconds (default: 10)'),
25
+ include_input: z.boolean().optional().default(true).describe('Record input events (default: true)'),
26
+ include_state: z.boolean().optional().default(false).describe('Record game state snapshots (default: false)'),
27
+ },
28
+ }, async (args) => callGodot(bridge, 'record_gameplay', args));
29
+ // 3. replay_gameplay
30
+ server.registerTool('replay_gameplay', {
31
+ description: 'Replay a previously recorded gameplay session',
32
+ inputSchema: {
33
+ recording_path: z.string().describe('Path to the recording file'),
34
+ speed: z.number().min(0.1).max(10).optional().default(1.0).describe('Playback speed multiplier (default: 1.0)'),
35
+ },
36
+ }, async (args) => callGodot(bridge, 'replay_gameplay', args));
37
+ // 4. create_test_character
38
+ server.registerTool('create_test_character', {
39
+ description: 'Create a test character in the scene at a specified position',
40
+ inputSchema: {
41
+ scene_path: ScenePath.describe('Path to the character scene to instantiate'),
42
+ position: Position3D.optional().describe('World position [x, y, z]'),
43
+ },
44
+ }, async (args) => callGodot(bridge, 'create_test_character', args));
45
+ // 5. navigate_character
46
+ server.registerTool('navigate_character', {
47
+ description: 'Move a character to a target position using direct movement or pathfinding',
48
+ inputSchema: {
49
+ character_path: NodePath,
50
+ target: Position3D.describe('Target position [x, y, z]'),
51
+ method: z.enum(['direct', 'pathfind']).optional().default('direct').describe('Navigation method (default: direct)'),
52
+ },
53
+ }, async (args) => callGodot(bridge, 'navigate_character', args));
54
+ // 6. assert_game_state
55
+ server.registerTool('assert_game_state', {
56
+ description: 'Assert multiple game state conditions simultaneously',
57
+ inputSchema: {
58
+ conditions: z
59
+ .array(z.object({
60
+ path: z.string().describe('Node path'),
61
+ property: z.string().describe('Property name to check'),
62
+ expected: z.unknown().describe('Expected value'),
63
+ operator: z.string().optional().describe('Comparison operator: ==, !=, >, <, >=, <=, contains'),
64
+ }))
65
+ .describe('List of conditions that must all pass'),
66
+ },
67
+ }, async (args) => callGodot(bridge, 'assert_game_state', args));
68
+ // 7. wait_for_game_event
69
+ server.registerTool('wait_for_game_event', {
70
+ description: 'Wait for a specific game event (signal, node creation, property change) with timeout',
71
+ inputSchema: {
72
+ event: z.string().describe("Event to wait for. Use prefix format: 'signal:NodePath:SignalName', 'node:NodePath', or 'property:NodePath:PropName:ExpectedValue'"),
73
+ timeout: z.number().int().min(1).max(30000).optional().default(5000).describe('Timeout in milliseconds (default: 5000)'),
74
+ },
75
+ }, async (args) => callGodot(bridge, 'wait_for_game_event', args));
108
76
  }
109
- //# sourceMappingURL=gameplay_automation.js.map
77
+ //# sourceMappingURL=gameplay_automation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gameplay_automation.js","sourceRoot":"","sources":["../../src/tools/gameplay_automation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gameplay_automation.js","sourceRoot":"","sources":["../../src/tools/gameplay_automation.ts"],"names":[],"mappings":"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"}
@@ -48,46 +48,46 @@ import { registerVisualTestingTools } from './visual_testing.js';
48
48
  * Register all tool modules with the MCP server.
49
49
  */
50
50
  export function registerAllTools(server, bridge) {
51
- registerProjectTools(server, bridge);
52
- registerSceneTools(server, bridge);
53
- registerNodeTools(server, bridge);
54
- registerScriptTools(server, bridge);
55
- registerEditorTools(server, bridge);
56
- registerInputTools(server, bridge);
57
- registerRuntimeTools(server, bridge);
58
- registerAnimationTools(server, bridge);
59
- registerTilemapTools(server, bridge);
60
- registerThemeTools(server, bridge);
61
- registerShaderTools(server, bridge);
62
- registerResourceTools(server, bridge);
63
- registerPhysicsTools(server, bridge);
64
- registerScene3dTools(server, bridge);
65
- registerParticlesTools(server, bridge);
66
- registerNavigationTools(server, bridge);
67
- registerAudioTools(server, bridge);
68
- registerBatchTools(server, bridge);
69
- registerAnalysisTools(server, bridge);
70
- registerTestingTools(server, bridge);
71
- registerProfilingTools(server, bridge);
72
- registerExportTools(server, bridge);
73
- registerAddonManagementTools(server, bridge);
74
- registerAudioConfigTools(server, bridge);
75
- registerBuildConfigTools(server, bridge);
76
- registerDebugConfigTools(server, bridge);
77
- registerDebuggingTools(server, bridge);
78
- registerEditorConfigTools(server, bridge);
79
- registerGameplayAutomationTools(server, bridge);
80
- registerMemoryProfilingTools(server, bridge);
81
- registerNodeConfigTools(server, bridge);
82
- registerPhysicsConfigTools(server, bridge);
83
- registerPlatformExportTools(server, bridge);
84
- registerPlatformSpecificTools(server, bridge);
85
- registerProjectConfigTools(server, bridge);
86
- registerProjectCreationTools(server, bridge);
87
- registerRenderingConfigTools(server, bridge);
88
- registerResourceConfigTools(server, bridge);
89
- registerSaveLoadTools(server, bridge);
90
- registerSceneConfigTools(server, bridge);
91
- registerVisualTestingTools(server, bridge);
51
+ registerProjectTools(server, bridge);
52
+ registerSceneTools(server, bridge);
53
+ registerNodeTools(server, bridge);
54
+ registerScriptTools(server, bridge);
55
+ registerEditorTools(server, bridge);
56
+ registerInputTools(server, bridge);
57
+ registerRuntimeTools(server, bridge);
58
+ registerAnimationTools(server, bridge);
59
+ registerTilemapTools(server, bridge);
60
+ registerThemeTools(server, bridge);
61
+ registerShaderTools(server, bridge);
62
+ registerResourceTools(server, bridge);
63
+ registerPhysicsTools(server, bridge);
64
+ registerScene3dTools(server, bridge);
65
+ registerParticlesTools(server, bridge);
66
+ registerNavigationTools(server, bridge);
67
+ registerAudioTools(server, bridge);
68
+ registerBatchTools(server, bridge);
69
+ registerAnalysisTools(server, bridge);
70
+ registerTestingTools(server, bridge);
71
+ registerProfilingTools(server, bridge);
72
+ registerExportTools(server, bridge);
73
+ registerAddonManagementTools(server, bridge);
74
+ registerAudioConfigTools(server, bridge);
75
+ registerBuildConfigTools(server, bridge);
76
+ registerDebugConfigTools(server, bridge);
77
+ registerDebuggingTools(server, bridge);
78
+ registerEditorConfigTools(server, bridge);
79
+ registerGameplayAutomationTools(server, bridge);
80
+ registerMemoryProfilingTools(server, bridge);
81
+ registerNodeConfigTools(server, bridge);
82
+ registerPhysicsConfigTools(server, bridge);
83
+ registerPlatformExportTools(server, bridge);
84
+ registerPlatformSpecificTools(server, bridge);
85
+ registerProjectConfigTools(server, bridge);
86
+ registerProjectCreationTools(server, bridge);
87
+ registerRenderingConfigTools(server, bridge);
88
+ registerResourceConfigTools(server, bridge);
89
+ registerSaveLoadTools(server, bridge);
90
+ registerSceneConfigTools(server, bridge);
91
+ registerVisualTestingTools(server, bridge);
92
92
  }
93
- //# sourceMappingURL=index.js.map
93
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/tools/input.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAyH/E"}
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/tools/input.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA6G/E"}
@@ -4,107 +4,75 @@
4
4
  import { callGodot } from '../server.js';
5
5
  import { z, Position2D, Pressed } from './shared-types.js';
6
6
  export function registerInputTools(server, bridge) {
7
- // 1. simulate_key — {keycode: string, pressed?: boolean, echo?: boolean} -> success
8
- server.registerTool(
9
- 'simulate_key',
10
- {
11
- description: 'Simulate a keyboard key press/release in the running game',
12
- inputSchema: {
13
- keycode: z.string().describe("Key code name (e.g. 'KEY_ENTER', 'KEY_SPACE', 'KEY_A')"),
14
- pressed: Pressed,
15
- echo: z.boolean().optional().describe('Whether this is an echo/repeat event'),
16
- },
17
- },
18
- async (args) => callGodot(bridge, 'input/simulate_key', args),
19
- );
20
- // 2. simulate_mouse_click — {position: [number,number], button?: "left"|"right"|"middle", pressed?: boolean} -> success
21
- server.registerTool(
22
- 'simulate_mouse_click',
23
- {
24
- description: 'Simulate a mouse click at a screen position',
25
- inputSchema: {
26
- position: Position2D.describe('Screen position [x, y]'),
27
- button: z.enum(['left', 'right', 'middle']).optional().default('left').describe('Mouse button (default: left)'),
28
- pressed: Pressed,
29
- },
30
- },
31
- async (args) => callGodot(bridge, 'input/simulate_mouse_click', args),
32
- );
33
- // 3. simulate_mouse_move — {position: [number,number], relative?: boolean} -> success
34
- server.registerTool(
35
- 'simulate_mouse_move',
36
- {
37
- description: 'Simulate mouse movement to a screen position',
38
- inputSchema: {
39
- position: Position2D.describe('Target screen position [x, y]'),
40
- relative: z.boolean().optional().describe('If true, position is relative to current mouse position'),
41
- },
42
- },
43
- async (args) => callGodot(bridge, 'input/simulate_mouse_move', args),
44
- );
45
- // 4. simulate_action — {action: string, pressed?: boolean} -> success
46
- server.registerTool(
47
- 'simulate_action',
48
- {
49
- description: 'Simulate an input action (from InputMap) being pressed/released',
50
- inputSchema: {
51
- action: z.string().describe("Input action name (e.g. 'ui_accept', 'move_left')"),
52
- pressed: Pressed,
53
- },
54
- },
55
- async (args) => callGodot(bridge, 'input/simulate_action', args),
56
- );
57
- // 5. simulate_sequence — {events: Array<{type: string, delay?: number, [key: string]: any}>} -> success
58
- server.registerTool(
59
- 'simulate_sequence',
60
- {
61
- description: 'Simulate a sequence of input events with timing',
62
- inputSchema: {
63
- events: z
64
- .array(
65
- z
66
- .object({
7
+ // 1. simulate_key — {keycode: string, pressed?: boolean, echo?: boolean} -> success
8
+ server.registerTool('simulate_key', {
9
+ description: 'Simulate a keyboard key press/release in the running game',
10
+ inputSchema: {
11
+ keycode: z.string().describe("Key code name (e.g. 'KEY_ENTER', 'KEY_SPACE', 'KEY_A')"),
12
+ pressed: Pressed,
13
+ echo: z.boolean().optional().describe('Whether this is an echo/repeat event'),
14
+ },
15
+ }, async (args) => callGodot(bridge, 'input/simulate_key', args));
16
+ // 2. simulate_mouse_click — {position: [number,number], button?: "left"|"right"|"middle", pressed?: boolean} -> success
17
+ server.registerTool('simulate_mouse_click', {
18
+ description: 'Simulate a mouse click at a screen position',
19
+ inputSchema: {
20
+ position: Position2D.describe('Screen position [x, y]'),
21
+ button: z.enum(['left', 'right', 'middle']).optional().default('left').describe('Mouse button (default: left)'),
22
+ pressed: Pressed,
23
+ },
24
+ }, async (args) => callGodot(bridge, 'input/simulate_mouse_click', args));
25
+ // 3. simulate_mouse_move — {position: [number,number], relative?: boolean} -> success
26
+ server.registerTool('simulate_mouse_move', {
27
+ description: 'Simulate mouse movement to a screen position',
28
+ inputSchema: {
29
+ position: Position2D.describe('Target screen position [x, y]'),
30
+ relative: z.boolean().optional().describe('If true, position is relative to current mouse position'),
31
+ },
32
+ }, async (args) => callGodot(bridge, 'input/simulate_mouse_move', args));
33
+ // 4. simulate_action — {action: string, pressed?: boolean} -> success
34
+ server.registerTool('simulate_action', {
35
+ description: 'Simulate an input action (from InputMap) being pressed/released',
36
+ inputSchema: {
37
+ action: z.string().describe("Input action name (e.g. 'ui_accept', 'move_left')"),
38
+ pressed: Pressed,
39
+ },
40
+ }, async (args) => callGodot(bridge, 'input/simulate_action', args));
41
+ // 5. simulate_sequence — {events: Array<{type: string, delay?: number, [key: string]: any}>} -> success
42
+ server.registerTool('simulate_sequence', {
43
+ description: 'Simulate a sequence of input events with timing',
44
+ inputSchema: {
45
+ events: z
46
+ .array(z
47
+ .object({
67
48
  type: z.string().describe("Event type (e.g. 'key', 'mouse_click', 'mouse_move', 'action')"),
68
49
  delay: z.number().optional().describe('Delay before this event in milliseconds'),
69
- })
70
- .passthrough()
71
- .describe('Additional event-specific properties are passed through'),
72
- )
73
- .describe('Sequence of input events to simulate'),
74
- },
75
- },
76
- async (args) => callGodot(bridge, 'input/simulate_sequence', args),
77
- );
78
- // 6. get_input_actions — {} -> action list
79
- server.registerTool(
80
- 'get_input_actions',
81
- {
82
- description: 'Get all input actions defined in the InputMap',
83
- inputSchema: {},
84
- },
85
- async () => callGodot(bridge, 'input/get_actions'),
86
- );
87
- // 7. set_input_action — {action: string, events: Array<{type: string, [key: string]: any}>} -> success
88
- server.registerTool(
89
- 'set_input_action',
90
- {
91
- description: 'Add or modify an input action and its event mappings',
92
- inputSchema: {
93
- action: z.string().describe('Action name'),
94
- deadzone: z.number().min(0).max(1).optional().default(0.5).describe('Input deadzone value (0-1, default: 0.5)'),
95
- events: z
96
- .array(
97
- z
98
- .object({
50
+ })
51
+ .passthrough()
52
+ .describe('Additional event-specific properties are passed through'))
53
+ .describe('Sequence of input events to simulate'),
54
+ },
55
+ }, async (args) => callGodot(bridge, 'input/simulate_sequence', args));
56
+ // 6. get_input_actions — {} -> action list
57
+ server.registerTool('get_input_actions', {
58
+ description: 'Get all input actions defined in the InputMap',
59
+ inputSchema: {},
60
+ }, async () => callGodot(bridge, 'input/get_actions'));
61
+ // 7. set_input_action — {action: string, events: Array<{type: string, [key: string]: any}>} -> success
62
+ server.registerTool('set_input_action', {
63
+ description: 'Add or modify an input action and its event mappings',
64
+ inputSchema: {
65
+ action: z.string().describe('Action name'),
66
+ deadzone: z.number().min(0).max(1).optional().default(0.5).describe('Input deadzone value (0-1, default: 0.5)'),
67
+ events: z
68
+ .array(z
69
+ .object({
99
70
  type: z.string().describe("Event type (e.g. 'key', 'mouse_button', 'joypad_button')"),
100
- })
101
- .passthrough()
102
- .describe('Additional event-specific properties are passed through'),
103
- )
104
- .describe('List of input events to map to this action'),
105
- },
106
- },
107
- async (args) => callGodot(bridge, 'input/set_action', args),
108
- );
71
+ })
72
+ .passthrough()
73
+ .describe('Additional event-specific properties are passed through'))
74
+ .describe('List of input events to map to this action'),
75
+ },
76
+ }, async (args) => callGodot(bridge, 'input/set_action', args));
109
77
  }
110
- //# sourceMappingURL=input.js.map
78
+ //# sourceMappingURL=input.js.map