@satelliteoflove/godot-mcp 3.2.0 → 3.3.1
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/addon/plugin.cfg +1 -1
- package/dist/__tests__/core/discriminated-union-schema.test.d.ts +2 -0
- package/dist/__tests__/core/discriminated-union-schema.test.d.ts.map +1 -0
- package/dist/__tests__/core/discriminated-union-schema.test.js +37 -0
- package/dist/__tests__/core/discriminated-union-schema.test.js.map +1 -0
- package/dist/__tests__/tools/input.test.js +2 -8
- package/dist/__tests__/tools/input.test.js.map +1 -1
- package/dist/__tests__/tools/profiler.test.js +6 -2
- package/dist/__tests__/tools/profiler.test.js.map +1 -1
- package/dist/tools/animation.d.ts +79 -28
- package/dist/tools/animation.d.ts.map +1 -1
- package/dist/tools/animation.js +112 -84
- package/dist/tools/animation.js.map +1 -1
- package/dist/tools/docs.d.ts +22 -8
- package/dist/tools/docs.d.ts.map +1 -1
- package/dist/tools/docs.js +23 -22
- package/dist/tools/docs.js.map +1 -1
- package/dist/tools/editor.d.ts +23 -15
- package/dist/tools/editor.d.ts.map +1 -1
- package/dist/tools/editor.js +41 -57
- package/dist/tools/editor.js.map +1 -1
- package/dist/tools/input.d.ts +10 -10
- package/dist/tools/input.d.ts.map +1 -1
- package/dist/tools/input.js +31 -37
- package/dist/tools/input.js.map +1 -1
- package/dist/tools/node.d.ts +34 -21
- package/dist/tools/node.d.ts.map +1 -1
- package/dist/tools/node.js +75 -87
- package/dist/tools/node.js.map +1 -1
- package/dist/tools/profiler.d.ts +13 -10
- package/dist/tools/profiler.d.ts.map +1 -1
- package/dist/tools/profiler.js +14 -26
- package/dist/tools/profiler.js.map +1 -1
- package/dist/tools/project.d.ts +7 -7
- package/dist/tools/project.d.ts.map +1 -1
- package/dist/tools/project.js +23 -17
- package/dist/tools/project.js.map +1 -1
- package/dist/tools/resource.d.ts +4 -6
- package/dist/tools/resource.d.ts.map +1 -1
- package/dist/tools/resource.js +17 -27
- package/dist/tools/resource.js.map +1 -1
- package/dist/tools/scene.d.ts +10 -8
- package/dist/tools/scene.d.ts.map +1 -1
- package/dist/tools/scene.js +19 -32
- package/dist/tools/scene.js.map +1 -1
- package/dist/tools/scene3d.d.ts +7 -8
- package/dist/tools/scene3d.d.ts.map +1 -1
- package/dist/tools/scene3d.js +29 -42
- package/dist/tools/scene3d.js.map +1 -1
- package/dist/tools/tilemap.d.ts +95 -44
- package/dist/tools/tilemap.d.ts.map +1 -1
- package/dist/tools/tilemap.js +113 -114
- package/dist/tools/tilemap.js.map +1 -1
- package/package.json +1 -1
package/dist/tools/node.js
CHANGED
|
@@ -1,92 +1,80 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { defineTool } from '../core/define-tool.js';
|
|
3
|
+
const propertiesField = z
|
|
4
|
+
.record(z.string(), z.unknown())
|
|
5
|
+
.optional()
|
|
6
|
+
.describe('Properties to set on the node');
|
|
3
7
|
const NodeSchema = z
|
|
4
|
-
.
|
|
5
|
-
|
|
6
|
-
.
|
|
7
|
-
.describe('
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
.
|
|
26
|
-
.
|
|
27
|
-
.describe('
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
.describe('
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
.string()
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
.string()
|
|
50
|
-
.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
.
|
|
54
|
-
.
|
|
55
|
-
.describe('
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
.
|
|
59
|
-
.describe('Path to the
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
.
|
|
63
|
-
.describe('
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
case 'create':
|
|
75
|
-
return (!!data.parent_path &&
|
|
76
|
-
!!data.node_name &&
|
|
77
|
-
!!data.node_type !== !!data.scene_path);
|
|
78
|
-
case 'reparent':
|
|
79
|
-
return !!data.node_path && !!data.new_parent_path;
|
|
80
|
-
case 'attach_script':
|
|
81
|
-
return !!data.node_path && !!data.script_path;
|
|
82
|
-
case 'connect_signal':
|
|
83
|
-
return !!data.node_path && !!data.signal_name && !!data.target_path && !!data.method_name;
|
|
84
|
-
default:
|
|
85
|
-
return false;
|
|
86
|
-
}
|
|
87
|
-
}, {
|
|
88
|
-
message: 'Missing required fields for action. get_properties/update/delete/detach_script need node_path; find needs name_pattern and/or type; create needs parent_path, node_name, and either node_type OR scene_path; reparent needs node_path and new_parent_path; attach_script needs node_path and script_path; connect_signal needs node_path, signal_name, target_path, and method_name',
|
|
89
|
-
});
|
|
8
|
+
.discriminatedUnion('action', [
|
|
9
|
+
z.object({
|
|
10
|
+
action: z.literal('get_properties').describe('Get a node\'s properties'),
|
|
11
|
+
node_path: z.string().describe('Path to the node'),
|
|
12
|
+
}),
|
|
13
|
+
z.object({
|
|
14
|
+
action: z.literal('find').describe('Find nodes by name and/or type'),
|
|
15
|
+
name_pattern: z
|
|
16
|
+
.string()
|
|
17
|
+
.optional()
|
|
18
|
+
.describe('Glob pattern to match node names, e.g. "*Spawner*", "Turret?"'),
|
|
19
|
+
type: z
|
|
20
|
+
.string()
|
|
21
|
+
.optional()
|
|
22
|
+
.describe('Filter by node type, e.g. "CharacterBody2D", "Area2D"'),
|
|
23
|
+
root_path: z
|
|
24
|
+
.string()
|
|
25
|
+
.optional()
|
|
26
|
+
.describe('Path to start search from (defaults to scene root)'),
|
|
27
|
+
}),
|
|
28
|
+
z.object({
|
|
29
|
+
action: z.literal('create').describe('Create a node, or instantiate a scene as a node'),
|
|
30
|
+
parent_path: z.string().describe('Path to the parent node'),
|
|
31
|
+
node_name: z.string().describe('Name for the new node'),
|
|
32
|
+
node_type: z
|
|
33
|
+
.string()
|
|
34
|
+
.optional()
|
|
35
|
+
.describe('Type of node to create, e.g. "Sprite2D" (use this OR scene_path)'),
|
|
36
|
+
scene_path: z
|
|
37
|
+
.string()
|
|
38
|
+
.optional()
|
|
39
|
+
.describe('Path to scene to instantiate, e.g. "res://enemies/goblin.tscn" (use this OR node_type)'),
|
|
40
|
+
properties: propertiesField,
|
|
41
|
+
}),
|
|
42
|
+
z.object({
|
|
43
|
+
action: z.literal('update').describe('Update a node\'s properties'),
|
|
44
|
+
node_path: z.string().describe('Path to the node'),
|
|
45
|
+
properties: propertiesField,
|
|
46
|
+
}),
|
|
47
|
+
z.object({
|
|
48
|
+
action: z.literal('delete').describe('Delete a node'),
|
|
49
|
+
node_path: z.string().describe('Path to the node'),
|
|
50
|
+
}),
|
|
51
|
+
z.object({
|
|
52
|
+
action: z.literal('reparent').describe('Move a node to a new parent'),
|
|
53
|
+
node_path: z.string().describe('Path to the node'),
|
|
54
|
+
new_parent_path: z.string().describe('Path to the new parent node'),
|
|
55
|
+
}),
|
|
56
|
+
z.object({
|
|
57
|
+
action: z.literal('attach_script').describe('Attach a script to a node'),
|
|
58
|
+
node_path: z.string().describe('Path to the node'),
|
|
59
|
+
script_path: z.string().describe('Path to the script file'),
|
|
60
|
+
}),
|
|
61
|
+
z.object({
|
|
62
|
+
action: z.literal('detach_script').describe('Detach a node\'s script'),
|
|
63
|
+
node_path: z.string().describe('Path to the node'),
|
|
64
|
+
}),
|
|
65
|
+
z.object({
|
|
66
|
+
action: z.literal('connect_signal').describe('Connect a signal to a target method'),
|
|
67
|
+
node_path: z.string().describe('Path to the node emitting the signal'),
|
|
68
|
+
signal_name: z.string().describe('Name of the signal, e.g. "pressed", "body_entered"'),
|
|
69
|
+
target_path: z.string().describe('Path to the target node that will receive the signal'),
|
|
70
|
+
method_name: z.string().describe('Name of the method to call on the target node'),
|
|
71
|
+
}),
|
|
72
|
+
])
|
|
73
|
+
// Constraints a discriminated union can't express on its own, so they live here:
|
|
74
|
+
.refine((data) => (data.action === 'find' ? !!data.name_pattern || !!data.type : true), { message: 'find requires name_pattern and/or type' })
|
|
75
|
+
.refine(
|
|
76
|
+
// create needs exactly one of node_type / scene_path (XOR).
|
|
77
|
+
(data) => (data.action === 'create' ? !!data.node_type !== !!data.scene_path : true), { message: 'create requires exactly one of node_type or scene_path' });
|
|
90
78
|
export const node = defineTool({
|
|
91
79
|
name: 'godot_node',
|
|
92
80
|
annotations: { title: 'Node', readOnlyHint: false, destructiveHint: true, openWorldHint: false },
|
|
@@ -96,7 +84,7 @@ export const node = defineTool({
|
|
|
96
84
|
switch (args.action) {
|
|
97
85
|
case 'get_properties': {
|
|
98
86
|
const result = await godot.sendCommand('get_node_properties', { node_path: args.node_path });
|
|
99
|
-
return JSON.stringify(result.properties
|
|
87
|
+
return JSON.stringify(result.properties);
|
|
100
88
|
}
|
|
101
89
|
case 'find': {
|
|
102
90
|
const result = await godot.sendCommand('find_nodes', {
|
package/dist/tools/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/tools/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,MAAM,
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/tools/node.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/profiler.d.ts
CHANGED
|
@@ -38,17 +38,20 @@ export interface FrameBudget {
|
|
|
38
38
|
budget_usage_percent: number;
|
|
39
39
|
}
|
|
40
40
|
export declare function computeFrameBudget(frameTimeStats: PercentileStats, targetFps: number): FrameBudget;
|
|
41
|
-
export declare const profiler: import("../core/types.js").ToolDefinition<z.ZodObject<{
|
|
42
|
-
action: z.
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
41
|
+
export declare const profiler: import("../core/types.js").ToolDefinition<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
42
|
+
action: z.ZodLiteral<"snapshot">;
|
|
43
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
44
|
+
action: z.ZodLiteral<"start">;
|
|
45
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
46
|
+
action: z.ZodLiteral<"stop">;
|
|
47
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
48
|
+
action: z.ZodLiteral<"get_data">;
|
|
49
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
50
|
+
action: z.ZodLiteral<"get_active_processes">;
|
|
51
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
52
|
+
action: z.ZodLiteral<"get_signal_connections">;
|
|
50
53
|
node_path: z.ZodOptional<z.ZodString>;
|
|
51
|
-
}, z.core.$strip>>;
|
|
54
|
+
}, z.core.$strip>], "action">>;
|
|
52
55
|
export declare const profilerTools: AnyToolDefinition[];
|
|
53
56
|
export {};
|
|
54
57
|
//# sourceMappingURL=profiler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiler.d.ts","sourceRoot":"","sources":["../../src/tools/profiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5B;AAyBD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAgBpE;AAUD,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,eAAe,EAAE,MAAM,GAAG,SAAS,EAAE,CAkBvF;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAgCvF;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,eAAe,EAC/B,SAAS,EAAE,MAAM,GAChB,WAAW,CAWb;
|
|
1
|
+
{"version":3,"file":"profiler.d.ts","sourceRoot":"","sources":["../../src/tools/profiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5B;AAyBD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAgBpE;AAUD,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,eAAe,EAAE,MAAM,GAAG,SAAS,EAAE,CAkBvF;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAgCvF;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,wBAAgB,kBAAkB,CAChC,cAAc,EAAE,eAAe,EAC/B,SAAS,EAAE,MAAM,GAChB,WAAW,CAWb;AAgBD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;8BAwHnB,CAAC;AAEH,eAAO,MAAM,aAAa,EAAiB,iBAAiB,EAAE,CAAC"}
|
package/dist/tools/profiler.js
CHANGED
|
@@ -83,29 +83,17 @@ export function computeFrameBudget(frameTimeStats, targetFps) {
|
|
|
83
83
|
budget_usage_percent: budgetUsage,
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
|
-
const ProfilerSchema = z
|
|
87
|
-
.object({
|
|
88
|
-
action: z
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
'
|
|
94
|
-
'
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
.describe('Action: snapshot (full perf snapshot), start/stop/get_data (time series profiling), get_active_processes, get_signal_connections'),
|
|
98
|
-
node_path: z
|
|
99
|
-
.string()
|
|
100
|
-
.optional()
|
|
101
|
-
.describe('Node path for get_signal_connections (optional, defaults to scene root)'),
|
|
102
|
-
})
|
|
103
|
-
.refine((data) => {
|
|
104
|
-
if (data.node_path !== undefined && data.action !== 'get_signal_connections') {
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
return true;
|
|
108
|
-
}, { message: 'node_path is only valid with get_signal_connections action' });
|
|
86
|
+
const ProfilerSchema = z.discriminatedUnion('action', [
|
|
87
|
+
z.object({ action: z.literal('snapshot').describe('Full performance snapshot (all engine metrics)') }),
|
|
88
|
+
z.object({ action: z.literal('start').describe('Start per-frame time-series profiling') }),
|
|
89
|
+
z.object({ action: z.literal('stop').describe('Stop time-series profiling') }),
|
|
90
|
+
z.object({ action: z.literal('get_data').describe('Get collected time-series data with spike detection') }),
|
|
91
|
+
z.object({ action: z.literal('get_active_processes').describe('List active _process/_physics_process scripts') }),
|
|
92
|
+
z.object({
|
|
93
|
+
action: z.literal('get_signal_connections').describe('Inspect signal connections'),
|
|
94
|
+
node_path: z.string().optional().describe('Node path (defaults to scene root)'),
|
|
95
|
+
}),
|
|
96
|
+
]);
|
|
109
97
|
export const profiler = defineTool({
|
|
110
98
|
name: 'godot_profiler',
|
|
111
99
|
annotations: { title: 'Profiler', readOnlyHint: true, openWorldHint: false },
|
|
@@ -115,7 +103,7 @@ export const profiler = defineTool({
|
|
|
115
103
|
switch (args.action) {
|
|
116
104
|
case 'snapshot': {
|
|
117
105
|
const result = await godot.sendCommand('get_performance_metrics');
|
|
118
|
-
return JSON.stringify(result
|
|
106
|
+
return JSON.stringify(result);
|
|
119
107
|
}
|
|
120
108
|
case 'start': {
|
|
121
109
|
const result = await godot.sendCommand('start_profiler');
|
|
@@ -133,7 +121,7 @@ export const profiler = defineTool({
|
|
|
133
121
|
active: result.active,
|
|
134
122
|
frame_count: 0,
|
|
135
123
|
message: 'No frames collected. Start the profiler first with action: start',
|
|
136
|
-
}
|
|
124
|
+
});
|
|
137
125
|
}
|
|
138
126
|
const frameTimeStats = computePercentiles(frames.map((f) => f.ft));
|
|
139
127
|
const processTimeStats = computePercentiles(frames.map((f) => f.pt));
|
|
@@ -161,7 +149,7 @@ export const profiler = defineTool({
|
|
|
161
149
|
frames: spikes.slice(0, 20),
|
|
162
150
|
},
|
|
163
151
|
monitor_trends: monitorTrends,
|
|
164
|
-
}
|
|
152
|
+
});
|
|
165
153
|
}
|
|
166
154
|
case 'get_active_processes': {
|
|
167
155
|
const result = await godot.sendCommand('get_active_processes');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiler.js","sourceRoot":"","sources":["../../src/tools/profiler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"profiler.js","sourceRoot":"","sources":["../../src/tools/profiler.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/project.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import type { AnyToolDefinition } from '../core/types.js';
|
|
3
|
-
export declare const project: import("../core/types.js").ToolDefinition<z.ZodObject<{
|
|
4
|
-
action: z.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
addon_status: "addon_status";
|
|
8
|
-
}>;
|
|
3
|
+
export declare const project: import("../core/types.js").ToolDefinition<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
4
|
+
action: z.ZodLiteral<"get_info">;
|
|
5
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
6
|
+
action: z.ZodLiteral<"get_settings">;
|
|
9
7
|
category: z.ZodOptional<z.ZodString>;
|
|
10
8
|
include_builtin: z.ZodOptional<z.ZodBoolean>;
|
|
11
|
-
}, z.core.$strip
|
|
9
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
10
|
+
action: z.ZodLiteral<"addon_status">;
|
|
11
|
+
}, z.core.$strip>], "action">>;
|
|
12
12
|
export declare const projectTools: AnyToolDefinition[];
|
|
13
13
|
//# sourceMappingURL=project.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/tools/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/tools/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAyB1D,eAAO,MAAM,OAAO;;;;;;;;8BA8DlB,CAAC;AAEH,eAAO,MAAM,YAAY,EAAgB,iBAAiB,EAAE,CAAC"}
|
package/dist/tools/project.js
CHANGED
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { defineTool } from '../core/define-tool.js';
|
|
3
3
|
import { getServerVersion } from '../version.js';
|
|
4
|
-
const ProjectSchema = z.
|
|
5
|
-
|
|
6
|
-
.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
4
|
+
const ProjectSchema = z.discriminatedUnion('action', [
|
|
5
|
+
z.object({
|
|
6
|
+
action: z.literal('get_info').describe('Get project name, path, version, and main scene'),
|
|
7
|
+
}),
|
|
8
|
+
z.object({
|
|
9
|
+
action: z.literal('get_settings').describe('Get project settings'),
|
|
10
|
+
category: z
|
|
11
|
+
.string()
|
|
12
|
+
.optional()
|
|
13
|
+
.describe('Settings category to filter by (use "input" for input mappings)'),
|
|
14
|
+
include_builtin: z
|
|
15
|
+
.boolean()
|
|
16
|
+
.optional()
|
|
17
|
+
.describe('Include built-in ui_* actions (with category="input")'),
|
|
18
|
+
}),
|
|
19
|
+
z.object({
|
|
20
|
+
action: z.literal('addon_status').describe('Check addon/server version compatibility'),
|
|
21
|
+
}),
|
|
22
|
+
]);
|
|
17
23
|
export const project = defineTool({
|
|
18
24
|
name: 'godot_project',
|
|
19
25
|
annotations: { title: 'Project Info', readOnlyHint: true, openWorldHint: false },
|
|
@@ -23,14 +29,14 @@ export const project = defineTool({
|
|
|
23
29
|
switch (args.action) {
|
|
24
30
|
case 'get_info': {
|
|
25
31
|
const result = await godot.sendCommand('get_project_info');
|
|
26
|
-
return JSON.stringify(result
|
|
32
|
+
return JSON.stringify(result);
|
|
27
33
|
}
|
|
28
34
|
case 'get_settings': {
|
|
29
35
|
const result = await godot.sendCommand('get_project_settings', {
|
|
30
36
|
category: args.category,
|
|
31
37
|
include_builtin: args.include_builtin,
|
|
32
38
|
});
|
|
33
|
-
return JSON.stringify(result.settings
|
|
39
|
+
return JSON.stringify(result.settings);
|
|
34
40
|
}
|
|
35
41
|
case 'addon_status': {
|
|
36
42
|
const serverVersion = getServerVersion();
|
|
@@ -39,7 +45,7 @@ export const project = defineTool({
|
|
|
39
45
|
connected: false,
|
|
40
46
|
server_version: serverVersion,
|
|
41
47
|
recommendation: 'Not connected to Godot. Ask user for their project path, then install with: npx @satelliteoflove/godot-mcp --install-addon <path>',
|
|
42
|
-
}
|
|
48
|
+
});
|
|
43
49
|
}
|
|
44
50
|
const addonVersion = godot.addonVersion;
|
|
45
51
|
const projectPath = godot.projectPath;
|
|
@@ -55,7 +61,7 @@ export const project = defineTool({
|
|
|
55
61
|
recommendation: versionsMatch
|
|
56
62
|
? null
|
|
57
63
|
: `Version mismatch. Close Godot and run: npx @satelliteoflove/godot-mcp --install-addon "${projectPath}"`,
|
|
58
|
-
}
|
|
64
|
+
});
|
|
59
65
|
}
|
|
60
66
|
}
|
|
61
67
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/tools/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/tools/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,aAAa,GAAG,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IACnD,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,iDAAiD,CAAC;KAC1F,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAClE,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,iEAAiE,CAAC;QAC9E,eAAe,EAAE,CAAC;aACf,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,uDAAuD,CAAC;KACrE,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,0CAA0C,CAAC;KACvF,CAAC;CACH,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAAC;IAChC,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;IAChF,WAAW,EAAE,sCAAsC;IACnD,MAAM,EAAE,aAAa;IACrB,KAAK,CAAC,OAAO,CAAC,IAAiB,EAAE,EAAE,KAAK,EAAE;QACxC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAKnC,kBAAkB,CAAC,CAAC;gBACvB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAEnC,sBAAsB,EAAE;oBACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,eAAe,EAAE,IAAI,CAAC,eAAe;iBACtC,CAAC,CAAC;gBACH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzC,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;gBAEzC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;oBACvB,OAAO,IAAI,CAAC,SAAS,CACnB;wBACE,SAAS,EAAE,KAAK;wBAChB,cAAc,EAAE,aAAa;wBAC7B,cAAc,EACZ,mIAAmI;qBACtI,CACF,CAAC;gBACJ,CAAC;gBAED,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;gBACxC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;gBACtC,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;gBAE1C,OAAO,IAAI,CAAC,SAAS,CACnB;oBACE,SAAS,EAAE,IAAI;oBACf,cAAc,EAAE,aAAa;oBAC7B,aAAa,EAAE,YAAY,IAAI,SAAS;oBACxC,cAAc,EAAE,aAAa;oBAC7B,YAAY,EAAE,WAAW;oBACzB,YAAY,EAAE,KAAK,CAAC,WAAW;oBAC/B,aAAa,EAAE,KAAK,CAAC,YAAY;oBACjC,cAAc,EAAE,aAAa;wBAC3B,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,0FAA0F,WAAW,GAAG;iBAC7G,CACF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,CAAwB,CAAC"}
|
package/dist/tools/resource.d.ts
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import type { AnyToolDefinition } from '../core/types.js';
|
|
3
|
-
export declare const resource: import("../core/types.js").ToolDefinition<z.ZodObject<{
|
|
4
|
-
action: z.
|
|
5
|
-
|
|
6
|
-
}>;
|
|
7
|
-
resource_path: z.ZodOptional<z.ZodString>;
|
|
3
|
+
export declare const resource: import("../core/types.js").ToolDefinition<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
4
|
+
action: z.ZodLiteral<"get_info">;
|
|
5
|
+
resource_path: z.ZodString;
|
|
8
6
|
max_depth: z.ZodOptional<z.ZodNumber>;
|
|
9
7
|
include_internal: z.ZodOptional<z.ZodBoolean>;
|
|
10
|
-
}, z.core.$strip>>;
|
|
8
|
+
}, z.core.$strip>], "action">>;
|
|
11
9
|
export declare const resourceTools: AnyToolDefinition[];
|
|
12
10
|
//# sourceMappingURL=resource.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/tools/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../src/tools/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AA4B1D,eAAO,MAAM,QAAQ;;;;;8BAqBnB,CAAC;AAEH,eAAO,MAAM,aAAa,EAAiB,iBAAiB,EAAE,CAAC"}
|
package/dist/tools/resource.js
CHANGED
|
@@ -1,31 +1,21 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { defineTool } from '../core/define-tool.js';
|
|
3
|
-
const ResourceSchema = z
|
|
4
|
-
.object({
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
.describe('Include internal properties starting with underscore (get_info, default: false)'),
|
|
20
|
-
})
|
|
21
|
-
.refine((data) => {
|
|
22
|
-
switch (data.action) {
|
|
23
|
-
case 'get_info':
|
|
24
|
-
return !!data.resource_path;
|
|
25
|
-
default:
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
}, { message: 'get_info action requires resource_path' });
|
|
3
|
+
const ResourceSchema = z.discriminatedUnion('action', [
|
|
4
|
+
z.object({
|
|
5
|
+
action: z.literal('get_info').describe('Inspect a Resource file by path'),
|
|
6
|
+
resource_path: z
|
|
7
|
+
.string()
|
|
8
|
+
.describe('Resource path (e.g., "res://player/sprites.tres")'),
|
|
9
|
+
max_depth: z
|
|
10
|
+
.number()
|
|
11
|
+
.optional()
|
|
12
|
+
.describe('Detail level: 0 = summary only, 1 = full detail (default), 2+ = expand sub-resources'),
|
|
13
|
+
include_internal: z
|
|
14
|
+
.boolean()
|
|
15
|
+
.optional()
|
|
16
|
+
.describe('Include internal properties starting with underscore (default: false)'),
|
|
17
|
+
}),
|
|
18
|
+
]);
|
|
29
19
|
export const resource = defineTool({
|
|
30
20
|
name: 'godot_resource',
|
|
31
21
|
annotations: { title: 'Resource Inspector', readOnlyHint: true, openWorldHint: false },
|
|
@@ -39,7 +29,7 @@ export const resource = defineTool({
|
|
|
39
29
|
max_depth: args.max_depth ?? 1,
|
|
40
30
|
include_internal: args.include_internal ?? false,
|
|
41
31
|
});
|
|
42
|
-
return JSON.stringify(result
|
|
32
|
+
return JSON.stringify(result);
|
|
43
33
|
}
|
|
44
34
|
}
|
|
45
35
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/tools/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAUpD,MAAM,cAAc,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../../src/tools/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAUpD,MAAM,cAAc,GAAG,CAAC,CAAC,kBAAkB,CAAC,QAAQ,EAAE;IACpD,CAAC,CAAC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QACzE,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,QAAQ,CAAC,mDAAmD,CAAC;QAChE,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,sFAAsF,CAAC;QACnG,gBAAgB,EAAE,CAAC;aAChB,OAAO,EAAE;aACT,QAAQ,EAAE;aACV,QAAQ,CAAC,uEAAuE,CAAC;KACrF,CAAC;CACH,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAAC;IACjC,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;IACtF,WAAW,EACT,oJAAoJ;IACtJ,MAAM,EAAE,cAAc;IACtB,KAAK,CAAC,OAAO,CAAC,IAAkB,EAAE,EAAE,KAAK,EAAE;QACzC,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CACpC,mBAAmB,EACnB;oBACE,aAAa,EAAE,IAAI,CAAC,aAAa;oBACjC,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC;oBAC9B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,KAAK;iBACjD,CACF,CAAC;gBACF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAQ,CAAwB,CAAC"}
|
package/dist/tools/scene.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import type { AnyToolDefinition } from '../core/types.js';
|
|
3
|
-
export declare const scene: import("../core/types.js").ToolDefinition<z.ZodObject<{
|
|
4
|
-
action: z.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}>;
|
|
3
|
+
export declare const scene: import("../core/types.js").ToolDefinition<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
4
|
+
action: z.ZodLiteral<"open">;
|
|
5
|
+
scene_path: z.ZodString;
|
|
6
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
7
|
+
action: z.ZodLiteral<"save">;
|
|
9
8
|
scene_path: z.ZodOptional<z.ZodString>;
|
|
10
|
-
|
|
9
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
10
|
+
action: z.ZodLiteral<"create">;
|
|
11
|
+
scene_path: z.ZodString;
|
|
12
|
+
root_type: z.ZodString;
|
|
11
13
|
root_name: z.ZodOptional<z.ZodString>;
|
|
12
|
-
}, z.core.$strip>>;
|
|
14
|
+
}, z.core.$strip>], "action">>;
|
|
13
15
|
export declare const sceneTools: AnyToolDefinition[];
|
|
14
16
|
//# sourceMappingURL=scene.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/tools/scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../src/tools/scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAwB1D,eAAO,MAAM,KAAK;;;;;;;;;;;8BA6BhB,CAAC;AAEH,eAAO,MAAM,UAAU,EAAc,iBAAiB,EAAE,CAAC"}
|