@beremaran/godot-agent-loop 1.0.1 → 1.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 +59 -34
- package/addons/godot_agent_loop/README.md +26 -16
- package/addons/godot_agent_loop/plugin.cfg +3 -2
- package/addons/godot_agent_loop/plugin.gd +840 -25
- package/agent-plugin/.claude-plugin/plugin.json +1 -1
- package/agent-plugin/.codex-plugin/plugin.json +1 -1
- package/agent-plugin/.mcp.json +1 -1
- package/agent-plugin/adapter-manifest.json +3 -3
- package/agent-plugin/pi/extension.ts +1 -1
- package/agent-plugin/skills/build-godot-game/SKILL.md +26 -5
- package/agent-plugin/skills/debug-godot-game/SKILL.md +20 -7
- package/agent-plugin/skills/ship-godot-game/SKILL.md +13 -3
- package/agent-plugin/skills/verify-godot-change/SKILL.md +17 -2
- package/build/authoring-session-manager.js +24 -1
- package/build/domain-tool-registries.js +5 -1
- package/build/editor-authoring-router.js +228 -0
- package/build/editor-bridge-protocol.js +2 -1
- package/build/editor-connection.js +29 -24
- package/build/editor-mutation-guard.js +3 -1
- package/build/editor-plugin-installer.js +2 -1
- package/build/editor-session-registry.js +392 -0
- package/build/editor-sync-queue.js +135 -0
- package/build/index.js +208 -29
- package/build/lifecycle-trace.js +80 -0
- package/build/scripts/mcp_editor_plugin.gd +840 -25
- package/build/scripts/mcp_interaction_server.gd +76 -2
- package/build/scripts/mcp_runtime/core_domain.gd +2 -1
- package/build/scripts/mcp_runtime/system_domain.gd +2 -0
- package/build/server-instructions.js +5 -5
- package/build/session-timing.js +17 -1
- package/build/tool-definitions.js +99 -6
- package/build/tool-handlers/game-tool-handlers.js +21 -4
- package/build/tool-handlers/lifecycle-tool-handlers.js +361 -27
- package/build/tool-handlers/project-handler-services.js +45 -6
- package/build/tool-handlers/project-tool-handlers.js +4 -4
- package/build/tool-manifest.js +29 -1
- package/build/tool-mutation-policy.js +1 -0
- package/build/tool-surface.js +4 -4
- package/build/utils.js +2 -2
- package/package.json +4 -3
- package/product.json +7 -5
package/build/tool-surface.js
CHANGED
|
@@ -7,14 +7,14 @@ export const TOOL_SURFACE_ENV = 'GODOT_MCP_TOOL_SURFACE';
|
|
|
7
7
|
*/
|
|
8
8
|
export const CORE_TOOL_NAMES = new Set([
|
|
9
9
|
'godot_tools',
|
|
10
|
-
'launch_editor', 'editor_control', 'run_project', 'verify_project', 'run_project_tests',
|
|
11
|
-
'get_debug_output', 'stop_project', 'get_godot_version', '
|
|
10
|
+
'launch_editor', 'editor_session', 'editor_control', 'editor_transaction', 'run_project', 'verify_project', 'game_wait_until', 'game_scenario', 'run_project_tests',
|
|
11
|
+
'get_debug_output', 'stop_project', 'get_godot_version', 'get_project_info',
|
|
12
12
|
'create_project', 'create_scene', 'add_node', 'read_scene', 'modify_scene_node',
|
|
13
13
|
'remove_scene_node', 'save_scene', 'create_script', 'attach_script', 'read_file',
|
|
14
14
|
'write_file', 'validate_script', 'validate_scripts', 'read_project_settings',
|
|
15
|
-
'modify_project_settings', '
|
|
15
|
+
'modify_project_settings', 'manage_input_map', 'set_main_scene',
|
|
16
16
|
'game_get_scene_tree', 'game_get_ui', 'game_screenshot', 'game_get_node_info',
|
|
17
|
-
'game_get_errors', 'game_get_logs', '
|
|
17
|
+
'game_get_errors', 'game_get_logs', 'game_click', 'game_key_press',
|
|
18
18
|
'game_key_release',
|
|
19
19
|
]);
|
|
20
20
|
export const TOOL_SURFACE_BUDGETS = {
|
package/build/utils.js
CHANGED
|
@@ -211,7 +211,7 @@ export function collectGdPaths(outputs) {
|
|
|
211
211
|
}
|
|
212
212
|
return result;
|
|
213
213
|
}
|
|
214
|
-
export const DEFAULT_GODOT_NET_SDK_VERSION = '4.
|
|
214
|
+
export const DEFAULT_GODOT_NET_SDK_VERSION = '4.7.0';
|
|
215
215
|
export const DEFAULT_DOTNET_TARGET_FRAMEWORK = 'net8.0';
|
|
216
216
|
export function toDotnetIdentifier(name) {
|
|
217
217
|
const cleaned = (name || '').replace(/[^A-Za-z0-9_]/g, '_');
|
|
@@ -228,7 +228,7 @@ export function toDotnetNamespace(name) {
|
|
|
228
228
|
export function isValidCsharpIdentifier(name) {
|
|
229
229
|
return /^[A-Za-z_][A-Za-z0-9_]*$/.test(name);
|
|
230
230
|
}
|
|
231
|
-
export function generateGodotProjectFeatures(isDotnet, version = '4.
|
|
231
|
+
export function generateGodotProjectFeatures(isDotnet, version = '4.7') {
|
|
232
232
|
return isDotnet
|
|
233
233
|
? `PackedStringArray("${version}", "C#")`
|
|
234
234
|
: `PackedStringArray("${version}")`;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beremaran/godot-agent-loop",
|
|
3
|
-
"version": "1.0
|
|
4
|
-
"description": "MCP automation loop with
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "MCP automation loop with 171 tested tools for Godot 4",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"godot",
|
|
7
7
|
"mcp",
|
|
@@ -57,8 +57,9 @@
|
|
|
57
57
|
"watch": "tsc --watch",
|
|
58
58
|
"test": "vitest run",
|
|
59
59
|
"test:watch": "vitest",
|
|
60
|
-
"test:godot": "npm run test:godot:typecheck && npm run test:godot:validate-script && npm run test:godot:operations && npm run test:godot:runtime && npm run test:godot:launch-demo",
|
|
60
|
+
"test:godot": "npm run test:godot:typecheck && npm run test:godot:editor-bridge && npm run test:godot:validate-script && npm run test:godot:operations && npm run test:godot:runtime && npm run test:godot:launch-demo",
|
|
61
61
|
"test:godot:typecheck": "tests/godot/run-typecheck.sh",
|
|
62
|
+
"test:godot:editor-bridge": "tests/godot/run-editor-bridge-tests.sh",
|
|
62
63
|
"test:godot:validate-script": "tests/godot/run-validate-script.sh",
|
|
63
64
|
"test:godot:operations": "tests/godot/run-headless-operations.sh",
|
|
64
65
|
"test:godot:runtime": "tests/godot/run-integration-tests.sh",
|
package/product.json
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"name": "Godot Agent Loop",
|
|
5
5
|
"tagline": "Build it. Play it. Prove it.",
|
|
6
6
|
"category": "An MCP automation loop for Godot 4",
|
|
7
|
-
"description": "MCP automation loop with
|
|
8
|
-
"version": "1.0
|
|
7
|
+
"description": "MCP automation loop with 171 tested tools for Godot 4",
|
|
8
|
+
"version": "1.1.0",
|
|
9
9
|
"repository": {
|
|
10
10
|
"owner": "beremaran",
|
|
11
11
|
"name": "godot-agent-loop",
|
|
@@ -30,9 +30,10 @@
|
|
|
30
30
|
"directory": "addons/godot_agent_loop",
|
|
31
31
|
"name": "Godot Agent Loop Bridge",
|
|
32
32
|
"category": "Addons/Tools",
|
|
33
|
-
"minimumGodotVersion": "4.
|
|
33
|
+
"minimumGodotVersion": "4.7",
|
|
34
34
|
"primaryGodotVersion": "4.7",
|
|
35
|
-
"
|
|
35
|
+
"version": "1.1.0",
|
|
36
|
+
"protocolVersion": "2",
|
|
36
37
|
"license": "MIT",
|
|
37
38
|
"description": "Godot Agent Loop Bridge is an authenticated editor companion that shows live agent activity and compatibility status, provides setup help, and gives you a human Pause/Resume control.",
|
|
38
39
|
"icon": "assets/previews/assetlib-icon.png",
|
|
@@ -43,7 +44,8 @@
|
|
|
43
44
|
},
|
|
44
45
|
"observability": {
|
|
45
46
|
"serverComponent": "godot-agent-loop-server",
|
|
46
|
-
"runtimeComponent": "godot-agent-loop-runtime"
|
|
47
|
+
"runtimeComponent": "godot-agent-loop-runtime",
|
|
48
|
+
"editorComponent": "godot-agent-loop-editor"
|
|
47
49
|
},
|
|
48
50
|
"lineage": {
|
|
49
51
|
"originalRepository": "https://github.com/Coding-Solo/godot-mcp",
|