@keeveeg/godot-mcp 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +1 -1
- package/server/dist/config.js +1 -1
- package/server/dist/godot-bridge.d.ts.map +1 -1
- package/server/dist/godot-bridge.js +264 -261
- package/server/dist/godot-bridge.js.map +1 -1
- package/server/dist/index.js +46 -45
- package/server/dist/server.d.ts.map +1 -1
- package/server/dist/server.js +25 -23
- package/server/dist/server.js.map +1 -1
- package/server/dist/tools/addon_management.d.ts.map +1 -1
- package/server/dist/tools/addon_management.js +37 -57
- package/server/dist/tools/addon_management.js.map +1 -1
- package/server/dist/tools/analysis.d.ts.map +1 -1
- package/server/dist/tools/analysis.js +21 -37
- package/server/dist/tools/analysis.js.map +1 -1
- package/server/dist/tools/animation.d.ts.map +1 -1
- package/server/dist/tools/animation.js +95 -135
- package/server/dist/tools/animation.js.map +1 -1
- package/server/dist/tools/audio.d.ts.map +1 -1
- package/server/dist/tools/audio.js +81 -109
- package/server/dist/tools/audio.js.map +1 -1
- package/server/dist/tools/audio_config.d.ts.map +1 -1
- package/server/dist/tools/audio_config.js +50 -76
- package/server/dist/tools/audio_config.js.map +1 -1
- package/server/dist/tools/batch.d.ts.map +1 -1
- package/server/dist/tools/batch.js +57 -89
- package/server/dist/tools/batch.js.map +1 -1
- package/server/dist/tools/build_config.d.ts.map +1 -1
- package/server/dist/tools/build_config.js +59 -91
- package/server/dist/tools/build_config.js.map +1 -1
- package/server/dist/tools/debug_config.d.ts.map +1 -1
- package/server/dist/tools/debug_config.js +46 -70
- package/server/dist/tools/debug_config.js.map +1 -1
- package/server/dist/tools/debugging.d.ts.map +1 -1
- package/server/dist/tools/debugging.js +51 -83
- package/server/dist/tools/debugging.js.map +1 -1
- package/server/dist/tools/editor.d.ts.map +1 -1
- package/server/dist/tools/editor.js +54 -90
- package/server/dist/tools/editor.js.map +1 -1
- package/server/dist/tools/editor_config.d.ts.map +1 -1
- package/server/dist/tools/editor_config.js +53 -85
- package/server/dist/tools/editor_config.js.map +1 -1
- package/server/dist/tools/export.d.ts.map +1 -1
- package/server/dist/tools/export.js +46 -74
- package/server/dist/tools/export.js.map +1 -1
- package/server/dist/tools/gameplay_automation.d.ts.map +1 -1
- package/server/dist/tools/gameplay_automation.js +70 -102
- package/server/dist/tools/gameplay_automation.js.map +1 -1
- package/server/dist/tools/index.js +42 -42
- package/server/dist/tools/input.d.ts.map +1 -1
- package/server/dist/tools/input.js +68 -100
- package/server/dist/tools/input.js.map +1 -1
- package/server/dist/tools/memory_profiling.d.ts.map +1 -1
- package/server/dist/tools/memory_profiling.js +31 -51
- package/server/dist/tools/memory_profiling.js.map +1 -1
- package/server/dist/tools/navigation.d.ts.map +1 -1
- package/server/dist/tools/navigation.js +86 -126
- package/server/dist/tools/navigation.js.map +1 -1
- package/server/dist/tools/node.d.ts.map +1 -1
- package/server/dist/tools/node.js +134 -202
- package/server/dist/tools/node.js.map +1 -1
- package/server/dist/tools/node_config.d.ts.map +1 -1
- package/server/dist/tools/node_config.js +58 -90
- package/server/dist/tools/node_config.js.map +1 -1
- package/server/dist/tools/particles.d.ts.map +1 -1
- package/server/dist/tools/particles.js +75 -111
- package/server/dist/tools/particles.js.map +1 -1
- package/server/dist/tools/physics.d.ts.map +1 -1
- package/server/dist/tools/physics.js +67 -99
- package/server/dist/tools/physics.js.map +1 -1
- package/server/dist/tools/physics_config.d.ts.map +1 -1
- package/server/dist/tools/physics_config.js +56 -88
- package/server/dist/tools/physics_config.js.map +1 -1
- package/server/dist/tools/platform_export.d.ts.map +1 -1
- package/server/dist/tools/platform_export.js +45 -69
- package/server/dist/tools/platform_export.js.map +1 -1
- package/server/dist/tools/platform_specific.d.ts.map +1 -1
- package/server/dist/tools/platform_specific.js +61 -85
- package/server/dist/tools/platform_specific.js.map +1 -1
- package/server/dist/tools/profiling.d.ts.map +1 -1
- package/server/dist/tools/profiling.js +13 -21
- package/server/dist/tools/profiling.js.map +1 -1
- package/server/dist/tools/project.d.ts.map +1 -1
- package/server/dist/tools/project.js +51 -79
- package/server/dist/tools/project.js.map +1 -1
- package/server/dist/tools/project_config.d.ts.map +1 -1
- package/server/dist/tools/project_config.js +88 -136
- package/server/dist/tools/project_config.js.map +1 -1
- package/server/dist/tools/project_creation.d.ts.map +1 -1
- package/server/dist/tools/project_creation.js +96 -140
- package/server/dist/tools/project_creation.js.map +1 -1
- package/server/dist/tools/rendering_config.d.ts.map +1 -1
- package/server/dist/tools/rendering_config.js +67 -103
- package/server/dist/tools/rendering_config.js.map +1 -1
- package/server/dist/tools/resource.js +77 -117
- package/server/dist/tools/resource_config.d.ts.map +1 -1
- package/server/dist/tools/resource_config.js +45 -69
- package/server/dist/tools/resource_config.js.map +1 -1
- package/server/dist/tools/runtime.d.ts.map +1 -1
- package/server/dist/tools/runtime.js +148 -224
- package/server/dist/tools/runtime.js.map +1 -1
- package/server/dist/tools/save_load.d.ts.map +1 -1
- package/server/dist/tools/save_load.js +36 -56
- package/server/dist/tools/save_load.js.map +1 -1
- package/server/dist/tools/scene.d.ts.map +1 -1
- package/server/dist/tools/scene.js +78 -122
- package/server/dist/tools/scene.js.map +1 -1
- package/server/dist/tools/scene3d.d.ts.map +1 -1
- package/server/dist/tools/scene3d.js +51 -75
- package/server/dist/tools/scene3d.js.map +1 -1
- package/server/dist/tools/scene_config.d.ts.map +1 -1
- package/server/dist/tools/scene_config.js +48 -72
- package/server/dist/tools/scene_config.js.map +1 -1
- package/server/dist/tools/script.js +68 -104
- package/server/dist/tools/script.js.map +1 -1
- package/server/dist/tools/shader.d.ts.map +1 -1
- package/server/dist/tools/shader.js +75 -111
- package/server/dist/tools/shader.js.map +1 -1
- package/server/dist/tools/shared-types.d.ts +2 -2
- package/server/dist/tools/shared-types.d.ts.map +1 -1
- package/server/dist/tools/shared-types.js +38 -36
- package/server/dist/tools/shared-types.js.map +1 -1
- package/server/dist/tools/testing.d.ts.map +1 -1
- package/server/dist/tools/testing.js +47 -69
- package/server/dist/tools/testing.js.map +1 -1
- package/server/dist/tools/theme.js +62 -90
- package/server/dist/tools/tilemap.js +58 -82
- package/server/dist/tools/visual_testing.d.ts.map +1 -1
- package/server/dist/tools/visual_testing.js +50 -74
- package/server/dist/tools/visual_testing.js.map +1 -1
- package/server/dist/types.js +15 -15
- package/server/dist/tools/accessibility.d.ts +0 -7
- package/server/dist/tools/accessibility.d.ts.map +0 -1
- package/server/dist/tools/accessibility.js +0 -71
- package/server/dist/tools/accessibility.js.map +0 -1
- package/server/dist/tools/analytics.d.ts +0 -7
- package/server/dist/tools/analytics.d.ts.map +0 -1
- package/server/dist/tools/analytics.js +0 -76
- package/server/dist/tools/analytics.js.map +0 -1
- package/server/dist/tools/asset_pipeline.d.ts +0 -7
- package/server/dist/tools/asset_pipeline.d.ts.map +0 -1
- package/server/dist/tools/asset_pipeline.js +0 -102
- package/server/dist/tools/asset_pipeline.js.map +0 -1
- package/server/dist/tools/asset_scaffolding.d.ts +0 -7
- package/server/dist/tools/asset_scaffolding.d.ts.map +0 -1
- package/server/dist/tools/asset_scaffolding.js +0 -113
- package/server/dist/tools/asset_scaffolding.js.map +0 -1
- package/server/dist/tools/cicd_pipeline.d.ts +0 -7
- package/server/dist/tools/cicd_pipeline.d.ts.map +0 -1
- package/server/dist/tools/cicd_pipeline.js +0 -125
- package/server/dist/tools/cicd_pipeline.js.map +0 -1
- package/server/dist/tools/cloud_services.d.ts +0 -7
- package/server/dist/tools/cloud_services.d.ts.map +0 -1
- package/server/dist/tools/cloud_services.js +0 -97
- package/server/dist/tools/cloud_services.js.map +0 -1
- package/server/dist/tools/code_generation.d.ts +0 -7
- package/server/dist/tools/code_generation.d.ts.map +0 -1
- package/server/dist/tools/code_generation.js +0 -79
- package/server/dist/tools/code_generation.js.map +0 -1
- package/server/dist/tools/code_quality.d.ts +0 -7
- package/server/dist/tools/code_quality.d.ts.map +0 -1
- package/server/dist/tools/code_quality.js +0 -98
- package/server/dist/tools/code_quality.js.map +0 -1
- package/server/dist/tools/collaboration.d.ts +0 -7
- package/server/dist/tools/collaboration.d.ts.map +0 -1
- package/server/dist/tools/collaboration.js +0 -73
- package/server/dist/tools/collaboration.js.map +0 -1
- package/server/dist/tools/documentation_tools.d.ts +0 -7
- package/server/dist/tools/documentation_tools.d.ts.map +0 -1
- package/server/dist/tools/documentation_tools.js +0 -89
- package/server/dist/tools/documentation_tools.js.map +0 -1
- package/server/dist/tools/game_template.d.ts +0 -7
- package/server/dist/tools/game_template.d.ts.map +0 -1
- package/server/dist/tools/game_template.js +0 -112
- package/server/dist/tools/game_template.js.map +0 -1
- package/server/dist/tools/git_integration.d.ts +0 -7
- package/server/dist/tools/git_integration.d.ts.map +0 -1
- package/server/dist/tools/git_integration.js +0 -75
- package/server/dist/tools/git_integration.js.map +0 -1
- package/server/dist/tools/headless_testing.d.ts +0 -7
- package/server/dist/tools/headless_testing.d.ts.map +0 -1
- package/server/dist/tools/headless_testing.js +0 -65
- package/server/dist/tools/headless_testing.js.map +0 -1
- package/server/dist/tools/iap_monetization.d.ts +0 -7
- package/server/dist/tools/iap_monetization.d.ts.map +0 -1
- package/server/dist/tools/iap_monetization.js +0 -70
- package/server/dist/tools/iap_monetization.js.map +0 -1
- package/server/dist/tools/localization.d.ts +0 -7
- package/server/dist/tools/localization.d.ts.map +0 -1
- package/server/dist/tools/localization.js +0 -97
- package/server/dist/tools/localization.js.map +0 -1
- package/server/dist/tools/marketing.d.ts +0 -7
- package/server/dist/tools/marketing.d.ts.map +0 -1
- package/server/dist/tools/marketing.js +0 -87
- package/server/dist/tools/marketing.js.map +0 -1
- package/server/dist/tools/mod_support.d.ts +0 -7
- package/server/dist/tools/mod_support.d.ts.map +0 -1
- package/server/dist/tools/mod_support.js +0 -93
- package/server/dist/tools/mod_support.js.map +0 -1
- package/server/dist/tools/networking.d.ts +0 -7
- package/server/dist/tools/networking.d.ts.map +0 -1
- package/server/dist/tools/networking.js +0 -94
- package/server/dist/tools/networking.js.map +0 -1
- package/server/dist/tools/performance_optimization.d.ts +0 -7
- package/server/dist/tools/performance_optimization.d.ts.map +0 -1
- package/server/dist/tools/performance_optimization.js +0 -75
- package/server/dist/tools/performance_optimization.js.map +0 -1
- package/server/dist/tools/scene_scaffolding.d.ts +0 -7
- package/server/dist/tools/scene_scaffolding.d.ts.map +0 -1
- package/server/dist/tools/scene_scaffolding.js +0 -110
- package/server/dist/tools/scene_scaffolding.js.map +0 -1
- package/server/dist/tools/script_scaffolding.d.ts +0 -7
- package/server/dist/tools/script_scaffolding.d.ts.map +0 -1
- package/server/dist/tools/script_scaffolding.js +0 -115
- package/server/dist/tools/script_scaffolding.js.map +0 -1
- package/server/dist/tools/security.d.ts +0 -7
- package/server/dist/tools/security.d.ts.map +0 -1
- package/server/dist/tools/security.js +0 -73
- package/server/dist/tools/security.js.map +0 -1
- package/server/dist/tools/version_control_advanced.d.ts +0 -7
- package/server/dist/tools/version_control_advanced.d.ts.map +0 -1
- package/server/dist/tools/version_control_advanced.js +0 -100
- package/server/dist/tools/version_control_advanced.js.map +0 -1
|
@@ -4,75 +4,53 @@
|
|
|
4
4
|
import { callGodot } from '../server.js';
|
|
5
5
|
import { z, NodePath, PropertyName, PropertyValue } from './shared-types.js';
|
|
6
6
|
export function registerTestingTools(server, bridge) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
.array(
|
|
16
|
-
z
|
|
17
|
-
.object({
|
|
7
|
+
// 1. run_test_scenario
|
|
8
|
+
server.registerTool('run_test_scenario', {
|
|
9
|
+
description: 'Run a multi-step test scenario against the running game',
|
|
10
|
+
inputSchema: {
|
|
11
|
+
name: z.string().optional().default('Unnamed Scenario').describe('Scenario name (default: "Unnamed Scenario")'),
|
|
12
|
+
steps: z
|
|
13
|
+
.array(z
|
|
14
|
+
.object({
|
|
18
15
|
type: z.enum(['add_node', 'delete_node', 'set_property', 'assert_node_state', 'connect_signal', 'wait']).describe('Step type'),
|
|
19
16
|
params: z.record(z.unknown()).optional().describe('Parameters for this step'),
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
'
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
async (args) => callGodot(bridge, 'testing/
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
description: 'Run a stress test on the game (spawn entities, measure performance)',
|
|
59
|
-
inputSchema: {
|
|
60
|
-
type: z.string().optional().default('Node2D').describe('Node type to spawn (default: Node2D)'),
|
|
61
|
-
count: z.number().int().optional().default(100).describe('Number of entities to spawn (default: 100)'),
|
|
62
|
-
parent_path: z.string().optional().describe('Parent node path for spawned entities'),
|
|
63
|
-
properties: z.record(z.unknown()).optional().describe('Properties to set on each spawned entity'),
|
|
64
|
-
},
|
|
65
|
-
},
|
|
66
|
-
async (args) => callGodot(bridge, 'testing/stress_test', args),
|
|
67
|
-
);
|
|
68
|
-
// 5. get_test_report
|
|
69
|
-
server.registerTool(
|
|
70
|
-
'get_test_report',
|
|
71
|
-
{
|
|
72
|
-
description: 'Get aggregated results of all test runs in this session',
|
|
73
|
-
inputSchema: {},
|
|
74
|
-
},
|
|
75
|
-
async () => callGodot(bridge, 'testing/get_report'),
|
|
76
|
-
);
|
|
17
|
+
})
|
|
18
|
+
.catchall(z.unknown()))
|
|
19
|
+
.describe('Ordered test steps'),
|
|
20
|
+
},
|
|
21
|
+
}, async (args) => callGodot(bridge, 'testing/run_scenario', args));
|
|
22
|
+
// 2. assert_node_state
|
|
23
|
+
server.registerTool('assert_node_state', {
|
|
24
|
+
description: 'Assert that a node property matches an expected value',
|
|
25
|
+
inputSchema: {
|
|
26
|
+
path: NodePath.describe('Node path in the running game'),
|
|
27
|
+
property: PropertyName.describe('Property name to check'),
|
|
28
|
+
expected: PropertyValue.describe('Expected value'),
|
|
29
|
+
operator: z.string().optional().default('==').describe("Comparison operator: ==, !=, >, <, >=, <=, contains (default: '==')"),
|
|
30
|
+
},
|
|
31
|
+
}, async (args) => callGodot(bridge, 'testing/assert_state', args));
|
|
32
|
+
// 3. assert_screen_text
|
|
33
|
+
server.registerTool('assert_screen_text', {
|
|
34
|
+
description: 'Assert that specific text appears on screen (OCR or UI element check)',
|
|
35
|
+
inputSchema: {
|
|
36
|
+
text: z.string().describe('Text that should appear on screen'),
|
|
37
|
+
should_exist: z.boolean().optional().default(true).describe('Whether text should be present (true) or absent (false) (default: true)'),
|
|
38
|
+
},
|
|
39
|
+
}, async (args) => callGodot(bridge, 'testing/assert_screen_text', args));
|
|
40
|
+
// 4. run_stress_test
|
|
41
|
+
server.registerTool('run_stress_test', {
|
|
42
|
+
description: 'Run a stress test on the game (spawn entities, measure performance)',
|
|
43
|
+
inputSchema: {
|
|
44
|
+
type: z.string().optional().default('Node2D').describe('Node type to spawn (default: Node2D)'),
|
|
45
|
+
count: z.number().int().optional().default(100).describe('Number of entities to spawn (default: 100)'),
|
|
46
|
+
parent_path: z.string().optional().describe('Parent node path for spawned entities'),
|
|
47
|
+
properties: z.record(z.unknown()).optional().describe('Properties to set on each spawned entity'),
|
|
48
|
+
},
|
|
49
|
+
}, async (args) => callGodot(bridge, 'testing/stress_test', args));
|
|
50
|
+
// 5. get_test_report
|
|
51
|
+
server.registerTool('get_test_report', {
|
|
52
|
+
description: 'Get aggregated results of all test runs in this session',
|
|
53
|
+
inputSchema: {},
|
|
54
|
+
}, async () => callGodot(bridge, 'testing/get_report'));
|
|
77
55
|
}
|
|
78
|
-
//# sourceMappingURL=testing.js.map
|
|
56
|
+
//# sourceMappingURL=testing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/tools/testing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE7E,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAmB;IACzE,uBAAuB;IACvB,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EAAE,yDAAyD;QACtE,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC;YAC/G,KAAK,EAAE,CAAC;iBACL,KAAK,CACJ,CAAC;iBACE,MAAM,CAAC;gBACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAC9H,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;aAC9E,CAAC;iBACD,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CACzB;iBACA,QAAQ,CAAC,oBAAoB,CAAC;SAClC;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAA+B,CAAC,CAC3F,CAAC;IAEF,uBAAuB;IACvB,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EAAE,uDAAuD;QACpE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YACxD,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACzD,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAClD,QAAQ,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/tools/testing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE7E,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAmB;IACzE,uBAAuB;IACvB,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EAAE,yDAAyD;QACtE,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,QAAQ,CAAC,6CAA6C,CAAC;YAC/G,KAAK,EAAE,CAAC;iBACL,KAAK,CACJ,CAAC;iBACE,MAAM,CAAC;gBACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAC9H,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;aAC9E,CAAC;iBACD,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CACzB;iBACA,QAAQ,CAAC,oBAAoB,CAAC;SAClC;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAA+B,CAAC,CAC3F,CAAC;IAEF,uBAAuB;IACvB,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EAAE,uDAAuD;QACpE,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,+BAA+B,CAAC;YACxD,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACzD,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAClD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,qEAAqE,CAAC;SAC9H;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,sBAAsB,EAAE,IAA+B,CAAC,CAC3F,CAAC;IAEF,wBAAwB;IACxB,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAC9D,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,yEAAyE,CAAC;SACvI;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,4BAA4B,EAAE,IAA+B,CAAC,CACjG,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,qEAAqE;QAClF,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;YAC9F,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;YACtG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;YACpF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC;SAClG;KACF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,qBAAqB,EAAE,IAA+B,CAAC,CAC1F,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EAAE,yDAAyD;QACtE,WAAW,EAAE,EAAE;KAChB,EACD,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,oBAAoB,CAAC,CACpD,CAAC;AACJ,CAAC"}
|
|
@@ -4,94 +4,66 @@
|
|
|
4
4
|
import { callGodot } from '../server.js';
|
|
5
5
|
import { z, ResourcePath, Properties } from './shared-types.js';
|
|
6
6
|
export function registerThemeTools(server, bridge) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
'
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
{
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
},
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
},
|
|
69
|
-
async (args) => callGodot(bridge, 'theme/set_font_size', args),
|
|
70
|
-
);
|
|
71
|
-
// 6. set_theme_stylebox
|
|
72
|
-
server.registerTool(
|
|
73
|
-
'set_theme_stylebox',
|
|
74
|
-
{
|
|
75
|
-
description: 'Set a StyleBox in a theme',
|
|
76
|
-
inputSchema: {
|
|
77
|
-
path: ResourcePath.describe('Theme resource path'),
|
|
78
|
-
theme_type: z.string().describe('Control type'),
|
|
79
|
-
name: z.string().describe("StyleBox name (e.g. 'normal', 'hover', 'pressed')"),
|
|
80
|
-
properties: Properties.describe('StyleBox properties (e.g. bg_color, border_width)'),
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
async (args) => callGodot(bridge, 'theme/set_stylebox', args),
|
|
84
|
-
);
|
|
85
|
-
// 7. get_theme_info
|
|
86
|
-
server.registerTool(
|
|
87
|
-
'get_theme_info',
|
|
88
|
-
{
|
|
89
|
-
description: 'Get information about a theme including all its overrides',
|
|
90
|
-
inputSchema: {
|
|
91
|
-
path: ResourcePath.describe('Theme resource path'),
|
|
92
|
-
},
|
|
93
|
-
},
|
|
94
|
-
async (args) => callGodot(bridge, 'theme/get_info', args),
|
|
95
|
-
);
|
|
7
|
+
// 1. create_theme
|
|
8
|
+
server.registerTool('create_theme', {
|
|
9
|
+
description: 'Create a new Theme resource',
|
|
10
|
+
inputSchema: {
|
|
11
|
+
path: ResourcePath.describe("File path to save the theme (e.g. 'res://themes/dark.tres')"),
|
|
12
|
+
},
|
|
13
|
+
}, async (args) => callGodot(bridge, 'theme/create', args));
|
|
14
|
+
// 2. delete_theme
|
|
15
|
+
server.registerTool('delete_theme', {
|
|
16
|
+
description: 'Delete a theme resource file from the project',
|
|
17
|
+
inputSchema: {
|
|
18
|
+
path: z.string().describe('Theme file path to delete (e.g. res://themes/my_theme.tres)'),
|
|
19
|
+
},
|
|
20
|
+
}, async (args) => callGodot(bridge, 'theme/delete', args));
|
|
21
|
+
// 3. set_theme_color
|
|
22
|
+
server.registerTool('set_theme_color', {
|
|
23
|
+
description: 'Set a color in a theme for a specific control type',
|
|
24
|
+
inputSchema: {
|
|
25
|
+
path: ResourcePath.describe('Theme resource path'),
|
|
26
|
+
theme_type: z.string().describe("Control type (e.g. 'Button', 'Label', 'Panel')"),
|
|
27
|
+
name: z.string().describe("Color name (e.g. 'font_color', 'font_hover_color')"),
|
|
28
|
+
color: z.string().describe("Color value as hex (e.g. '#FF0000') or named color"),
|
|
29
|
+
},
|
|
30
|
+
}, async (args) => callGodot(bridge, 'theme/set_color', args));
|
|
31
|
+
// 4. set_theme_constant
|
|
32
|
+
server.registerTool('set_theme_constant', {
|
|
33
|
+
description: 'Set a constant value in a theme',
|
|
34
|
+
inputSchema: {
|
|
35
|
+
path: ResourcePath.describe('Theme resource path'),
|
|
36
|
+
theme_type: z.string().describe('Control type'),
|
|
37
|
+
name: z.string().describe("Constant name (e.g. 'hseparation', 'vseparation')"),
|
|
38
|
+
value: z.number().int().describe('Constant integer value'),
|
|
39
|
+
},
|
|
40
|
+
}, async (args) => callGodot(bridge, 'theme/set_constant', args));
|
|
41
|
+
// 5. set_theme_font_size
|
|
42
|
+
server.registerTool('set_theme_font_size', {
|
|
43
|
+
description: 'Set a font size in a theme',
|
|
44
|
+
inputSchema: {
|
|
45
|
+
path: ResourcePath.describe('Theme resource path'),
|
|
46
|
+
theme_type: z.string().describe('Control type'),
|
|
47
|
+
name: z.string().describe("Size name (e.g. 'font_size')"),
|
|
48
|
+
size: z.number().int().positive().describe('Font size in pixels'),
|
|
49
|
+
},
|
|
50
|
+
}, async (args) => callGodot(bridge, 'theme/set_font_size', args));
|
|
51
|
+
// 6. set_theme_stylebox
|
|
52
|
+
server.registerTool('set_theme_stylebox', {
|
|
53
|
+
description: 'Set a StyleBox in a theme',
|
|
54
|
+
inputSchema: {
|
|
55
|
+
path: ResourcePath.describe('Theme resource path'),
|
|
56
|
+
theme_type: z.string().describe('Control type'),
|
|
57
|
+
name: z.string().describe("StyleBox name (e.g. 'normal', 'hover', 'pressed')"),
|
|
58
|
+
properties: Properties.describe('StyleBox properties (e.g. bg_color, border_width)'),
|
|
59
|
+
},
|
|
60
|
+
}, async (args) => callGodot(bridge, 'theme/set_stylebox', args));
|
|
61
|
+
// 7. get_theme_info
|
|
62
|
+
server.registerTool('get_theme_info', {
|
|
63
|
+
description: 'Get information about a theme including all its overrides',
|
|
64
|
+
inputSchema: {
|
|
65
|
+
path: ResourcePath.describe('Theme resource path'),
|
|
66
|
+
},
|
|
67
|
+
}, async (args) => callGodot(bridge, 'theme/get_info', args));
|
|
96
68
|
}
|
|
97
|
-
//# sourceMappingURL=theme.js.map
|
|
69
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -4,86 +4,62 @@
|
|
|
4
4
|
import { callGodot } from '../server.js';
|
|
5
5
|
import { z, NodePath, Coord2D } from './shared-types.js';
|
|
6
6
|
export function registerTilemapTools(server, bridge) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
{
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
},
|
|
64
|
-
async (args) => callGodot(bridge, 'tilemap/clear', args),
|
|
65
|
-
);
|
|
66
|
-
// 5. tilemap_get_info
|
|
67
|
-
server.registerTool(
|
|
68
|
-
'tilemap_get_info',
|
|
69
|
-
{
|
|
70
|
-
description: 'Get TileMap configuration and TileSet information',
|
|
71
|
-
inputSchema: {
|
|
72
|
-
path: NodePath.describe('TileMap node path'),
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
async (args) => callGodot(bridge, 'tilemap/get_info', args),
|
|
76
|
-
);
|
|
77
|
-
// 6. tilemap_get_used_cells
|
|
78
|
-
server.registerTool(
|
|
79
|
-
'tilemap_get_used_cells',
|
|
80
|
-
{
|
|
81
|
-
description: 'Get all used cell coordinates in a TileMap',
|
|
82
|
-
inputSchema: {
|
|
83
|
-
path: NodePath.describe('TileMap node path'),
|
|
84
|
-
},
|
|
85
|
-
},
|
|
86
|
-
async (args) => callGodot(bridge, 'tilemap/get_used_cells', args),
|
|
87
|
-
);
|
|
7
|
+
// 1. tilemap_set_cell
|
|
8
|
+
server.registerTool('tilemap_set_cell', {
|
|
9
|
+
description: 'Set a single cell in a TileMap',
|
|
10
|
+
inputSchema: {
|
|
11
|
+
path: NodePath.describe('TileMap node path'),
|
|
12
|
+
coords: Coord2D,
|
|
13
|
+
source_id: z.number().int().optional().describe('TileSet source ID'),
|
|
14
|
+
atlas_coords: Coord2D.optional().describe('Atlas coordinates [x, y]'),
|
|
15
|
+
alternative_tile: z.number().int().optional().describe('Alternative tile ID'),
|
|
16
|
+
},
|
|
17
|
+
}, async (args) => callGodot(bridge, 'tilemap/set_cell', args));
|
|
18
|
+
// 2. tilemap_fill_rect
|
|
19
|
+
server.registerTool('tilemap_fill_rect', {
|
|
20
|
+
description: 'Fill a rectangular area of a TileMap with a tile',
|
|
21
|
+
inputSchema: {
|
|
22
|
+
path: NodePath.describe('TileMap node path'),
|
|
23
|
+
rect: z
|
|
24
|
+
.object({
|
|
25
|
+
x: z.number().int(),
|
|
26
|
+
y: z.number().int(),
|
|
27
|
+
w: z.number().int().positive(),
|
|
28
|
+
h: z.number().int().positive(),
|
|
29
|
+
})
|
|
30
|
+
.describe('Rectangle to fill'),
|
|
31
|
+
source_id: z.number().int().optional().describe('TileSet source ID'),
|
|
32
|
+
atlas_coords: Coord2D.optional().describe('Atlas coordinates [x, y]'),
|
|
33
|
+
},
|
|
34
|
+
}, async (args) => callGodot(bridge, 'tilemap/fill_rect', args));
|
|
35
|
+
// 3. tilemap_get_cell
|
|
36
|
+
server.registerTool('tilemap_get_cell', {
|
|
37
|
+
description: 'Get the tile data at a specific cell',
|
|
38
|
+
inputSchema: {
|
|
39
|
+
path: NodePath.describe('TileMap node path'),
|
|
40
|
+
coords: Coord2D,
|
|
41
|
+
},
|
|
42
|
+
}, async (args) => callGodot(bridge, 'tilemap/get_cell', args));
|
|
43
|
+
// 4. tilemap_clear
|
|
44
|
+
server.registerTool('tilemap_clear', {
|
|
45
|
+
description: 'Clear cells in a TileMap area or the entire map',
|
|
46
|
+
inputSchema: {
|
|
47
|
+
path: NodePath.describe('TileMap node path'),
|
|
48
|
+
},
|
|
49
|
+
}, async (args) => callGodot(bridge, 'tilemap/clear', args));
|
|
50
|
+
// 5. tilemap_get_info
|
|
51
|
+
server.registerTool('tilemap_get_info', {
|
|
52
|
+
description: 'Get TileMap configuration and TileSet information',
|
|
53
|
+
inputSchema: {
|
|
54
|
+
path: NodePath.describe('TileMap node path'),
|
|
55
|
+
},
|
|
56
|
+
}, async (args) => callGodot(bridge, 'tilemap/get_info', args));
|
|
57
|
+
// 6. tilemap_get_used_cells
|
|
58
|
+
server.registerTool('tilemap_get_used_cells', {
|
|
59
|
+
description: 'Get all used cell coordinates in a TileMap',
|
|
60
|
+
inputSchema: {
|
|
61
|
+
path: NodePath.describe('TileMap node path'),
|
|
62
|
+
},
|
|
63
|
+
}, async (args) => callGodot(bridge, 'tilemap/get_used_cells', args));
|
|
88
64
|
}
|
|
89
|
-
//# sourceMappingURL=tilemap.js.map
|
|
65
|
+
//# sourceMappingURL=tilemap.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visual_testing.d.ts","sourceRoot":"","sources":["../../src/tools/visual_testing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"visual_testing.d.ts","sourceRoot":"","sources":["../../src/tools/visual_testing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAItD,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CA+EvF"}
|
|
@@ -4,78 +4,54 @@
|
|
|
4
4
|
import { callGodot } from '../server.js';
|
|
5
5
|
import { z, Name, FilePath } from './shared-types.js';
|
|
6
6
|
export function registerVisualTestingTools(server, bridge) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
'
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
{
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
},
|
|
57
|
-
async (args) => callGodot(bridge, 'record_visual_regression', args),
|
|
58
|
-
);
|
|
59
|
-
// 5. get_visual_diff_report
|
|
60
|
-
server.registerTool(
|
|
61
|
-
'get_visual_diff_report',
|
|
62
|
-
{
|
|
63
|
-
description: 'Get the aggregated visual regression report from all assert_visual_match calls in this session',
|
|
64
|
-
inputSchema: {},
|
|
65
|
-
},
|
|
66
|
-
async () => callGodot(bridge, 'get_visual_diff_report'),
|
|
67
|
-
);
|
|
68
|
-
// 6. set_visual_baseline
|
|
69
|
-
server.registerTool(
|
|
70
|
-
'set_visual_baseline',
|
|
71
|
-
{
|
|
72
|
-
description: 'Set or update a visual baseline for future comparisons',
|
|
73
|
-
inputSchema: {
|
|
74
|
-
name: Name.describe('Baseline name identifier'),
|
|
75
|
-
screenshot_path: FilePath.describe('Path to the screenshot to use as baseline'),
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
async (args) => callGodot(bridge, 'set_visual_baseline', args),
|
|
79
|
-
);
|
|
7
|
+
// 1. take_screenshot_with_context
|
|
8
|
+
server.registerTool('take_screenshot_with_context', {
|
|
9
|
+
description: 'Take a screenshot with scene context metadata (node tree, properties of specified nodes)',
|
|
10
|
+
inputSchema: {
|
|
11
|
+
name: Name.describe('Name for this screenshot (used as filename, e.g. "main_menu")'),
|
|
12
|
+
include_nodes: z.array(z.string()).optional().describe('Node paths to include property data for (requires include_props=true)'),
|
|
13
|
+
include_props: z.boolean().optional().default(false).describe('Whether to include property snapshots for listed include_nodes (default: false)'),
|
|
14
|
+
},
|
|
15
|
+
}, async (args) => callGodot(bridge, 'take_screenshot_with_context', args));
|
|
16
|
+
// 2. compare_screenshots
|
|
17
|
+
server.registerTool('compare_screenshots', {
|
|
18
|
+
description: 'Compare two screenshots pixel-by-pixel and return a diff result with mismatch percentage',
|
|
19
|
+
inputSchema: {
|
|
20
|
+
baseline: FilePath.describe('Path to the baseline screenshot'),
|
|
21
|
+
current: FilePath.describe('Path to the current screenshot'),
|
|
22
|
+
threshold: z.number().min(0).max(1).optional().default(0.01).describe('Pixel difference threshold 0-1 (default: 0.01)'),
|
|
23
|
+
},
|
|
24
|
+
}, async (args) => callGodot(bridge, 'compare_screenshots', args));
|
|
25
|
+
// 3. assert_visual_match
|
|
26
|
+
server.registerTool('assert_visual_match', {
|
|
27
|
+
description: 'Assert that a screenshot matches a baseline within a threshold - pass/fail result',
|
|
28
|
+
inputSchema: {
|
|
29
|
+
name: Name.describe('Screenshot name to check — must match a name previously used with take_screenshot_with_context'),
|
|
30
|
+
baseline: FilePath.describe('Path or name of the baseline screenshot (resolves against baselines directory if not a full path)'),
|
|
31
|
+
threshold: z.number().min(0).max(1).optional().default(0.01).describe('Acceptable difference threshold (default: 0.01)'),
|
|
32
|
+
},
|
|
33
|
+
}, async (args) => callGodot(bridge, 'assert_visual_match', args));
|
|
34
|
+
// 4. record_visual_regression
|
|
35
|
+
server.registerTool('record_visual_regression', {
|
|
36
|
+
description: 'Record multiple frames over time for visual regression testing',
|
|
37
|
+
inputSchema: {
|
|
38
|
+
test_name: Name.describe('Name for this recording session'),
|
|
39
|
+
frames: z.number().int().min(1).max(100).optional().default(10).describe('Number of frames to capture (default: 10)'),
|
|
40
|
+
interval: z.number().min(0.1).max(10).optional().default(0.5).describe('Seconds between captures (default: 0.5)'),
|
|
41
|
+
},
|
|
42
|
+
}, async (args) => callGodot(bridge, 'record_visual_regression', args));
|
|
43
|
+
// 5. get_visual_diff_report
|
|
44
|
+
server.registerTool('get_visual_diff_report', {
|
|
45
|
+
description: 'Get the aggregated visual regression report from all assert_visual_match calls in this session',
|
|
46
|
+
inputSchema: {},
|
|
47
|
+
}, async () => callGodot(bridge, 'get_visual_diff_report'));
|
|
48
|
+
// 6. set_visual_baseline
|
|
49
|
+
server.registerTool('set_visual_baseline', {
|
|
50
|
+
description: 'Set or update a visual baseline for future comparisons',
|
|
51
|
+
inputSchema: {
|
|
52
|
+
name: Name.describe('Baseline name identifier'),
|
|
53
|
+
screenshot_path: FilePath.describe('Path to the screenshot to use as baseline'),
|
|
54
|
+
},
|
|
55
|
+
}, async (args) => callGodot(bridge, 'set_visual_baseline', args));
|
|
80
56
|
}
|
|
81
|
-
//# sourceMappingURL=visual_testing.js.map
|
|
57
|
+
//# sourceMappingURL=visual_testing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visual_testing.js","sourceRoot":"","sources":["../../src/tools/visual_testing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,UAAU,0BAA0B,CAAC,MAAiB,EAAE,MAAmB;IAC/E,kCAAkC;IAClC,MAAM,CAAC,YAAY,CACjB,8BAA8B,EAC9B;QACE,WAAW,
|
|
1
|
+
{"version":3,"file":"visual_testing.js","sourceRoot":"","sources":["../../src/tools/visual_testing.ts"],"names":[],"mappings":"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"}
|