godot-mcp-runtime 2.2.0 → 2.2.2

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.
@@ -3,9 +3,11 @@ extends Node
3
3
  var udp_server: UDPServer
4
4
  var port: int = 9900
5
5
  var _is_processing_input: bool = false
6
+ var session_token: String = ""
6
7
 
7
8
  func _ready() -> void:
8
9
  process_mode = Node.PROCESS_MODE_ALWAYS
10
+ session_token = OS.get_environment("MCP_SESSION_TOKEN")
9
11
  udp_server = UDPServer.new()
10
12
  var err = udp_server.listen(port, "127.0.0.1")
11
13
  if err != OK:
@@ -72,7 +74,7 @@ func _handle_json_command(peer: PacketPeerUDP, data: String) -> void:
72
74
  "screenshot":
73
75
  _handle_screenshot(peer)
74
76
  "ping":
75
- _send_response(peer, {"status": "pong"})
77
+ _send_response(peer, {"status": "pong", "session_token": session_token, "project_path": ProjectSettings.globalize_path("res://")})
76
78
  _:
77
79
  _send_response(peer, {"error": "Unknown command: %s" % command})
78
80
 
@@ -156,6 +158,12 @@ func _handle_input(peer: PacketPeerUDP, actions: Array) -> void:
156
158
 
157
159
  _is_processing_input = false
158
160
 
161
+ # Allow queued input events to dispatch and any signal handlers
162
+ # (and their runtime errors) to fire before we reply, so the
163
+ # Node-side stderr scan in sendCommandWithErrors sees them.
164
+ await get_tree().process_frame
165
+ await get_tree().process_frame
166
+
159
167
  if error_msg != "":
160
168
  _send_response(peer, {"error": error_msg, "actions_processed": processed})
161
169
  else:
@@ -1,4 +1,4 @@
1
- import { GodotRunner, OperationParams, ToolDefinition } from '../utils/godot-runner.js';
1
+ import type { GodotRunner, OperationParams, ToolDefinition } from '../utils/godot-runner.js';
2
2
  export declare const nodeToolDefinitions: ToolDefinition[];
