godot-mcp-runtime 2.3.0 → 3.0.0
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.
- package/README.md +30 -93
- package/dist/dispatch.d.ts +1 -11
- package/dist/dispatch.d.ts.map +1 -1
- package/dist/dispatch.js +7 -8
- package/dist/dispatch.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -10
- package/dist/index.js.map +1 -1
- package/dist/scripts/godot_operations.gd +134 -283
- package/dist/scripts/mcp_bridge.gd +210 -43
- package/dist/tools/autoload-tools.d.ts +51 -0
- package/dist/tools/autoload-tools.d.ts.map +1 -0
- package/dist/tools/autoload-tools.js +187 -0
- package/dist/tools/autoload-tools.js.map +1 -0
- package/dist/tools/node-tools.d.ts +9 -78
- package/dist/tools/node-tools.d.ts.map +1 -1
- package/dist/tools/node-tools.js +105 -309
- package/dist/tools/node-tools.js.map +1 -1
- package/dist/tools/project-tools.d.ts +0 -168
- package/dist/tools/project-tools.d.ts.map +1 -1
- package/dist/tools/project-tools.js +106 -1192
- package/dist/tools/project-tools.js.map +1 -1
- package/dist/tools/runtime-tools.d.ts +108 -0
- package/dist/tools/runtime-tools.d.ts.map +1 -0
- package/dist/tools/runtime-tools.js +808 -0
- package/dist/tools/runtime-tools.js.map +1 -0
- package/dist/tools/scene-tools.d.ts +6 -48
- package/dist/tools/scene-tools.d.ts.map +1 -1
- package/dist/tools/scene-tools.js +55 -209
- package/dist/tools/scene-tools.js.map +1 -1
- package/dist/tools/validate-tools.d.ts.map +1 -1
- package/dist/tools/validate-tools.js +33 -28
- package/dist/tools/validate-tools.js.map +1 -1
- package/dist/utils/autoload-ini.d.ts +32 -0
- package/dist/utils/autoload-ini.d.ts.map +1 -0
- package/dist/utils/autoload-ini.js +111 -0
- package/dist/utils/autoload-ini.js.map +1 -0
- package/dist/utils/bridge-manager.d.ts +29 -0
- package/dist/utils/bridge-manager.d.ts.map +1 -0
- package/dist/utils/bridge-manager.js +136 -0
- package/dist/utils/bridge-manager.js.map +1 -0
- package/dist/utils/bridge-protocol.d.ts +34 -0
- package/dist/utils/bridge-protocol.d.ts.map +1 -0
- package/dist/utils/bridge-protocol.js +65 -0
- package/dist/utils/bridge-protocol.js.map +1 -0
- package/dist/utils/godot-runner.d.ts +57 -15
- package/dist/utils/godot-runner.d.ts.map +1 -1
- package/dist/utils/godot-runner.js +309 -277
- package/dist/utils/godot-runner.js.map +1 -1
- package/dist/utils/handler-helpers.d.ts +34 -0
- package/dist/utils/handler-helpers.d.ts.map +1 -0
- package/dist/utils/handler-helpers.js +55 -0
- package/dist/utils/handler-helpers.js.map +1 -0
- package/dist/utils/logger.d.ts +3 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +11 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +7 -4
package/dist/tools/node-tools.js
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { existsSync } from 'fs';
|
|
2
2
|
import { join } from 'path';
|
|
3
|
-
import { normalizeParameters, convertCamelToSnakeCase, validatePath, createErrorResponse,
|
|
3
|
+
import { normalizeParameters, convertCamelToSnakeCase, validatePath, createErrorResponse, validateSceneArgs, } from '../utils/godot-runner.js';
|
|
4
|
+
import { executeSceneOp } from '../utils/handler-helpers.js';
|
|
4
5
|
// --- Tool definitions ---
|
|
5
6
|
export const nodeToolDefinitions = [
|
|
6
7
|
{
|
|
7
|
-
name: '
|
|
8
|
-
description: 'Remove
|
|
8
|
+
name: 'delete_nodes',
|
|
9
|
+
description: 'Remove one or more nodes (and their descendants) from a scene file. Always-array: pass a single-element nodePaths array for one-off deletes. Saves once at the end. Cannot delete the scene root — that entry returns an error and the rest still process. Returns { results: [{ nodePath, success?, error? }] }.',
|
|
9
10
|
annotations: { destructiveHint: true },
|
|
10
11
|
inputSchema: {
|
|
11
12
|
type: 'object',
|
|
@@ -15,36 +16,18 @@ export const nodeToolDefinitions = [
|
|
|
15
16
|
type: 'string',
|
|
16
17
|
description: 'Scene file path relative to the project (e.g. "scenes/main.tscn")',
|
|
17
18
|
},
|
|
18
|
-
|
|
19
|
-
type: '
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
required: ['projectPath', 'scenePath', 'nodePath'],
|
|
24
|
-
},
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: 'set_node_property',
|
|
28
|
-
description: 'Set a single property on a node in a Godot scene file. For multiple properties on the same or different nodes, use batch_set_node_properties — one Godot process instead of N. Saves automatically. Primitives pass through; Vector2 ({x,y}), Vector3 ({x,y,z}), and Color ({r,g,b,a}) auto-convert. For other complex GDScript types (Resource, NodePath, etc.), use run_script. Errors if nodePath or property does not exist. Returns { success, nodePath, property }.',
|
|
29
|
-
annotations: { idempotentHint: true },
|
|
30
|
-
inputSchema: {
|
|
31
|
-
type: 'object',
|
|
32
|
-
properties: {
|
|
33
|
-
projectPath: { type: 'string', description: 'Path to the Godot project directory' },
|
|
34
|
-
scenePath: { type: 'string', description: 'Scene file path relative to the project' },
|
|
35
|
-
nodePath: { type: 'string', description: 'Node path from scene root (e.g. "root/Player")' },
|
|
36
|
-
property: {
|
|
37
|
-
type: 'string',
|
|
38
|
-
description: 'GDScript property name in snake_case (e.g. "position", "modulate", "collision_layer"). Use get_node_properties to discover valid names.',
|
|
19
|
+
nodePaths: {
|
|
20
|
+
type: 'array',
|
|
21
|
+
items: { type: 'string' },
|
|
22
|
+
description: 'Node paths from scene root to delete (e.g. ["root/Player/Sprite2D"])',
|
|
39
23
|
},
|
|
40
|
-
value: { description: 'New property value' },
|
|
41
24
|
},
|
|
42
|
-
required: ['projectPath', 'scenePath', '
|
|
25
|
+
required: ['projectPath', 'scenePath', 'nodePaths'],
|
|
43
26
|
},
|
|
44
27
|
},
|
|
45
28
|
{
|
|
46
|
-
name: '
|
|
47
|
-
description: 'Set
|
|
29
|
+
name: 'set_node_properties',
|
|
30
|
+
description: 'Set one or more node properties on a scene in a single Godot process. Always-array: pass a single-element updates array for one-off edits. Vector2 ({x,y}), Vector3 ({x,y,z}), and Color ({r,g,b,a}) auto-convert; primitives pass through. For other complex GDScript types (Resource, NodePath, etc.), use run_script. abortOnError stops on first failure (default false continues). Saves once at the end. Returns { results: [{ nodePath, property, success?, error? }] }.',
|
|
48
31
|
annotations: { idempotentHint: true },
|
|
49
32
|
inputSchema: {
|
|
50
33
|
type: 'object',
|
|
@@ -57,8 +40,14 @@ export const nodeToolDefinitions = [
|
|
|
57
40
|
items: {
|
|
58
41
|
type: 'object',
|
|
59
42
|
properties: {
|
|
60
|
-
nodePath: {
|
|
61
|
-
|
|
43
|
+
nodePath: {
|
|
44
|
+
type: 'string',
|
|
45
|
+
description: 'Node path from scene root (e.g. "root/Player")',
|
|
46
|
+
},
|
|
47
|
+
property: {
|
|
48
|
+
type: 'string',
|
|
49
|
+
description: 'GDScript property name in snake_case (e.g. "position", "modulate", "collision_layer")',
|
|
50
|
+
},
|
|
62
51
|
value: { description: 'New property value' },
|
|
63
52
|
},
|
|
64
53
|
required: ['nodePath', 'property', 'value'],
|
|
@@ -74,25 +63,7 @@ export const nodeToolDefinitions = [
|
|
|
74
63
|
},
|
|
75
64
|
{
|
|
76
65
|
name: 'get_node_properties',
|
|
77
|
-
description: "Read
|
|
78
|
-
annotations: { readOnlyHint: true },
|
|
79
|
-
inputSchema: {
|
|
80
|
-
type: 'object',
|
|
81
|
-
properties: {
|
|
82
|
-
projectPath: { type: 'string', description: 'Path to the Godot project directory' },
|
|
83
|
-
scenePath: { type: 'string', description: 'Scene file path relative to the project' },
|
|
84
|
-
nodePath: { type: 'string', description: 'Node path from scene root (e.g. "root/Player")' },
|
|
85
|
-
changedOnly: {
|
|
86
|
-
type: 'boolean',
|
|
87
|
-
description: 'Only return properties whose values differ from their class defaults (default: false)',
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
required: ['projectPath', 'scenePath', 'nodePath'],
|
|
91
|
-
},
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'batch_get_node_properties',
|
|
95
|
-
description: 'Get properties from multiple nodes in a single Godot process — preferred over chained get_node_properties calls. Per-node changedOnly toggles default-filtering individually. Returns { results: [{ nodePath, nodeType, properties?, error? }] }; failed reads include error and omit properties.',
|
|
66
|
+
description: "Read one or more nodes' current property values from a scene file in a single Godot process. Always-array: pass a single-element nodes array for one-off reads. Per-node changedOnly:true filters out properties matching class defaults (useful for compact diffs). Returns { results: [{ nodePath, nodeType, properties?, error? }] }; failed reads include error and omit properties.",
|
|
96
67
|
annotations: { readOnlyHint: true },
|
|
97
68
|
inputSchema: {
|
|
98
69
|
type: 'object',
|
|
@@ -105,7 +76,10 @@ export const nodeToolDefinitions = [
|
|
|
105
76
|
items: {
|
|
106
77
|
type: 'object',
|
|
107
78
|
properties: {
|
|
108
|
-
nodePath: {
|
|
79
|
+
nodePath: {
|
|
80
|
+
type: 'string',
|
|
81
|
+
description: 'Node path from scene root (e.g. "root/Player")',
|
|
82
|
+
},
|
|
109
83
|
changedOnly: {
|
|
110
84
|
type: 'boolean',
|
|
111
85
|
description: 'Only return properties differing from defaults (default: false)',
|
|
@@ -138,7 +112,7 @@ export const nodeToolDefinitions = [
|
|
|
138
112
|
},
|
|
139
113
|
{
|
|
140
114
|
name: 'get_scene_tree',
|
|
141
|
-
description: 'Get the scene hierarchy as a nested tree of { name, type, path, children }. Use maxDepth:1 for a shallow listing of direct children only; default -1 returns the full tree. parentPath scopes the result to a subtree. Errors if scene does not exist or parentPath is not found.',
|
|
115
|
+
description: 'Get the scene hierarchy as a nested tree of { name, type, path, script, children }. Use maxDepth:1 for a shallow listing of direct children only; default -1 returns the full tree. parentPath scopes the result to a subtree. Returns the nested tree as JSON text. Errors if scene does not exist or parentPath is not found.',
|
|
142
116
|
annotations: { readOnlyHint: true },
|
|
143
117
|
inputSchema: {
|
|
144
118
|
type: 'object',
|
|
@@ -194,7 +168,7 @@ export const nodeToolDefinitions = [
|
|
|
194
168
|
},
|
|
195
169
|
{
|
|
196
170
|
name: 'connect_signal',
|
|
197
|
-
description: 'Connect a signal
|
|
171
|
+
description: 'Connect a signal on a source node to a method on a target node, persisting the connection in the .tscn. Use after get_node_signals to confirm the signal name on the source and the method name on the target. Connecting the same signal+method pair twice creates a duplicate connection — call get_node_signals first if uncertain. Saves automatically. Returns a plain-text confirmation naming the source, signal, target, and method. Errors if the signal does not exist on the source node or the method does not exist on the target node.',
|
|
198
172
|
inputSchema: {
|
|
199
173
|
type: 'object',
|
|
200
174
|
properties: {
|
|
@@ -219,7 +193,8 @@ export const nodeToolDefinitions = [
|
|
|
219
193
|
},
|
|
220
194
|
{
|
|
221
195
|
name: 'disconnect_signal',
|
|
222
|
-
description: '
|
|
196
|
+
description: 'Remove an existing signal connection between two nodes, persisting the change in the .tscn. Use get_node_signals first to confirm the connection exists; recovery requires reconnecting via connect_signal. Saves automatically. Returns a plain-text confirmation naming the disconnected signal and target. Errors if the connection does not exist.',
|
|
197
|
+
annotations: { destructiveHint: true },
|
|
223
198
|
inputSchema: {
|
|
224
199
|
type: 'object',
|
|
225
200
|
properties: {
|
|
@@ -235,71 +210,29 @@ export const nodeToolDefinitions = [
|
|
|
235
210
|
},
|
|
236
211
|
];
|
|
237
212
|
// --- Handlers ---
|
|
238
|
-
export async function
|
|
239
|
-
args = normalizeParameters(args);
|
|
240
|
-
const v = validateSceneArgs(args);
|
|
241
|
-
if ('isError' in v)
|
|
242
|
-
return v;
|
|
243
|
-
if (!args.nodePath || !validatePath(args.nodePath)) {
|
|
244
|
-
return createErrorResponse('Valid nodePath is required', [
|
|
245
|
-
'Provide the node path (e.g. "root/Player")',
|
|
246
|
-
]);
|
|
247
|
-
}
|
|
248
|
-
try {
|
|
249
|
-
const params = { scenePath: args.scenePath, nodePath: args.nodePath };
|
|
250
|
-
const { stdout, stderr } = await runner.executeOperation('delete_node', params, v.projectPath);
|
|
251
|
-
if (!stdout.trim()) {
|
|
252
|
-
return createErrorResponse(`Failed to delete node: ${extractGdError(stderr)}`, [
|
|
253
|
-
'Check if the node path is correct',
|
|
254
|
-
]);
|
|
255
|
-
}
|
|
256
|
-
return { content: [{ type: 'text', text: stdout }] };
|
|
257
|
-
}
|
|
258
|
-
catch (error) {
|
|
259
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
260
|
-
return createErrorResponse(`Failed to delete node: ${errorMessage}`, [
|
|
261
|
-
'Ensure Godot is installed correctly',
|
|
262
|
-
]);
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
export async function handleSetNodeProperty(runner, args) {
|
|
213
|
+
export async function handleDeleteNodes(runner, args) {
|
|
266
214
|
args = normalizeParameters(args);
|
|
267
215
|
const v = validateSceneArgs(args);
|
|
268
216
|
if ('isError' in v)
|
|
269
217
|
return v;
|
|
270
|
-
if (!args.
|
|
271
|
-
return createErrorResponse('
|
|
272
|
-
'Provide
|
|
273
|
-
]);
|
|
274
|
-
}
|
|
275
|
-
if (!args.property || args.value === undefined) {
|
|
276
|
-
return createErrorResponse('property and value are required', [
|
|
277
|
-
'Provide both property name and value',
|
|
218
|
+
if (!args.nodePaths || !Array.isArray(args.nodePaths) || args.nodePaths.length === 0) {
|
|
219
|
+
return createErrorResponse('nodePaths array is required', [
|
|
220
|
+
'Provide a non-empty array of node paths (e.g. ["root/Player"])',
|
|
278
221
|
]);
|
|
279
222
|
}
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
property: args.property,
|
|
285
|
-
value: args.value,
|
|
286
|
-
};
|
|
287
|
-
const { stdout, stderr } = await runner.executeOperation('set_node_property', params, v.projectPath);
|
|
288
|
-
if (!stdout.trim()) {
|
|
289
|
-
return createErrorResponse(`Failed to update property: ${extractGdError(stderr)}`, [
|
|
290
|
-
'Check if the property name is valid for this node type',
|
|
223
|
+
for (const p of args.nodePaths) {
|
|
224
|
+
if (typeof p !== 'string' || !validatePath(p)) {
|
|
225
|
+
return createErrorResponse('Invalid nodePath in nodePaths', [
|
|
226
|
+
'Provide valid paths without ".." (e.g. "root/Player")',
|
|
291
227
|
]);
|
|
292
228
|
}
|
|
293
|
-
return { content: [{ type: 'text', text: stdout }] };
|
|
294
|
-
}
|
|
295
|
-
catch (error) {
|
|
296
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
297
|
-
return createErrorResponse(`Failed to set node property: ${errorMessage}`, [
|
|
298
|
-
'Ensure Godot is installed correctly',
|
|
299
|
-
]);
|
|
300
229
|
}
|
|
230
|
+
const params = { scenePath: args.scenePath, nodePaths: args.nodePaths };
|
|
231
|
+
return executeSceneOp(runner, 'delete_nodes', params, v.projectPath, 'Failed to delete nodes', [
|
|
232
|
+
'Check if the node paths are correct',
|
|
233
|
+
]);
|
|
301
234
|
}
|
|
302
|
-
export async function
|
|
235
|
+
export async function handleSetNodeProperties(runner, args) {
|
|
303
236
|
args = normalizeParameters(args);
|
|
304
237
|
const v = validateSceneArgs(args);
|
|
305
238
|
if ('isError' in v)
|
|
@@ -309,58 +242,15 @@ export async function handleBatchSetNodeProperties(runner, args) {
|
|
|
309
242
|
'Provide an array of { nodePath, property, value }',
|
|
310
243
|
]);
|
|
311
244
|
}
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
const { stdout, stderr } = await runner.executeOperation('batch_set_node_properties', params, v.projectPath);
|
|
320
|
-
if (!stdout.trim()) {
|
|
321
|
-
return createErrorResponse(`Batch update failed: ${extractGdError(stderr)}`, [
|
|
322
|
-
'Check node paths and property names',
|
|
323
|
-
]);
|
|
324
|
-
}
|
|
325
|
-
return { content: [{ type: 'text', text: stdout }] };
|
|
326
|
-
}
|
|
327
|
-
catch (error) {
|
|
328
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
329
|
-
return createErrorResponse(`Batch set properties failed: ${errorMessage}`, [
|
|
330
|
-
'Ensure Godot is installed correctly',
|
|
331
|
-
]);
|
|
332
|
-
}
|
|
245
|
+
const snakeUpdates = args.updates.map((u) => convertCamelToSnakeCase(u));
|
|
246
|
+
const params = {
|
|
247
|
+
scenePath: args.scenePath,
|
|
248
|
+
updates: snakeUpdates,
|
|
249
|
+
abortOnError: args.abortOnError ?? false,
|
|
250
|
+
};
|
|
251
|
+
return executeSceneOp(runner, 'set_node_properties', params, v.projectPath, 'Failed to set node properties', ['Check node paths and property names']);
|
|
333
252
|
}
|
|
334
253
|
export async function handleGetNodeProperties(runner, args) {
|
|
335
|
-
args = normalizeParameters(args);
|
|
336
|
-
const v = validateSceneArgs(args);
|
|
337
|
-
if ('isError' in v)
|
|
338
|
-
return v;
|
|
339
|
-
if (!args.nodePath || !validatePath(args.nodePath)) {
|
|
340
|
-
return createErrorResponse('Valid nodePath is required', [
|
|
341
|
-
'Provide the node path (e.g. "root/Player")',
|
|
342
|
-
]);
|
|
343
|
-
}
|
|
344
|
-
try {
|
|
345
|
-
const params = { scenePath: args.scenePath, nodePath: args.nodePath };
|
|
346
|
-
if (args.changedOnly)
|
|
347
|
-
params.changedOnly = args.changedOnly;
|
|
348
|
-
const { stdout, stderr } = await runner.executeOperation('get_node_properties', params, v.projectPath);
|
|
349
|
-
if (!stdout.trim()) {
|
|
350
|
-
return createErrorResponse(`Failed to get properties: ${extractGdError(stderr)}`, [
|
|
351
|
-
'Check if the node path is correct',
|
|
352
|
-
]);
|
|
353
|
-
}
|
|
354
|
-
return { content: [{ type: 'text', text: stdout }] };
|
|
355
|
-
}
|
|
356
|
-
catch (error) {
|
|
357
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
358
|
-
return createErrorResponse(`Failed to get node properties: ${errorMessage}`, [
|
|
359
|
-
'Ensure Godot is installed correctly',
|
|
360
|
-
]);
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
export async function handleBatchGetNodeProperties(runner, args) {
|
|
364
254
|
args = normalizeParameters(args);
|
|
365
255
|
const v = validateSceneArgs(args);
|
|
366
256
|
if ('isError' in v)
|
|
@@ -370,23 +260,9 @@ export async function handleBatchGetNodeProperties(runner, args) {
|
|
|
370
260
|
'Provide an array of { nodePath, changedOnly? }',
|
|
371
261
|
]);
|
|
372
262
|
}
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
const { stdout, stderr } = await runner.executeOperation('batch_get_node_properties', params, v.projectPath);
|
|
377
|
-
if (!stdout.trim()) {
|
|
378
|
-
return createErrorResponse(`Batch get_properties failed: ${extractGdError(stderr)}`, [
|
|
379
|
-
'Check node paths',
|
|
380
|
-
]);
|
|
381
|
-
}
|
|
382
|
-
return { content: [{ type: 'text', text: stdout }] };
|
|
383
|
-
}
|
|
384
|
-
catch (error) {
|
|
385
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
386
|
-
return createErrorResponse(`Batch get properties failed: ${errorMessage}`, [
|
|
387
|
-
'Ensure Godot is installed correctly',
|
|
388
|
-
]);
|
|
389
|
-
}
|
|
263
|
+
const snakeNodes = args.nodes.map((n) => convertCamelToSnakeCase(n));
|
|
264
|
+
const params = { scenePath: args.scenePath, nodes: snakeNodes };
|
|
265
|
+
return executeSceneOp(runner, 'get_node_properties', params, v.projectPath, 'Failed to get node properties', ['Check node paths']);
|
|
390
266
|
}
|
|
391
267
|
export async function handleAttachScript(runner, args) {
|
|
392
268
|
args = normalizeParameters(args);
|
|
@@ -409,26 +285,14 @@ export async function handleAttachScript(runner, args) {
|
|
|
409
285
|
'Create the script file first',
|
|
410
286
|
]);
|
|
411
287
|
}
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
return createErrorResponse(`Failed to attach script: ${extractGdError(stderr)}`, [
|
|
421
|
-
'Ensure the script is valid for this node type',
|
|
422
|
-
]);
|
|
423
|
-
}
|
|
424
|
-
return { content: [{ type: 'text', text: stdout }] };
|
|
425
|
-
}
|
|
426
|
-
catch (error) {
|
|
427
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
428
|
-
return createErrorResponse(`Failed to attach script: ${errorMessage}`, [
|
|
429
|
-
'Ensure Godot is installed correctly',
|
|
430
|
-
]);
|
|
431
|
-
}
|
|
288
|
+
const params = {
|
|
289
|
+
scenePath: args.scenePath,
|
|
290
|
+
nodePath: args.nodePath,
|
|
291
|
+
scriptPath: args.scriptPath,
|
|
292
|
+
};
|
|
293
|
+
return executeSceneOp(runner, 'attach_script', params, v.projectPath, 'Failed to attach script', [
|
|
294
|
+
'Ensure the script is valid for this node type',
|
|
295
|
+
]);
|
|
432
296
|
}
|
|
433
297
|
export async function handleGetSceneTree(runner, args) {
|
|
434
298
|
args = normalizeParameters(args);
|
|
@@ -438,26 +302,12 @@ export async function handleGetSceneTree(runner, args) {
|
|
|
438
302
|
if (args.parentPath && !validatePath(args.parentPath)) {
|
|
439
303
|
return createErrorResponse('Invalid parentPath', ['Provide a valid path without ".."']);
|
|
440
304
|
}
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
const { stdout, stderr } = await runner.executeOperation('get_scene_tree', params, v.projectPath);
|
|
448
|
-
if (!stdout.trim()) {
|
|
449
|
-
return createErrorResponse(`Failed to get scene tree: ${extractGdError(stderr)}`, [
|
|
450
|
-
'Ensure the scene is valid',
|
|
451
|
-
]);
|
|
452
|
-
}
|
|
453
|
-
return { content: [{ type: 'text', text: stdout }] };
|
|
454
|
-
}
|
|
455
|
-
catch (error) {
|
|
456
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
457
|
-
return createErrorResponse(`Failed to get scene tree: ${errorMessage}`, [
|
|
458
|
-
'Ensure Godot is installed correctly',
|
|
459
|
-
]);
|
|
460
|
-
}
|
|
305
|
+
const params = { scenePath: args.scenePath };
|
|
306
|
+
if (args.parentPath)
|
|
307
|
+
params.parentPath = args.parentPath;
|
|
308
|
+
if (typeof args.maxDepth === 'number')
|
|
309
|
+
params.maxDepth = args.maxDepth;
|
|
310
|
+
return executeSceneOp(runner, 'get_scene_tree', params, v.projectPath, 'Failed to get scene tree', ['Ensure the scene is valid']);
|
|
461
311
|
}
|
|
462
312
|
export async function handleDuplicateNode(runner, args) {
|
|
463
313
|
args = normalizeParameters(args);
|
|
@@ -472,26 +322,12 @@ export async function handleDuplicateNode(runner, args) {
|
|
|
472
322
|
if (args.targetParentPath && !validatePath(args.targetParentPath)) {
|
|
473
323
|
return createErrorResponse('Invalid targetParentPath', ['Provide a valid path without ".."']);
|
|
474
324
|
}
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
const { stdout, stderr } = await runner.executeOperation('duplicate_node', params, v.projectPath);
|
|
482
|
-
if (!stdout.trim()) {
|
|
483
|
-
return createErrorResponse(`Failed to duplicate node: ${extractGdError(stderr)}`, [
|
|
484
|
-
'Check if the node path and target parent path are correct',
|
|
485
|
-
]);
|
|
486
|
-
}
|
|
487
|
-
return { content: [{ type: 'text', text: stdout }] };
|
|
488
|
-
}
|
|
489
|
-
catch (error) {
|
|
490
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
491
|
-
return createErrorResponse(`Failed to duplicate node: ${errorMessage}`, [
|
|
492
|
-
'Ensure Godot is installed correctly',
|
|
493
|
-
]);
|
|
494
|
-
}
|
|
325
|
+
const params = { scenePath: args.scenePath, nodePath: args.nodePath };
|
|
326
|
+
if (args.newName)
|
|
327
|
+
params.newName = args.newName;
|
|
328
|
+
if (args.targetParentPath)
|
|
329
|
+
params.targetParentPath = args.targetParentPath;
|
|
330
|
+
return executeSceneOp(runner, 'duplicate_node', params, v.projectPath, 'Failed to duplicate node', ['Check if the node path and target parent path are correct']);
|
|
495
331
|
}
|
|
496
332
|
export async function handleGetNodeSignals(runner, args) {
|
|
497
333
|
args = normalizeParameters(args);
|
|
@@ -503,25 +339,10 @@ export async function handleGetNodeSignals(runner, args) {
|
|
|
503
339
|
'Provide the node path (e.g. "root/Button")',
|
|
504
340
|
]);
|
|
505
341
|
}
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
const { stdout, stderr } = await runner.executeOperation('get_node_signals', params, v.projectPath);
|
|
509
|
-
if (!stdout.trim()) {
|
|
510
|
-
return createErrorResponse(`Failed to get signals: ${extractGdError(stderr)}`, [
|
|
511
|
-
'Check if the node path is correct',
|
|
512
|
-
]);
|
|
513
|
-
}
|
|
514
|
-
return { content: [{ type: 'text', text: stdout }] };
|
|
515
|
-
}
|
|
516
|
-
catch (error) {
|
|
517
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
518
|
-
return createErrorResponse(`Failed to get node signals: ${errorMessage}`, [
|
|
519
|
-
'Ensure Godot is installed correctly',
|
|
520
|
-
]);
|
|
521
|
-
}
|
|
342
|
+
const params = { scenePath: args.scenePath, nodePath: args.nodePath };
|
|
343
|
+
return executeSceneOp(runner, 'get_node_signals', params, v.projectPath, 'Failed to get node signals', ['Check if the node path is correct']);
|
|
522
344
|
}
|
|
523
|
-
|
|
524
|
-
args = normalizeParameters(args);
|
|
345
|
+
function validateSignalArgs(args) {
|
|
525
346
|
const v = validateSceneArgs(args);
|
|
526
347
|
if ('isError' in v)
|
|
527
348
|
return v;
|
|
@@ -536,66 +357,41 @@ export async function handleConnectSignal(runner, args) {
|
|
|
536
357
|
if (!validatePath(args.targetNodePath)) {
|
|
537
358
|
return createErrorResponse('Invalid targetNodePath', ['Provide a valid path without ".."']);
|
|
538
359
|
}
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
360
|
+
return {
|
|
361
|
+
projectPath: v.projectPath,
|
|
362
|
+
scenePath: v.scenePath,
|
|
363
|
+
nodePath: args.nodePath,
|
|
364
|
+
signal: args.signal,
|
|
365
|
+
targetNodePath: args.targetNodePath,
|
|
366
|
+
method: args.method,
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
export async function handleConnectSignal(runner, args) {
|
|
370
|
+
args = normalizeParameters(args);
|
|
371
|
+
const v = validateSignalArgs(args);
|
|
372
|
+
if ('isError' in v)
|
|
373
|
+
return v;
|
|
374
|
+
const params = {
|
|
375
|
+
scenePath: v.scenePath,
|
|
376
|
+
nodePath: v.nodePath,
|
|
377
|
+
signal: v.signal,
|
|
378
|
+
targetNodePath: v.targetNodePath,
|
|
379
|
+
method: v.method,
|
|
380
|
+
};
|
|
381
|
+
return executeSceneOp(runner, 'connect_signal', params, v.projectPath, 'Failed to connect signal', ['Ensure the signal exists on the source node and the method exists on the target node']);
|
|
561
382
|
}
|
|
562
383
|
export async function handleDisconnectSignal(runner, args) {
|
|
563
384
|
args = normalizeParameters(args);
|
|
564
|
-
const v =
|
|
385
|
+
const v = validateSignalArgs(args);
|
|
565
386
|
if ('isError' in v)
|
|
566
387
|
return v;
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
if (!validatePath(args.targetNodePath)) {
|
|
576
|
-
return createErrorResponse('Invalid targetNodePath', ['Provide a valid path without ".."']);
|
|
577
|
-
}
|
|
578
|
-
try {
|
|
579
|
-
const params = {
|
|
580
|
-
scenePath: args.scenePath,
|
|
581
|
-
nodePath: args.nodePath,
|
|
582
|
-
signal: args.signal,
|
|
583
|
-
targetNodePath: args.targetNodePath,
|
|
584
|
-
method: args.method,
|
|
585
|
-
};
|
|
586
|
-
const { stdout, stderr } = await runner.executeOperation('disconnect_signal', params, v.projectPath);
|
|
587
|
-
if (!stdout.trim()) {
|
|
588
|
-
return createErrorResponse(`Failed to disconnect signal: ${extractGdError(stderr)}`, [
|
|
589
|
-
'Ensure the signal connection exists before trying to disconnect it',
|
|
590
|
-
]);
|
|
591
|
-
}
|
|
592
|
-
return { content: [{ type: 'text', text: stdout }] };
|
|
593
|
-
}
|
|
594
|
-
catch (error) {
|
|
595
|
-
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
596
|
-
return createErrorResponse(`Failed to disconnect signal: ${errorMessage}`, [
|
|
597
|
-
'Ensure Godot is installed correctly',
|
|
598
|
-
]);
|
|
599
|
-
}
|
|
388
|
+
const params = {
|
|
389
|
+
scenePath: v.scenePath,
|
|
390
|
+
nodePath: v.nodePath,
|
|
391
|
+
signal: v.signal,
|
|
392
|
+
targetNodePath: v.targetNodePath,
|
|
393
|
+
method: v.method,
|
|
394
|
+
};
|
|
395
|
+
return executeSceneOp(runner, 'disconnect_signal', params, v.projectPath, 'Failed to disconnect signal', ['Ensure the signal connection exists before trying to disconnect it']);
|
|
600
396
|
}
|
|
601
397
|
//# 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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"}
|