gdharness 0.12.5 → 0.12.6

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 (2) hide show
  1. package/README.md +34 -45
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -15,10 +15,15 @@
15
15
  [![Bun](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fraw.githubusercontent.com%2FAureliolo%2Fgdharness%2Fmain%2Fpackage.json&query=%24.engines.bun&label=bun&color=f9f1e1&logo=bun&logoColor=black)](https://bun.sh/)
16
16
  [![Licence](https://img.shields.io/github/license/Aureliolo/gdharness)](LICENSE)
17
17
 
18
- Drive a Godot 4 project from an agent: the editor that is open, the game that is running, and the
19
- project on disk.
18
+ **An agent cannot see a running game.** It reads your scripts and guesses at the rest: whether the
19
+ button is on screen, whether the panel updated, whether that error mattered.
20
20
 
21
- **Hand this to your agent:**
21
+ gdharness makes the engine answerable instead. What the screen says, where a control is, what a
22
+ property reads right now, what the console printed, what broke and on which line.
23
+
24
+ ## Install
25
+
26
+ Hand this to your agent:
22
27
 
23
28
  ```text
24
29
  Install gdharness into this project by following
@@ -27,31 +32,39 @@ recommend back to me.
27
32
  ```
28
33
 
29
34
  Or do it yourself, and pick your harness:
30
- [aureliolo.github.io/gdharness](https://aureliolo.github.io/gdharness)
35
+ [aureliolo.github.io/gdharness](https://aureliolo.github.io/gdharness).
31
36
 
32
- ## What it is for
33
-
34
- An agent cannot see a running game. This makes one answerable: where a control is, what a property
35
- reads, what the console printed, what broke and on which line.
37
+ ## The loop it exists for
36
38
 
37
39
  ```jsonc
38
- runtime_inspect { "op": "rect", "nodePath": "/root/Hall/Ledger/BuyButton" }
39
-
40
- { "canvas": { "position": { "x": 812, "y": 418 }, "size": { "x": 180, "y": 34 } },
41
- "visible": true }
40
+ editor_run { "op": "start", "projectPath": "C:/games/hall" }
41
+ runtime_inspect { "op": "find", "says": "Buy" } // the button, by the word on it
42
+ runtime_input { "op": "click", "nodePath": "/root/Hall/Ledger/BuyButton" }
43
+ runtime_inspect { "op": "text", "nodePath": "/root/Hall/Ledger" } // what the panel says now
44
+ editor_output { "projectPath": "C:/games/hall" } // errors and warnings, with backtraces
42
45
  ```
43
46
 
47
+ The open editor plays the game, so its debugger holds it, which is what lets you set a breakpoint
48
+ and read the variables in scope when it stops.
49
+
50
+ Every answer is read back out of the engine after the fact, never echoed from the request. A tool
51
+ that cannot answer says which state it is in and what would change it, rather than answering
52
+ emptily, so a call that succeeded is a call that was understood.
53
+
44
54
  ## At a glance
45
55
 
46
- | | |
47
- | --------- | ------------------------------------------------------------------------ |
48
- | Needs | Godot 4.7 or newer, Node 22 or newer. Runs under Bun 1.4 too. |
49
- | Surface | 30 tools named `domain_verb`, and 4 `godot://` resources |
50
- | Reaches | The editor that is open, a game it is playing, and the project on disk |
51
- | Harnesses | 35, written inside the project wherever the harness has a project config |
52
- | Skill | Written to `.agents/skills`, which every major harness reads |
53
- | Install | npm, or a Sigstore-signed archive with an SBOM, SLSA Build Level 3 |
54
- | Proven | Every tool driven against a pinned Godot in CI, on three platforms |
56
+ | | |
57
+ | --------- | -------------------------------------------------------------------------------- |
58
+ | Needs | Godot 4.7 or newer, Node 22 or newer. Runs under Bun 1.4 too. |
59
+ | Surface | 30 tools named `domain_verb`, and 4 `godot://` resources |
60
+ | Reaches | The editor that is open, a game it is playing, and the project on disk |
61
+ | Harnesses | 35, written inside the project wherever the harness has a project config |
62
+ | Skill | Written to `.agents/skills`, which every major harness reads |
63
+ | Install | npm, or a Sigstore-signed archive with an SBOM, SLSA Build Level 3 |
64
+ | Proven | Every tool driven against Godot 4.7.2 in CI, on Windows, Linux and macOS |
65
+ | Status | 0.x: pin an exact version. [What a bump means](.github/CONTRIBUTING.md#versions) |
66
+
67
+ Older 4.x is likely to work and is not tested.
55
68
 
56
69
  ## Documentation
57
70
 
@@ -61,30 +74,6 @@ parts connect, and every tool, op and argument.
61
74
  [SECURITY.md](.github/SECURITY.md) is how to report something.
62
75
  [CONTRIBUTING.md](.github/CONTRIBUTING.md) is what a change has to clear.
63
76
 
64
- ## Versions
65
-
66
- 0.x, and the number is telling the truth: the tools, their arguments and the shape of their
67
- answers are still moving, because the projects using this keep finding answers that were wrong or
68
- missing. Pin an exact version and upgrade deliberately.
69
-
70
- Built and measured against Godot 4.7.2 on Windows, Linux and macOS. The editor, engine, runtime
71
- and integration suites run against a real engine on all three before anything is tagged. Older
72
- 4.x is likely to work and is not tested.
73
-
74
- What each kind of release means here:
75
-
76
- - **Patch**: nearly everything. An answer that was wrong is now right, and the output may change
77
- shape for it, because a wrong answer corrected is a fix rather than a feature and leaving one
78
- wrong to protect whoever parsed it is how a tool stops being worth asking. An addition nothing
79
- has to adapt to is a patch too: a new argument, a new field, an argument reaching further than it
80
- did. Ignore all of it and your calls still work.
81
- - **Minor**: a new tool or a new op, meaning this does something it could not do before.
82
- - **Major**: a tool, an op, an argument or a field was renamed or taken away. Nothing else earns
83
- one.
84
-
85
- 1.0 is not a date, it is a condition: the tool surface holding still for a fortnight, and the
86
- issues arriving being things it cannot do yet rather than things it answers wrongly.
87
-
88
77
  ## Project
89
78
 
90
79
  Fork of [GoPeak](https://github.com/HaD0Yun/Doyunha-Gopeak) v2.3.9, September 2026, MIT: the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gdharness",
3
- "version": "0.12.5",
3
+ "version": "0.12.6",
4
4
  "mcpName": "io.github.Aureliolo/gdharness",
5
5
  "description": "A harness for driving a Godot 4 project from an agent: editor addons, a runtime bridge into the running game, an MCP server in front of them, and a CLI that installs and diagnoses the Godot side.",
6
6
  "type": "module",