3
3
  export declare function handleDeleteNode(runner: GodotRunner, args: OperationParams): Promise<{
4
4
  content: Array<{
@@ -1 +1 @@
1
- {"version":3,"file":"node-tools.d.ts","sourceRoot":"","sources":["../../src/tools/node-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EAOX,eAAe,EACf,cAAc,EACf,MAAM,0BAA0B,CAAC;AAIlC,eAAO,MAAM,mBAAmB,EAAE,cAAc,EAqL/C,CAAC;AAIF,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GAoBhF;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GA4BrF;AAED,wBAAsB,4BAA4B,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GA2B5F;AAED,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GAqBvF;AAED,wBAAsB,4BAA4B,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GAuB5F;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GA+BlF;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GAsBlF;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GAyBnF;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GAoBpF;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GAgCnF;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GAgCtF"}
1
+ {"version":3,"file":"node-tools.d.ts","sourceRoot":"","sources":["../../src/tools/node-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAY7F,eAAO,MAAM,mBAAmB,EAAE,cAAc,EA0O/C,CAAC;AAIF,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GA0BhF;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GAwCrF;AAED,wBAAsB,4BAA4B,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GAqC5F;AAED,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GA+BvF;AAED,wBAAsB,4BAA4B,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GAiC5F;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GA6ClF;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GA8BlF;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GAmCnF;AAED,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GA8BpF;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GA0CnF;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;;;;;;GA0CtF"}
@@ -10,8 +10,14 @@ export const nodeToolDefinitions = [
10
10
  type: 'object',
11
11
  properties: {
12
12
  projectPath: { type: 'string', description: 'Path to the Godot project directory' },
13
- scenePath: { type: 'string', description: 'Scene file path relative to the project (e.g. "scenes/main.tscn")' },
14
- nodePath: { type: 'string', description: 'Node path from scene root (e.g. "root/Player/Sprite2D")' },
13
+ scenePath: {
14
+ type: 'string',
15
+ description: 'Scene file path relative to the project (e.g. "scenes/main.tscn")',
16
+ },
17
+ nodePath: {
18
+ type: 'string',
19
+ description: 'Node path from scene root (e.g. "root/Player/Sprite2D")',
20
+ },
15
21
  },
16
22
  required: ['projectPath', 'scenePath', 'nodePath'],
17
23
  },
@@ -25,7 +31,10 @@ export const nodeToolDefinitions = [
25
31
  projectPath: { type: 'string', description: 'Path to the Godot project directory' },
26
32
  scenePath: { type: 'string', description: 'Scene file path relative to the project' },
27
33
  nodePath: { type: 'string', description: 'Node path from scene root (e.g. "root/Player")' },
28
- property: { type: 'string', description: 'GDScript property name in snake_case (e.g. "position", "modulate", "collision_layer"). Use get_node_properties to discover valid names.' },
34
+ property: {
35
+ type: 'string',
36
+ description: 'GDScript property name in snake_case (e.g. "position", "modulate", "collision_layer"). Use get_node_properties to discover valid names.',
37
+ },
29
38
  value: { description: 'New property value' },
30
39
  },
31
40
  required: ['projectPath', 'scenePath', 'nodePath', 'property', 'value'],
@@ -52,21 +61,27 @@ export const nodeToolDefinitions = [
52
61
  required: ['nodePath', 'property', 'value'],
53
62
  },
54
63
  },
55
- abortOnError: { type: 'boolean', description: 'Stop processing on first error (default: false)' },
64
+ abortOnError: {
65
+ type: 'boolean',
66
+ description: 'Stop processing on first error (default: false)',
67
+ },
56
68
  },
57
69
  required: ['projectPath', 'scenePath', 'updates'],
58
70
  },
59
71
  },
60
72
  {
61
73
  name: 'get_node_properties',
62
- description: 'Read a node\'s current property values from a Godot scene file.',
74
+ description: "Read a node's current property values from a Godot scene file.",
63
75
  inputSchema: {
64
76
  type: 'object',
65
77
  properties: {
66
78
  projectPath: { type: 'string', description: 'Path to the Godot project directory' },
67
79
  scenePath: { type: 'string', description: 'Scene file path relative to the project' },
68
80
  nodePath: { type: 'string', description: 'Node path from scene root (e.g. "root/Player")' },
69
- changedOnly: { type: 'boolean', description: 'Only return properties whose values differ from their class defaults (default: false)' },
81
+ changedOnly: {
82
+ type: 'boolean',
83
+ description: 'Only return properties whose values differ from their class defaults (default: false)',
84
+ },
70
85
  },
71
86
  required: ['projectPath', 'scenePath', 'nodePath'],
72
87
  },
@@ -86,7 +101,10 @@ export const nodeToolDefinitions = [
86
101
  type: 'object',
87
102
  properties: {
88
103
  nodePath: { type: 'string', description: 'Node path from scene root' },
89
- changedOnly: { type: 'boolean', description: 'Only return properties differing from defaults (default: false)' },
104
+ changedOnly: {
105
+ type: 'boolean',
106
+ description: 'Only return properties differing from defaults (default: false)',
107
+ },
90
108
  },
91
109
  required: ['nodePath'],
92
110
  },
@@ -104,7 +122,10 @@ export const nodeToolDefinitions = [
104
122
  projectPath: { type: 'string', description: 'Path to the Godot project directory' },
105
123
  scenePath: { type: 'string', description: 'Scene file path relative to the project' },
106
124
  nodePath: { type: 'string', description: 'Node path from scene root (e.g. "root/Player")' },
107
- scriptPath: { type: 'string', description: 'Path to the GDScript file relative to the project (e.g. "scripts/player.gd")' },
125
+ scriptPath: {
126
+ type: 'string',
127
+ description: 'Path to the GDScript file relative to the project (e.g. "scripts/player.gd")',
128
+ },
108
129
  },
109
130
  required: ['projectPath', 'scenePath', 'nodePath', 'scriptPath'],
110
131
  },
