godot-mcp-runtime 2.3.0 → 3.1.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 +46 -132
- package/dist/dispatch.d.ts +1 -11
- package/dist/dispatch.d.ts.map +1 -1
- package/dist/dispatch.js +32 -33
- 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 +268 -382
- package/dist/scripts/mcp_bridge.gd +206 -44
- 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 +191 -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 +188 -312
- 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 +191 -1240
- 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 +994 -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 +76 -212
- 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 +115 -51
- package/dist/tools/validate-tools.js.map +1 -1
- package/dist/utils/autoload-ini.d.ts +38 -0
- package/dist/utils/autoload-ini.d.ts.map +1 -0
- package/dist/utils/autoload-ini.js +124 -0
- package/dist/utils/autoload-ini.js.map +1 -0
- package/dist/utils/bridge-manager.d.ts +46 -0
- package/dist/utils/bridge-manager.d.ts.map +1 -0
- package/dist/utils/bridge-manager.js +186 -0
- package/dist/utils/bridge-manager.js.map +1 -0
- package/dist/utils/bridge-protocol.d.ts +37 -0
- package/dist/utils/bridge-protocol.d.ts.map +1 -0
- package/dist/utils/bridge-protocol.js +78 -0
- package/dist/utils/bridge-protocol.js.map +1 -0
- package/dist/utils/godot-runner.d.ts +102 -16
- package/dist/utils/godot-runner.d.ts.map +1 -1
- package/dist/utils/godot-runner.js +497 -284
- 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 +4 -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 +8 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { join } from 'path';
|
|
2
2
|
import { existsSync, writeFileSync, unlinkSync, mkdirSync } from 'fs';
|
|
3
3
|
import { randomUUID } from 'crypto';
|
|
4
|
-
import { normalizeParameters,
|
|
4
|
+
import { normalizeParameters, validateSubPath, validateProjectArgs, createErrorResponse, extractGdError, getErrorMessage, } from '../utils/godot-runner.js';
|
|
5
5
|
export const validateToolDefinitions = [
|
|
6
6
|
{
|
|
7
7
|
name: 'validate',
|
|
@@ -70,8 +70,13 @@ function parseGodotErrorEntries(stderr) {
|
|
|
70
70
|
let lineNum;
|
|
71
71
|
let filePath;
|
|
72
72
|
if (i + 1 < lines.length) {
|
|
73
|
-
// Try res:// path first (captures file + line)
|
|
74
|
-
|
|
73
|
+
// Try res:// path first (captures file + line). Tolerates an optional
|
|
74
|
+
// "<method> (" prefix before res:// so we catch both
|
|
75
|
+
// " at: res://foo.gd:3"
|
|
76
|
+
// and
|
|
77
|
+
// " at: GDScript::reload (res://foo.gd:3)"
|
|
78
|
+
// Real Godot 4.5 stderr uses the parenthesized form.
|
|
79
|
+
const resAtMatch = lines[i + 1].match(/\s*at:\s*(?:[^()\n]*\()?(res:\/\/[^):"\s]+):(\d+)/);
|
|
75
80
|
if (resAtMatch) {
|
|
76
81
|
filePath = resAtMatch[1];
|
|
77
82
|
lineNum = parseInt(resAtMatch[2], 10);
|
|
@@ -86,6 +91,21 @@ function parseGodotErrorEntries(stderr) {
|
|
|
86
91
|
}
|
|
87
92
|
}
|
|
88
93
|
}
|
|
94
|
+
// Parse-error entries reference synthetic gdscript:// URIs in their `at:` line
|
|
95
|
+
// rather than a res:// path. Peek forward up to 10 lines for the secondary
|
|
96
|
+
// "Failed to load script/resource: \"res://...\"" message that names the file,
|
|
97
|
+
// and adopt that path so batch error attribution can find it. The window is
|
|
98
|
+
// intentionally wide enough to clear a full GDScript backtrace.
|
|
99
|
+
if (!filePath && /Parse Error/i.test(line)) {
|
|
100
|
+
const lookaheadLimit = Math.min(i + 11, lines.length);
|
|
101
|
+
for (let j = i + 1; j < lookaheadLimit; j++) {
|
|
102
|
+
const failMatch = lines[j].match(/Failed to load (?:script|resource):?\s*"?(res:\/\/[^":\s]+)/);
|
|
103
|
+
if (failMatch) {
|
|
104
|
+
filePath = failMatch[1];
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
89
109
|
entries.push({ message, line: lineNum, filePath });
|
|
90
110
|
continue;
|
|
91
111
|
}
|
|
@@ -103,6 +123,19 @@ function parseGodotErrorEntries(stderr) {
|
|
|
103
123
|
function parseGodotErrors(stderr) {
|
|
104
124
|
return parseGodotErrorEntries(stderr).map(({ message, line }) => ({ message, line }));
|
|
105
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Write inline GDScript source to a uniquely-named file under <projectPath>/.mcp/
|
|
128
|
+
* for validation. Returns the project-relative path (e.g. ".mcp/validate_temp_xxx.gd")
|
|
129
|
+
* that the runner consumes plus the absolute path the caller cleans up.
|
|
130
|
+
*/
|
|
131
|
+
function writeTempGdScript(projectPath, source, prefix) {
|
|
132
|
+
const mcpDir = join(projectPath, '.mcp');
|
|
133
|
+
mkdirSync(mcpDir, { recursive: true });
|
|
134
|
+
const name = `${prefix}_${randomUUID()}.gd`;
|
|
135
|
+
const absPath = join(mcpDir, name);
|
|
136
|
+
writeFileSync(absPath, source, 'utf8');
|
|
137
|
+
return { resPath: `.mcp/${name}`, absPath };
|
|
138
|
+
}
|
|
106
139
|
/**
|
|
107
140
|
* Group Godot stderr errors by their res:// file path.
|
|
108
141
|
* Used for batch validation where multiple files produce output in one stderr stream.
|
|
@@ -120,49 +153,67 @@ function parseGodotErrorsByPath(stderr) {
|
|
|
120
153
|
}
|
|
121
154
|
export async function handleValidate(runner, args) {
|
|
122
155
|
args = normalizeParameters(args);
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
]);
|
|
127
|
-
}
|
|
128
|
-
if (!validatePath(args.projectPath)) {
|
|
129
|
-
return createErrorResponse('Invalid projectPath', ['Provide a valid path without ".."']);
|
|
130
|
-
}
|
|
131
|
-
const projectFile = join(args.projectPath, 'project.godot');
|
|
132
|
-
if (!existsSync(projectFile)) {
|
|
133
|
-
return createErrorResponse(`Not a valid Godot project: ${args.projectPath}`, [
|
|
134
|
-
'Ensure the path points to a directory containing a project.godot file',
|
|
135
|
-
]);
|
|
136
|
-
}
|
|
156
|
+
const pv = validateProjectArgs(args);
|
|
157
|
+
if ('isError' in pv)
|
|
158
|
+
return pv;
|
|
137
159
|
// Batch mode: targets array
|
|
138
160
|
if (args.targets && Array.isArray(args.targets)) {
|
|
139
161
|
const targets = args.targets;
|
|
140
162
|
const tempFiles = [];
|
|
141
163
|
try {
|
|
142
164
|
const snakeTargets = [];
|
|
165
|
+
const preErrors = new Map();
|
|
143
166
|
for (let i = 0; i < targets.length; i++) {
|
|
144
167
|
const t = targets[i];
|
|
145
168
|
if (t.source) {
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const tempName = `validate_batch_${randomUUID()}.gd`;
|
|
150
|
-
const tempPath = join(mcpDir, tempName);
|
|
151
|
-
writeFileSync(tempPath, t.source, 'utf8');
|
|
152
|
-
tempFiles.push(tempPath);
|
|
153
|
-
snakeTargets.push({ script_path: `.mcp/${tempName}` });
|
|
169
|
+
const { resPath, absPath } = writeTempGdScript(pv.projectPath, t.source, 'validate_batch');
|
|
170
|
+
tempFiles.push(absPath);
|
|
171
|
+
snakeTargets.push({ script_path: resPath });
|
|
154
172
|
}
|
|
155
173
|
else if (t.scriptPath) {
|
|
156
|
-
|
|
174
|
+
if (!validateSubPath(pv.projectPath, t.scriptPath)) {
|
|
175
|
+
preErrors.set(i, {
|
|
176
|
+
target: t.scriptPath,
|
|
177
|
+
errors: [
|
|
178
|
+
{
|
|
179
|
+
message: 'Invalid scriptPath: must be a relative path inside the project root, no ".."',
|
|
180
|
+
},
|
|
181
|
+
],
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
snakeTargets.push({ script_path: t.scriptPath });
|
|
186
|
+
}
|
|
157
187
|
}
|
|
158
188
|
else if (t.scenePath) {
|
|
159
|
-
|
|
189
|
+
if (!validateSubPath(pv.projectPath, t.scenePath)) {
|
|
190
|
+
preErrors.set(i, {
|
|
191
|
+
target: t.scenePath,
|
|
192
|
+
errors: [
|
|
193
|
+
{
|
|
194
|
+
message: 'Invalid scenePath: must be a relative path inside the project root, no ".."',
|
|
195
|
+
},
|
|
196
|
+
],
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
snakeTargets.push({ scene_path: t.scenePath });
|
|
201
|
+
}
|
|
160
202
|
}
|
|
161
203
|
else {
|
|
162
204
|
snakeTargets.push({});
|
|
163
205
|
}
|
|
164
206
|
}
|
|
165
|
-
|
|
207
|
+
// Short-circuit when every target failed pre-validation — no work for
|
|
208
|
+
// Godot, and spawning it would just cost ~3s for a no-op.
|
|
209
|
+
if (snakeTargets.length === 0 && preErrors.size === targets.length) {
|
|
210
|
+
const results = targets.map((_, i) => {
|
|
211
|
+
const pre = preErrors.get(i);
|
|
212
|
+
return { target: pre.target, valid: false, errors: pre.errors };
|
|
213
|
+
});
|
|
214
|
+
return { content: [{ type: 'text', text: JSON.stringify({ results }, null, 2) }] };
|
|
215
|
+
}
|
|
216
|
+
const { stdout, stderr } = await runner.executeOperation('validate_batch', { targets: snakeTargets }, pv.projectPath);
|
|
166
217
|
if (!stdout.trim()) {
|
|
167
218
|
return createErrorResponse(`Batch validate failed: ${extractGdError(stderr)}`, [
|
|
168
219
|
'Check that all target paths are valid',
|
|
@@ -179,7 +230,7 @@ export async function handleValidate(runner, args) {
|
|
|
179
230
|
]);
|
|
180
231
|
}
|
|
181
232
|
const errorsByPath = parseGodotErrorsByPath(stderr || '');
|
|
182
|
-
const
|
|
233
|
+
const godotResults = parsed.results.map((r) => {
|
|
183
234
|
const key = r.target.startsWith('res://') ? r.target : `res://${r.target}`;
|
|
184
235
|
const stderrErrors = errorsByPath.get(key) || errorsByPath.get(r.target) || [];
|
|
185
236
|
const allErrors = stderrErrors.length > 0 ? stderrErrors : r.errors || [];
|
|
@@ -189,11 +240,24 @@ export async function handleValidate(runner, args) {
|
|
|
189
240
|
errors: allErrors,
|
|
190
241
|
};
|
|
191
242
|
});
|
|
243
|
+
// Merge pre-validation failures back into their original positions so
|
|
244
|
+
// output order matches input order. Pre-validation errors are ours, not
|
|
245
|
+
// Godot's — they bypass the stderr overlay above.
|
|
246
|
+
const results = [];
|
|
247
|
+
let godotIdx = 0;
|
|
248
|
+
for (let i = 0; i < targets.length; i++) {
|
|
249
|
+
if (preErrors.has(i)) {
|
|
250
|
+
const pre = preErrors.get(i);
|
|
251
|
+
results.push({ target: pre.target, valid: false, errors: pre.errors });
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
results.push(godotResults[godotIdx++]);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
192
257
|
return { content: [{ type: 'text', text: JSON.stringify({ results }, null, 2) }] };
|
|
193
258
|
}
|
|
194
259
|
catch (error) {
|
|
195
|
-
|
|
196
|
-
return createErrorResponse(`Batch validation failed: ${errorMessage}`, [
|
|
260
|
+
return createErrorResponse(`Batch validation failed: ${getErrorMessage(error)}`, [
|
|
197
261
|
'Ensure Godot is installed correctly',
|
|
198
262
|
'Check if the GODOT_PATH environment variable is set correctly',
|
|
199
263
|
]);
|
|
@@ -224,22 +288,17 @@ export async function handleValidate(runner, args) {
|
|
|
224
288
|
let resolvedScenePath;
|
|
225
289
|
try {
|
|
226
290
|
if (args.source) {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
if (!existsSync(mcpDir)) {
|
|
230
|
-
mkdirSync(mcpDir, { recursive: true });
|
|
231
|
-
}
|
|
232
|
-
const tempFileName = `validate_temp_${Date.now()}.gd`;
|
|
233
|
-
const tempFilePath = join(mcpDir, tempFileName);
|
|
234
|
-
writeFileSync(tempFilePath, args.source, 'utf8');
|
|
235
|
-
resolvedScriptPath = `.mcp/${tempFileName}`;
|
|
291
|
+
const { resPath } = writeTempGdScript(pv.projectPath, args.source, 'validate_temp');
|
|
292
|
+
resolvedScriptPath = resPath;
|
|
236
293
|
tempFile = true;
|
|
237
294
|
}
|
|
238
295
|
else if (args.scriptPath) {
|
|
239
|
-
if (!
|
|
240
|
-
return createErrorResponse('Invalid scriptPath', [
|
|
296
|
+
if (!validateSubPath(pv.projectPath, args.scriptPath)) {
|
|
297
|
+
return createErrorResponse('Invalid scriptPath', [
|
|
298
|
+
'Provide a valid relative path without ".." that stays inside the project directory',
|
|
299
|
+
]);
|
|
241
300
|
}
|
|
242
|
-
const fullPath = join(
|
|
301
|
+
const fullPath = join(pv.projectPath, args.scriptPath);
|
|
243
302
|
if (!existsSync(fullPath)) {
|
|
244
303
|
return createErrorResponse(`Script file does not exist: ${args.scriptPath}`, [
|
|
245
304
|
'Ensure the path is correct relative to the project directory',
|
|
@@ -248,10 +307,12 @@ export async function handleValidate(runner, args) {
|
|
|
248
307
|
resolvedScriptPath = args.scriptPath;
|
|
249
308
|
}
|
|
250
309
|
else if (args.scenePath) {
|
|
251
|
-
if (!
|
|
252
|
-
return createErrorResponse('Invalid scenePath', [
|
|
310
|
+
if (!validateSubPath(pv.projectPath, args.scenePath)) {
|
|
311
|
+
return createErrorResponse('Invalid scenePath', [
|
|
312
|
+
'Provide a valid relative path without ".." that stays inside the project directory',
|
|
313
|
+
]);
|
|
253
314
|
}
|
|
254
|
-
const fullPath = join(
|
|
315
|
+
const fullPath = join(pv.projectPath, args.scenePath);
|
|
255
316
|
if (!existsSync(fullPath)) {
|
|
256
317
|
return createErrorResponse(`Scene file does not exist: ${args.scenePath}`, [
|
|
257
318
|
'Ensure the path is correct relative to the project directory',
|
|
@@ -264,7 +325,7 @@ export async function handleValidate(runner, args) {
|
|
|
264
325
|
params.scriptPath = resolvedScriptPath;
|
|
265
326
|
if (resolvedScenePath)
|
|
266
327
|
params.scenePath = resolvedScenePath;
|
|
267
|
-
const { stdout, stderr } = await runner.executeOperation('validate_resource', params,
|
|
328
|
+
const { stdout, stderr } = await runner.executeOperation('validate_resource', params, pv.projectPath);
|
|
268
329
|
// Parse stdout for the base valid/invalid signal from GDScript
|
|
269
330
|
let valid = false;
|
|
270
331
|
let gdErrors = [];
|
|
@@ -283,22 +344,25 @@ export async function handleValidate(runner, args) {
|
|
|
283
344
|
const stderrErrors = parseGodotErrors(stderr || '');
|
|
284
345
|
// Merge errors: prefer detailed stderr errors when available, otherwise keep gdErrors
|
|
285
346
|
const allErrors = stderrErrors.length > 0 ? stderrErrors : gdErrors;
|
|
347
|
+
// The GDScript-side `valid` flag is unreliable for malformed scripts: load()
|
|
348
|
+
// returns a non-null placeholder Resource even when parsing fails, so
|
|
349
|
+
// resource != null is true. Fall back to the parsed stderr errors as the
|
|
350
|
+
// authoritative signal — matches the batch branch above.
|
|
286
351
|
const result = {
|
|
287
|
-
valid,
|
|
352
|
+
valid: valid && allErrors.length === 0,
|
|
288
353
|
errors: allErrors,
|
|
289
354
|
};
|
|
290
355
|
return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
|
|
291
356
|
}
|
|
292
357
|
catch (error) {
|
|
293
|
-
|
|
294
|
-
return createErrorResponse(`Validation failed: ${errorMessage}`, [
|
|
358
|
+
return createErrorResponse(`Validation failed: ${getErrorMessage(error)}`, [
|
|
295
359
|
'Ensure Godot is installed correctly',
|
|
296
360
|
'Check if the GODOT_PATH environment variable is set correctly',
|
|
297
361
|
]);
|
|
298
362
|
}
|
|
299
363
|
finally {
|
|
300
364
|
if (tempFile && resolvedScriptPath) {
|
|
301
|
-
const tempFilePath = join(
|
|
365
|
+
const tempFilePath = join(pv.projectPath, resolvedScriptPath);
|
|
302
366
|
try {
|
|
303
367
|
unlinkSync(tempFilePath);
|
|
304
368
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-tools.js","sourceRoot":"","sources":["../../src/tools/validate-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"validate-tools.js","sourceRoot":"","sources":["../../src/tools/validate-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parsing and editing primitives for the `[autoload]` section of project.godot.
|
|
3
|
+
*
|
|
4
|
+
* Used by:
|
|
5
|
+
* - tools/autoload-tools.ts — list/add/remove/update_autoload handlers
|
|
6
|
+
* - utils/bridge-manager.ts — McpBridge inject/cleanup/repair
|
|
7
|
+
*
|
|
8
|
+
* Pure functions: each takes the absolute path to project.godot and returns
|
|
9
|
+
* either parsed data or a boolean indicating whether the file was mutated.
|
|
10
|
+
*/
|
|
11
|
+
export interface AutoloadEntry {
|
|
12
|
+
name: string;
|
|
13
|
+
path: string;
|
|
14
|
+
singleton: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Matches an empty `[autoload]` section (the header followed by only blank
|
|
18
|
+
* lines, up to the next section header or end-of-file). Used by cleanup paths
|
|
19
|
+
* to drop the section after the last entry is removed.
|
|
20
|
+
*/
|
|
21
|
+
export declare const EMPTY_AUTOLOAD_SECTION_REGEX: RegExp;
|
|
22
|
+
/**
|
|
23
|
+
* Mirrors the parser's `\w+` assumption (parseAutoloads / removeAutoloadEntry).
|
|
24
|
+
* Enforced on write paths to prevent a name with newlines or INI section
|
|
25
|
+
* delimiters from corrupting project.godot.
|
|
26
|
+
*/
|
|
27
|
+
export declare const VALID_AUTOLOAD_NAME_REGEX: RegExp;
|
|
28
|
+
export declare function normalizeAutoloadPath(p: string): string;
|
|
29
|
+
export declare function parseAutoloads(projectFilePath: string, existingContent?: string): AutoloadEntry[];
|
|
30
|
+
export declare function addAutoloadEntry(projectFilePath: string, name: string, path: string, singleton: boolean, existingContent?: string): void;
|
|
31
|
+
/**
|
|
32
|
+
* Remove the named autoload entry. Also drops the `[autoload]` section header
|
|
33
|
+
* if the removed entry was the last one in it. Returns true when the file was
|
|
34
|
+
* mutated.
|
|
35
|
+
*/
|
|
36
|
+
export declare function removeAutoloadEntry(projectFilePath: string, name: string): boolean;
|
|
37
|
+
export declare function updateAutoloadEntry(projectFilePath: string, name: string, newPath?: string, singleton?: boolean): boolean;
|
|
38
|
+
//# sourceMappingURL=autoload-ini.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoload-ini.d.ts","sourceRoot":"","sources":["../../src/utils/autoload-ini.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,QAAkC,CAAC;AAE5E;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,QAAU,CAAC;AAUjD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE,CAsBjG;AAED,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,OAAO,EAClB,eAAe,CAAC,EAAE,MAAM,GACvB,IAAI,CAkBN;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CA6BlF;AAED,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CA8BT"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync } from 'fs';
|
|
2
|
+
/**
|
|
3
|
+
* Matches an empty `[autoload]` section (the header followed by only blank
|
|
4
|
+
* lines, up to the next section header or end-of-file). Used by cleanup paths
|
|
5
|
+
* to drop the section after the last entry is removed.
|
|
6
|
+
*/
|
|
7
|
+
export const EMPTY_AUTOLOAD_SECTION_REGEX = /\[autoload\]\s*(?=\n\[|\n*$)/g;
|
|
8
|
+
/**
|
|
9
|
+
* Mirrors the parser's `\w+` assumption (parseAutoloads / removeAutoloadEntry).
|
|
10
|
+
* Enforced on write paths to prevent a name with newlines or INI section
|
|
11
|
+
* delimiters from corrupting project.godot.
|
|
12
|
+
*/
|
|
13
|
+
export const VALID_AUTOLOAD_NAME_REGEX = /^\w+$/;
|
|
14
|
+
function assertValidName(name) {
|
|
15
|
+
if (!VALID_AUTOLOAD_NAME_REGEX.test(name)) {
|
|
16
|
+
throw new Error(`Invalid autoload name '${name}': must contain only word characters (letters, digits, underscore)`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export function normalizeAutoloadPath(p) {
|
|
20
|
+
return p.startsWith('res://') ? p : `res://${p}`;
|
|
21
|
+
}
|
|
22
|
+
export function parseAutoloads(projectFilePath, existingContent) {
|
|
23
|
+
const content = existingContent ?? readFileSync(projectFilePath, 'utf8');
|
|
24
|
+
const autoloads = [];
|
|
25
|
+
let inAutoloadSection = false;
|
|
26
|
+
for (const line of content.split('\n')) {
|
|
27
|
+
const trimmed = line.trim();
|
|
28
|
+
if (trimmed.startsWith('[')) {
|
|
29
|
+
inAutoloadSection = trimmed === '[autoload]';
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (!inAutoloadSection || trimmed === '' || trimmed.startsWith(';') || trimmed.startsWith('#'))
|
|
33
|
+
continue;
|
|
34
|
+
// The surrounding `"?` are intentional: Godot always writes quotes, but
|
|
35
|
+
// hand-edited project.godot files sometimes omit them. Tolerating both
|
|
36
|
+
// shapes means a missing quote pair doesn't silently drop the entry.
|
|
37
|
+
const match = trimmed.match(/^(\w+)="?(\*?)([^"]*?)"?$/);
|
|
38
|
+
if (match) {
|
|
39
|
+
autoloads.push({ name: match[1], singleton: match[2] === '*', path: match[3] });
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return autoloads;
|
|
43
|
+
}
|
|
44
|
+
export function addAutoloadEntry(projectFilePath, name, path, singleton, existingContent) {
|
|
45
|
+
assertValidName(name);
|
|
46
|
+
const content = existingContent ?? readFileSync(projectFilePath, 'utf8');
|
|
47
|
+
const lines = content.split('\n');
|
|
48
|
+
const entry = `${name}="${singleton ? '*' : ''}${normalizeAutoloadPath(path)}"`;
|
|
49
|
+
const sectionIdx = lines.findIndex((l) => l.trim() === '[autoload]');
|
|
50
|
+
if (sectionIdx === -1) {
|
|
51
|
+
writeFileSync(projectFilePath, content.trimEnd() + '\n\n[autoload]\n' + entry + '\n', 'utf8');
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
let insertIdx = sectionIdx + 1;
|
|
55
|
+
while (insertIdx < lines.length && !lines[insertIdx].trim().startsWith('[')) {
|
|
56
|
+
insertIdx++;
|
|
57
|
+
}
|
|
58
|
+
lines.splice(insertIdx, 0, entry);
|
|
59
|
+
writeFileSync(projectFilePath, lines.join('\n'), 'utf8');
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Remove the named autoload entry. Also drops the `[autoload]` section header
|
|
63
|
+
* if the removed entry was the last one in it. Returns true when the file was
|
|
64
|
+
* mutated.
|
|
65
|
+
*/
|
|
66
|
+
export function removeAutoloadEntry(projectFilePath, name) {
|
|
67
|
+
const content = readFileSync(projectFilePath, 'utf8');
|
|
68
|
+
const lines = content.split('\n');
|
|
69
|
+
let inAutoloadSection = false;
|
|
70
|
+
let removed = false;
|
|
71
|
+
const filtered = lines.filter((line) => {
|
|
72
|
+
const trimmed = line.trim();
|
|
73
|
+
if (trimmed.startsWith('[')) {
|
|
74
|
+
inAutoloadSection = trimmed === '[autoload]';
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
if (inAutoloadSection) {
|
|
78
|
+
const match = trimmed.match(/^(\w+)=/);
|
|
79
|
+
if (match && match[1] === name) {
|
|
80
|
+
removed = true;
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return true;
|
|
85
|
+
});
|
|
86
|
+
if (!removed)
|
|
87
|
+
return false;
|
|
88
|
+
let newContent = filtered.join('\n');
|
|
89
|
+
newContent = newContent.replace(EMPTY_AUTOLOAD_SECTION_REGEX, '');
|
|
90
|
+
newContent = newContent.trimEnd() + '\n';
|
|
91
|
+
writeFileSync(projectFilePath, newContent, 'utf8');
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
export function updateAutoloadEntry(projectFilePath, name, newPath, singleton) {
|
|
95
|
+
assertValidName(name);
|
|
96
|
+
const content = readFileSync(projectFilePath, 'utf8');
|
|
97
|
+
const lines = content.split('\n');
|
|
98
|
+
let inAutoloadSection = false;
|
|
99
|
+
let updated = false;
|
|
100
|
+
const newLines = lines.map((line) => {
|
|
101
|
+
const trimmed = line.trim();
|
|
102
|
+
if (trimmed.startsWith('[')) {
|
|
103
|
+
inAutoloadSection = trimmed === '[autoload]';
|
|
104
|
+
return line;
|
|
105
|
+
}
|
|
106
|
+
if (inAutoloadSection) {
|
|
107
|
+
// The surrounding `"?` are intentional: Godot always writes quotes, but
|
|
108
|
+
// hand-edited project.godot files sometimes omit them. Tolerating both
|
|
109
|
+
// shapes means a missing quote pair doesn't silently drop the entry.
|
|
110
|
+
const match = trimmed.match(/^(\w+)="?(\*?)([^"]*?)"?$/);
|
|
111
|
+
if (match && match[1] === name) {
|
|
112
|
+
const effectiveSingleton = singleton !== undefined ? singleton : match[2] === '*';
|
|
113
|
+
const effectivePath = newPath !== undefined ? normalizeAutoloadPath(newPath) : match[3];
|
|
114
|
+
updated = true;
|
|
115
|
+
return `${name}="${effectiveSingleton ? '*' : ''}${effectivePath}"`;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return line;
|
|
119
|
+
});
|
|
120
|
+
if (updated)
|
|
121
|
+
writeFileSync(projectFilePath, newLines.join('\n'), 'utf8');
|
|
122
|
+
return updated;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=autoload-ini.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoload-ini.js","sourceRoot":"","sources":["../../src/utils/autoload-ini.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Owns the McpBridge autoload artifact: the script copy in the target project,
|
|
3
|
+
* the `[autoload]` entry in project.godot, the `.mcp/.gdignore` marker, and the
|
|
4
|
+
* `.gitignore` augmentation. GodotRunner delegates to this for inject/cleanup
|
|
5
|
+
* during run_project / attach_project / stop_project flows.
|
|
6
|
+
*
|
|
7
|
+
* The project-root bridge script is runtime-owned and refreshed on first
|
|
8
|
+
* injection for a manager session so a rebuilt server cannot talk to stale
|
|
9
|
+
* GDScript from an earlier run. Idempotent within a session via
|
|
10
|
+
* `injectedProjects`: a second `inject()` call for the same path short-circuits
|
|
11
|
+
* without rewriting project.godot.
|
|
12
|
+
*/
|
|
13
|
+
export declare class BridgeManager {
|
|
14
|
+
private bridgeScriptPath;
|
|
15
|
+
private injectedProjects;
|
|
16
|
+
private repairedProjects;
|
|
17
|
+
/**
|
|
18
|
+
* Last port baked into the on-disk script per project. Used by the
|
|
19
|
+
* race-detection helper in runtime-tools to spot a concurrent re-inject
|
|
20
|
+
* after a bridge-wait timeout.
|
|
21
|
+
*/
|
|
22
|
+
private lastInjectedPort;
|
|
23
|
+
constructor(bridgeScriptPath: string);
|
|
24
|
+
inject(projectPath: string, port: number): void;
|
|
25
|
+
cleanup(projectPath: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Read the port currently baked into the project's bridge script. Returns
|
|
28
|
+
* the integer on success, or null if the file is missing, unreadable, or
|
|
29
|
+
* lacks the marker. Used to detect concurrent re-inject after a bridge-
|
|
30
|
+
* wait timeout (another MCP client may have rewritten the port).
|
|
31
|
+
*/
|
|
32
|
+
readBakedPort(projectPath: string): number | null;
|
|
33
|
+
/**
|
|
34
|
+
* If project.godot still has an `McpBridge=` line but the script file is
|
|
35
|
+
* missing, the autoload would crash every subsequent headless op. Detect and
|
|
36
|
+
* clean the orphan before running an operation.
|
|
37
|
+
*
|
|
38
|
+
* Cached per project: once a path has been checked clean, skip the file
|
|
39
|
+
* reads on subsequent ops in the same session.
|
|
40
|
+
*/
|
|
41
|
+
repairOrphaned(projectPath: string): void;
|
|
42
|
+
private removeBridgeArtifacts;
|
|
43
|
+
private ensureMcpGdignore;
|
|
44
|
+
private ensureGitignored;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=bridge-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-manager.d.ts","sourceRoot":"","sources":["../../src/utils/bridge-manager.ts"],"names":[],"mappings":"AAaA;;;;;;;;;;;GAWG;AACH,qBAAa,aAAa;IAUZ,OAAO,CAAC,gBAAgB;IATpC,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,gBAAgB,CAA0B;IAClD;;;;OAIG;IACH,OAAO,CAAC,gBAAgB,CAAkC;gBAEtC,gBAAgB,EAAE,MAAM;IAE5C,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAuC/C,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAOlC;;;;;OAKG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAejD;;;;;;;OAOG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAqBzC,OAAO,CAAC,qBAAqB;IAkC7B,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,gBAAgB;CAkBzB"}
|