@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.
Files changed (41) hide show
  1. package/README.md +59 -34
  2. package/addons/godot_agent_loop/README.md +26 -16
  3. package/addons/godot_agent_loop/plugin.cfg +3 -2
  4. package/addons/godot_agent_loop/plugin.gd +840 -25
  5. package/agent-plugin/.claude-plugin/plugin.json +1 -1
  6. package/agent-plugin/.codex-plugin/plugin.json +1 -1
  7. package/agent-plugin/.mcp.json +1 -1
  8. package/agent-plugin/adapter-manifest.json +3 -3
  9. package/agent-plugin/pi/extension.ts +1 -1
  10. package/agent-plugin/skills/build-godot-game/SKILL.md +26 -5
  11. package/agent-plugin/skills/debug-godot-game/SKILL.md +20 -7
  12. package/agent-plugin/skills/ship-godot-game/SKILL.md +13 -3
  13. package/agent-plugin/skills/verify-godot-change/SKILL.md +17 -2
  14. package/build/authoring-session-manager.js +24 -1
  15. package/build/domain-tool-registries.js +5 -1
  16. package/build/editor-authoring-router.js +228 -0
  17. package/build/editor-bridge-protocol.js +2 -1
  18. package/build/editor-connection.js +29 -24
  19. package/build/editor-mutation-guard.js +3 -1
  20. package/build/editor-plugin-installer.js +2 -1
  21. package/build/editor-session-registry.js +392 -0
  22. package/build/editor-sync-queue.js +135 -0
  23. package/build/index.js +208 -29
  24. package/build/lifecycle-trace.js +80 -0
  25. package/build/scripts/mcp_editor_plugin.gd +840 -25
  26. package/build/scripts/mcp_interaction_server.gd +76 -2
  27. package/build/scripts/mcp_runtime/core_domain.gd +2 -1
  28. package/build/scripts/mcp_runtime/system_domain.gd +2 -0
  29. package/build/server-instructions.js +5 -5
  30. package/build/session-timing.js +17 -1
  31. package/build/tool-definitions.js +99 -6
  32. package/build/tool-handlers/game-tool-handlers.js +21 -4
  33. package/build/tool-handlers/lifecycle-tool-handlers.js +361 -27
  34. package/build/tool-handlers/project-handler-services.js +45 -6
  35. package/build/tool-handlers/project-tool-handlers.js +4 -4
  36. package/build/tool-manifest.js +29 -1
  37. package/build/tool-mutation-policy.js +1 -0
  38. package/build/tool-surface.js +4 -4
  39. package/build/utils.js +2 -2
  40. package/package.json +4 -3
  41. package/product.json +7 -5
@@ -7,6 +7,7 @@ import { toolManifest } from './tool-manifest.js';
7
7
  export const READ_ONLY_TOOLS = new Set([
8
8
  'get_debug_output',
9
9
  'get_godot_version',
10
+ 'editor_session',
10
11
  'list_projects',
11
12
  'get_project_info',
12
13
  'get_uid',
@@ -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', 'list_projects', 'get_project_info',
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', 'list_project_files', 'manage_input_map', 'set_main_scene',
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', 'game_wait', 'game_click', 'game_key_press',
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.4.0';
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.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.1",
4
- "description": "MCP automation loop with 167 tested tools for Godot 4",
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 167 tested tools for Godot 4",
8
- "version": "1.0.1",
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.4",
33
+ "minimumGodotVersion": "4.7",
34
34
  "primaryGodotVersion": "4.7",
35
- "protocolVersion": "1",
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",