@@ -117,8 +138,14 @@ export const nodeToolDefinitions = [
117
138
  properties: {
118
139
  projectPath: { type: 'string', description: 'Path to the Godot project directory' },
119
140
  scenePath: { type: 'string', description: 'Scene file path relative to the project' },
120
- parentPath: { type: 'string', description: 'Scope to a subtree starting at this node path (e.g. "root/Player")' },
121
- maxDepth: { type: 'number', description: 'Maximum recursion depth. -1 for unlimited (default: -1). 1 returns only direct children.' },
141
+ parentPath: {
142
+ type: 'string',
143
+ description: 'Scope to a subtree starting at this node path (e.g. "root/Player")',
144
+ },
145
+ maxDepth: {
146
+ type: 'number',
147
+ description: 'Maximum recursion depth. -1 for unlimited (default: -1). 1 returns only direct children.',
148
+ },
122
149
  },
123
150
  required: ['projectPath', 'scenePath'],
124
151
  },
@@ -132,8 +159,14 @@ export const nodeToolDefinitions = [
132
159
  projectPath: { type: 'string', description: 'Path to the Godot project directory' },
133
160
  scenePath: { type: 'string', description: 'Scene file path relative to the project' },
134
161
  nodePath: { type: 'string', description: 'Node path from scene root to duplicate' },
135
- newName: { type: 'string', description: 'Name for the duplicated node (default: original name + "2")' },
136
- targetParentPath: { type: 'string', description: 'Parent node path for the duplicate (default: same parent as original)' },
162
+ newName: {
163
+ type: 'string',
164
+ description: 'Name for the duplicated node (default: original name + "2")',
165
+ },
166
+ targetParentPath: {
167
+ type: 'string',
168
+ description: 'Parent node path for the duplicate (default: same parent as original)',
169
+ },
137
170
  },
138
171
  required: ['projectPath', 'scenePath', 'nodePath'],
139
172
  },
@@ -160,9 +193,18 @@ export const nodeToolDefinitions = [
160
193
  projectPath: { type: 'string', description: 'Path to the Godot project directory' },
161
194
  scenePath: { type: 'string', description: 'Scene file path relative to the project' },
162
195
  nodePath: { type: 'string', description: 'Source node path from scene root' },
163
- signal: { type: 'string', description: 'Signal name on the source node (e.g. "pressed", "body_entered")' },
164
- targetNodePath: { type: 'string', description: 'Target node path from scene root that receives the signal' },
165
- method: { type: 'string', description: 'Method name on the target node to call when the signal fires' },
196
+ signal: {
197
+ type: 'string',
198
+ description: 'Signal name on the source node (e.g. "pressed", "body_entered")',
199
+ },
200
+ targetNodePath: {
201
+ type: 'string',
202
+ description: 'Target node path from scene root that receives the signal',
203
+ },
204
+ method: {
205
+ type: 'string',
206
+ description: 'Method name on the target node to call when the signal fires',
207
+ },
166
208
  },
167
209
  required: ['projectPath', 'scenePath', 'nodePath', 'signal', 'targetNodePath', 'method'],
168
210
  },
@@ -191,19 +233,25 @@ export async function handleDeleteNode(runner, args) {
191
233
  if ('isError' in v)
192
234
  return v;
193
235
  if (!args.nodePath || !validatePath(args.nodePath)) {
194
- return createErrorResponse('Valid nodePath is required', ['Provide the node path (e.g. "root/Player")']);
236
+ return createErrorResponse('Valid nodePath is required', [
237
+ 'Provide the node path (e.g. "root/Player")',
238
+ ]);
195
239
  }
196
240
  try {
197
241
  const params = { scenePath: args.scenePath, nodePath: args.nodePath };
198
242
  const { stdout, stderr } = await runner.executeOperation('delete_node', params, v.projectPath);
199
243
  if (!stdout.trim()) {
200
- return createErrorResponse(`Failed to delete node: ${extractGdError(stderr)}`, ['Check if the node path is correct']);
244
+ return createErrorResponse(`Failed to delete node: ${extractGdError(stderr)}`, [
245
+ 'Check if the node path is correct',
246
+ ]);
201
247
  }
202
248
  return { content: [{ type: 'text', text: stdout }] };
203
249
  }
204
250
  catch (error) {
205
251
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
206
- return createErrorResponse(`Failed to delete node: ${errorMessage}`, ['Ensure Godot is installed correctly']);
252
+ return createErrorResponse(`Failed to delete node: ${errorMessage}`, [
253
+ 'Ensure Godot is installed correctly',
254
+ ]);
207
255
  }
208
256
  }
209
257
  export async function handleSetNodeProperty(runner, args) {
@@ -212,10 +260,14 @@ export async function handleSetNodeProperty(runner, args) {
212
260
  if ('isError' in v)
213
261
  return v;
214
262
  if (!args.nodePath || !validatePath(args.nodePath)) {
215
- return createErrorResponse('Valid nodePath is required', ['Provide the node path (e.g. "root/Player")']);
263
+ return createErrorResponse('Valid nodePath is required', [
264
+ 'Provide the node path (e.g. "root/Player")',
265
+ ]);
216
266
  }
217
267
  if (!args.property || args.value === undefined) {
218
- return createErrorResponse('property and value are required', ['Provide both property name and value']);
268
+ return createErrorResponse('property and value are required', [
269
+ 'Provide both property name and value',
270
+ ]);
219
271
  }
220
272
  try {
221
273
  const params = {
@@ -224,15 +276,19 @@ export async function handleSetNodeProperty(runner, args) {
224
276
  property: args.property,
225
277
  value: args.value,
226
278
  };
227
- const { stdout, stderr } = await runner.executeOperation('update_node_property', params, v.projectPath);
279
+ const { stdout, stderr } = await runner.executeOperation('set_node_property', params, v.projectPath);
228
280
  if (!stdout.trim()) {
229
- return createErrorResponse(`Failed to update property: ${extractGdError(stderr)}`, ['Check if the property name is valid for this node type']);
281
+ return createErrorResponse(`Failed to update property: ${extractGdError(stderr)}`, [
282
+ 'Check if the property name is valid for this node type',
283
+ ]);
230
284
  }
231
285
  return { content: [{ type: 'text', text: stdout }] };
232
286
  }
233
287
  catch (error) {
234
288
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
235
- return createErrorResponse(`Failed to set node property: ${errorMessage}`, ['Ensure Godot is installed correctly']);
289
+ return createErrorResponse(`Failed to set node property: ${errorMessage}`, [
290
+ 'Ensure Godot is installed correctly',
291
+ ]);
236
292
  }
237
293
  }
238
294
  export async function handleBatchSetNodeProperties(runner, args) {
@@ -241,24 +297,30 @@ export async function handleBatchSetNodeProperties(runner, args) {
241
297
  if ('isError' in v)
242
298
  return v;
243
299
  if (!args.updates || !Array.isArray(args.updates)) {
244
- return createErrorResponse('updates array is required', ['Provide an array of { nodePath, property, value }']);
300
+ return createErrorResponse('updates array is required', [
301
+ 'Provide an array of { nodePath, property, value }',
302
+ ]);
245
303
  }
246
304
  try {
247
- const snakeUpdates = args.updates.map(u => convertCamelToSnakeCase(u));
305
+ const snakeUpdates = args.updates.map((u) => convertCamelToSnakeCase(u));
248
306
  const params = {
249
307
  scenePath: args.scenePath,
250
308
  updates: snakeUpdates,
251
309
  abortOnError: args.abortOnError ?? false,
252
310
  };
253
- const { stdout, stderr } = await runner.executeOperation('batch_update_node_properties', params, v.projectPath);
311
+ const { stdout, stderr } = await runner.executeOperation('batch_set_node_properties', params, v.projectPath);
254
312
  if (!stdout.trim()) {
255
- return createErrorResponse(`Batch update failed: ${extractGdError(stderr)}`, ['Check node paths and property names']);
313
+ return createErrorResponse(`Batch update failed: ${extractGdError(stderr)}`, [
314
+ 'Check node paths and property names',
315
+ ]);
256
316
  }
257
317
  return { content: [{ type: 'text', text: stdout }] };
258
318
  }
259
319
  catch (error) {
260
320
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
261
- return createErrorResponse(`Batch set properties failed: ${errorMessage}`, ['Ensure Godot is installed correctly']);
321
+ return createErrorResponse(`Batch set properties failed: ${errorMessage}`, [
322
+ 'Ensure Godot is installed correctly',
323
+ ]);
262
324
  }
263
325
  }
264
326
  export async function handleGetNodeProperties(runner, args) {
@@ -267,7 +329,9 @@ export async function handleGetNodeProperties(runner, args) {
267
329
  if ('isError' in v)
268
330
  return v;
269
331
  if (!args.nodePath || !validatePath(args.nodePath)) {
270
- return createErrorResponse('Valid nodePath is required', ['Provide the node path (e.g. "root/Player")']);
332
+ return createErrorResponse('Valid nodePath is required', [
333
+ 'Provide the node path (e.g. "root/Player")',
334
+ ]);
271
335
  }
272
336
  try {
273
337
  const params = { scenePath: args.scenePath, nodePath: args.nodePath };
@@ -275,13 +339,17 @@ export async function handleGetNodeProperties(runner, args) {
275
339
  params.changedOnly = args.changedOnly;
276
340
  const { stdout, stderr } = await runner.executeOperation('get_node_properties', params, v.projectPath);
277
341
  if (!stdout.trim()) {
278
- return createErrorResponse(`Failed to get properties: ${extractGdError(stderr)}`, ['Check if the node path is correct']);
342
+ return createErrorResponse(`Failed to get properties: ${extractGdError(stderr)}`, [
343
+ 'Check if the node path is correct',
344
+ ]);
279
345
  }
280
346
  return { content: [{ type: 'text', text: stdout }] };
281
347
  }
282
348
  catch (error) {
283
349
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
284
- return createErrorResponse(`Failed to get node properties: ${errorMessage}`, ['Ensure Godot is installed correctly']);
350
+ return createErrorResponse(`Failed to get node properties: ${errorMessage}`, [
351
+ 'Ensure Godot is installed correctly',
352
+ ]);
285
353
  }
286
354
  }
287
355
  export async function handleBatchGetNodeProperties(runner, args) {
@@ -290,20 +358,26 @@ export async function handleBatchGetNodeProperties(runner, args) {
290
358
  if ('isError' in v)
291
359
  return v;
292
360
  if (!args.nodes || !Array.isArray(args.nodes)) {
293
- return createErrorResponse('nodes array is required', ['Provide an array of { nodePath, changedOnly? }']);
361
+ return createErrorResponse('nodes array is required', [
362
+ 'Provide an array of { nodePath, changedOnly? }',
363
+ ]);
294
364
  }
295
365
  try {
296
- const snakeNodes = args.nodes.map(n => convertCamelToSnakeCase(n));
366
+ const snakeNodes = args.nodes.map((n) => convertCamelToSnakeCase(n));
297
367
  const params = { scenePath: args.scenePath, nodes: snakeNodes };
298
368
  const { stdout, stderr } = await runner.executeOperation('batch_get_node_properties', params, v.projectPath);
299
369
  if (!stdout.trim()) {
300
- return createErrorResponse(`Batch get_properties failed: ${extractGdError(stderr)}`, ['Check node paths']);
370
+ return createErrorResponse(`Batch get_properties failed: ${extractGdError(stderr)}`, [
371
+ 'Check node paths',
372
+ ]);
301
373
  }
302
374
  return { content: [{ type: 'text', text: stdout }] };
303
375
  }
304
376
  catch (error) {
305
377
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
306
- return createErrorResponse(`Batch get properties failed: ${errorMessage}`, ['Ensure Godot is installed correctly']);
378
+ return createErrorResponse(`Batch get properties failed: ${errorMessage}`, [
379
+ 'Ensure Godot is installed correctly',
380
+ ]);
307
381
  }
308
382
  }
309
383
  export async function handleAttachScript(runner, args) {
@@ -312,14 +386,20 @@ export async function handleAttachScript(runner, args) {
312
386
  if ('isError' in v)
313
387
  return v;
314
388
  if (!args.nodePath || !validatePath(args.nodePath)) {
315
- return createErrorResponse('Valid nodePath is required', ['Provide the node path (e.g. "root/Player")']);
389
+ return createErrorResponse('Valid nodePath is required', [
390
+ 'Provide the node path (e.g. "root/Player")',
391
+ ]);
316
392
  }
317
393
  if (!args.scriptPath || !validatePath(args.scriptPath)) {
318
- return createErrorResponse('Valid scriptPath is required', ['Provide the script path relative to the project']);
394
+ return createErrorResponse('Valid scriptPath is required', [
395
+ 'Provide the script path relative to the project',
396
+ ]);
319
397
  }
320
398
  const scriptFullPath = join(v.projectPath, args.scriptPath);
321
399
  if (!existsSync(scriptFullPath)) {
322
- return createErrorResponse(`Script file does not exist: ${args.scriptPath}`, ['Create the script file first']);
400
+ return createErrorResponse(`Script file does not exist: ${args.scriptPath}`, [
401
+ 'Create the script file first',
402
+ ]);
323
403
  }
324
404
  try {
325
405
  const params = {
@@ -329,13 +409,17 @@ export async function handleAttachScript(runner, args) {
329
409
  };
330
410
  const { stdout, stderr } = await runner.executeOperation('attach_script', params, v.projectPath);
331
411
  if (!stdout.trim()) {
332
- return createErrorResponse(`Failed to attach script: ${extractGdError(stderr)}`, ['Ensure the script is valid for this node type']);
412
+ return createErrorResponse(`Failed to attach script: ${extractGdError(stderr)}`, [
413
+ 'Ensure the script is valid for this node type',
414
+ ]);
333
415
  }
334
416
  return { content: [{ type: 'text', text: stdout }] };
335
417
  }
336
418
  catch (error) {
337
419
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
338
- return createErrorResponse(`Failed to attach script: ${errorMessage}`, ['Ensure Godot is installed correctly']);
420
+ return createErrorResponse(`Failed to attach script: ${errorMessage}`, [
421
+ 'Ensure Godot is installed correctly',
422
+ ]);
339
423
  }
340
424
  }
341
425
  export async function handleGetSceneTree(runner, args) {
@@ -354,13 +438,17 @@ export async function handleGetSceneTree(runner, args) {
354
438
  params.maxDepth = args.maxDepth;
355
439
  const { stdout, stderr } = await runner.executeOperation('get_scene_tree', params, v.projectPath);
356
440
  if (!stdout.trim()) {
357
- return createErrorResponse(`Failed to get scene tree: ${extractGdError(stderr)}`, ['Ensure the scene is valid']);
441
+ return createErrorResponse(`Failed to get scene tree: ${extractGdError(stderr)}`, [
442
+ 'Ensure the scene is valid',
443
+ ]);
358
444
  }
359
445
  return { content: [{ type: 'text', text: stdout }] };
360
446
  }
361
447
  catch (error) {
362
448
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
363
- return createErrorResponse(`Failed to get scene tree: ${errorMessage}`, ['Ensure Godot is installed correctly']);
449
+ return createErrorResponse(`Failed to get scene tree: ${errorMessage}`, [
450
+ 'Ensure Godot is installed correctly',
451
+ ]);
364
452
  }
365
453
  }
366
454
  export async function handleDuplicateNode(runner, args) {
@@ -369,7 +457,9 @@ export async function handleDuplicateNode(runner, args) {
369
457
  if ('isError' in v)
370
458
  return v;
371
459
  if (!args.nodePath || !validatePath(args.nodePath)) {
372
- return createErrorResponse('Valid nodePath is required', ['Provide the node path to duplicate']);
460
+ return createErrorResponse('Valid nodePath is required', [
461
+ 'Provide the node path to duplicate',
462
+ ]);
373
463
  }
374
464
  if (args.targetParentPath && !validatePath(args.targetParentPath)) {
375
465
  return createErrorResponse('Invalid targetParentPath', ['Provide a valid path without ".."']);
@@ -382,13 +472,17 @@ export async function handleDuplicateNode(runner, args) {
382
472
  params.targetParentPath = args.targetParentPath;
383
473
  const { stdout, stderr } = await runner.executeOperation('duplicate_node', params, v.projectPath);
384
474
  if (!stdout.trim()) {
385
- return createErrorResponse(`Failed to duplicate node: ${extractGdError(stderr)}`, ['Check if the node path and target parent path are correct']);
475
+ return createErrorResponse(`Failed to duplicate node: ${extractGdError(stderr)}`, [
476
+ 'Check if the node path and target parent path are correct',
477
+ ]);
386
478
  }
387
479
  return { content: [{ type: 'text', text: stdout }] };
388
480
  }
389
481
  catch (error) {
390
482
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
391
- return createErrorResponse(`Failed to duplicate node: ${errorMessage}`, ['Ensure Godot is installed correctly']);
483
+ return createErrorResponse(`Failed to duplicate node: ${errorMessage}`, [
484
+ 'Ensure Godot is installed correctly',
485
+ ]);
392
486
  }
393
487
  }
394
488
  export async function handleGetNodeSignals(runner, args) {
@@ -397,19 +491,25 @@ export async function handleGetNodeSignals(runner, args) {
397
491
  if ('isError' in v)
398
492
  return v;
399
493
  if (!args.nodePath || !validatePath(args.nodePath)) {
400
- return createErrorResponse('Valid nodePath is required', ['Provide the node path (e.g. "root/Button")']);
494
+ return createErrorResponse('Valid nodePath is required', [
495
+ 'Provide the node path (e.g. "root/Button")',
496
+ ]);
401
497
  }
402
498
  try {
403
499
  const params = { scenePath: args.scenePath, nodePath: args.nodePath };
404
500
  const { stdout, stderr } = await runner.executeOperation('get_node_signals', params, v.projectPath);
405
501
  if (!stdout.trim()) {
406
- return createErrorResponse(`Failed to get signals: ${extractGdError(stderr)}`, ['Check if the node path is correct']);
502
+ return createErrorResponse(`Failed to get signals: ${extractGdError(stderr)}`, [
503
+ 'Check if the node path is correct',
504
+ ]);
407
505
  }
408
506
  return { content: [{ type: 'text', text: stdout }] };
409
507
  }
410
508
  catch (error) {
411
509
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
412
- return createErrorResponse(`Failed to get node signals: ${errorMessage}`, ['Ensure Godot is installed correctly']);
510
+ return createErrorResponse(`Failed to get node signals: ${errorMessage}`, [
511
+ 'Ensure Godot is installed correctly',
512
+ ]);
413
513
  }
414
514
  }
415
515
  export async function handleConnectSignal(runner, args) {
@@ -421,7 +521,9 @@ export async function handleConnectSignal(runner, args) {
421
521
  return createErrorResponse('Valid nodePath is required', ['Provide the source node path']);
422
522
  }
423
523
  if (!args.signal || !args.targetNodePath || !args.method) {
424
- return createErrorResponse('signal, targetNodePath, and method are required', ['Provide all three parameters']);
524
+ return createErrorResponse('signal, targetNodePath, and method are required', [
525
+ 'Provide all three parameters',
526
+ ]);
425
527
  }
426
528
  if (!validatePath(args.targetNodePath)) {
427
529
  return createErrorResponse('Invalid targetNodePath', ['Provide a valid path without ".."']);
@@ -434,15 +536,19 @@ export async function handleConnectSignal(runner, args) {
434
536
  targetNodePath: args.targetNodePath,
435
537
  method: args.method,
436
538
  };
437
- const { stdout, stderr } = await runner.executeOperation('connect_node_signal', params, v.projectPath);
539
+ const { stdout, stderr } = await runner.executeOperation('connect_signal', params, v.projectPath);
438
540
  if (!stdout.trim()) {
439
- return createErrorResponse(`Failed to connect signal: ${extractGdError(stderr)}`, ['Ensure the signal exists on the source node and the method exists on the target node']);
541
+ return createErrorResponse(`Failed to connect signal: ${extractGdError(stderr)}`, [
542
+ 'Ensure the signal exists on the source node and the method exists on the target node',
543
+ ]);
440
544
  }
441
545
  return { content: [{ type: 'text', text: stdout }] };
442
546
  }
443
547
  catch (error) {
444
548
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
445
- return createErrorResponse(`Failed to connect signal: ${errorMessage}`, ['Ensure Godot is installed correctly']);
549
+ return createErrorResponse(`Failed to connect signal: ${errorMessage}`, [
550
+ 'Ensure Godot is installed correctly',
551
+ ]);
446
552
  }
447
553
  }
448
554
  export async function handleDisconnectSignal(runner, args) {
@@ -454,7 +560,9 @@ export async function handleDisconnectSignal(runner, args) {
454
560
  return createErrorResponse('Valid nodePath is required', ['Provide the source node path']);
455
561
  }
456
562
  if (!args.signal || !args.targetNodePath || !args.method) {
457
- return createErrorResponse('signal, targetNodePath, and method are required', ['Provide all three parameters']);
563
+ return createErrorResponse('signal, targetNodePath, and method are required', [
564
+ 'Provide all three parameters',
565
+ ]);
458
566
  }
459
567
  if (!validatePath(args.targetNodePath)) {
460
568
  return createErrorResponse('Invalid targetNodePath', ['Provide a valid path without ".."']);
@@ -467,15 +575,19 @@ export async function handleDisconnectSignal(runner, args) {
467
575
  targetNodePath: args.targetNodePath,
468
576
  method: args.method,
469
577
  };
470
- const { stdout, stderr } = await runner.executeOperation('disconnect_node_signal', params, v.projectPath);
578
+ const { stdout, stderr } = await runner.executeOperation('disconnect_signal', params, v.projectPath);
471
579
  if (!stdout.trim()) {
472
- return createErrorResponse(`Failed to disconnect signal: ${extractGdError(stderr)}`, ['Ensure the signal connection exists before trying to disconnect it']);
580
+ return createErrorResponse(`Failed to disconnect signal: ${extractGdError(stderr)}`, [
581
+ 'Ensure the signal connection exists before trying to disconnect it',
582
+ ]);
473
583
  }
474
584
  return { content: [{ type: 'text', text: stdout }] };
475
585
  }
476
586
  catch (error) {
477
587
  const errorMessage = error instanceof Error ? error.message : 'Unknown error';
478
- return createErrorResponse(`Failed to disconnect signal: ${errorMessage}`, ['Ensure Godot is installed correctly']);
588
+ return createErrorResponse(`Failed to disconnect signal: ${errorMessage}`, [
589
+ 'Ensure Godot is installed correctly',
590
+ ]);
479
591
  }
480
592
  }
481
593
  //# sourceMappingURL=node-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-tools.js","sourceRoot":"","sources":["../../src/tools/node-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-tools.js","sourceRoot":"","sources":["../../src/tools/node-tools.ts"],"names":[],"mappings":"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"}