gdharness 0.12.14 → 0.12.15
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/build/cli.js +8 -3
- package/build/index.js +8 -3
- package/package.json +1 -1
package/build/cli.js
CHANGED
|
@@ -15759,7 +15759,7 @@ var init_tool_definitions = __esm(() => {
|
|
|
15759
15759
|
},
|
|
15760
15760
|
{
|
|
15761
15761
|
name: "editor_status",
|
|
15762
|
-
description: 'Whether the editor addon is connected, which Godot answers, whether the editor is playing something, and whether a game with the runtime addon is reachable. When connected is false, mayYetConnect says whether that is final: the editor dials this server rather than the other way round and backs off between tries, so for the first half-minute after a server starts, false means "not reached yet" as often as it means "no editor". True is worth waiting out; false is an editor that is not there.',
|
|
15762
|
+
description: 'Whether the editor addon is connected, which Godot answers, whether the editor is playing something, and whether a game with the runtime addon is reachable. When connected is false, mayYetConnect says whether that is final: the editor dials this server rather than the other way round and backs off between tries, so for the first half-minute after a server starts, false means "not reached yet" as often as it means "no editor". True is worth waiting out; false is an editor that is not there. listeningSince is when this server took the bridge port, which is what that window is measured from and what a caller wanting its own window should read.',
|
|
15763
15763
|
parameters: {},
|
|
15764
15764
|
requires: []
|
|
15765
15765
|
},
|
|
@@ -34406,7 +34406,7 @@ function servedPort(said) {
|
|
|
34406
34406
|
return typeof said === "number" && Number.isInteger(said) && said > 0 && said <= 65535 ? said : undefined;
|
|
34407
34407
|
}
|
|
34408
34408
|
function mayYetConnect(listeningSince, now = Date.now()) {
|
|
34409
|
-
return listeningSince === undefined || now - listeningSince < CONNECT_WINDOW_MS;
|
|
34409
|
+
return listeningSince === undefined || now - listeningSince.getTime() < CONNECT_WINDOW_MS;
|
|
34410
34410
|
}
|
|
34411
34411
|
function getDefaultBridge(ownProject = null) {
|
|
34412
34412
|
defaultBridge ??= new GodotBridge(resolveDefaultBridgePort(), resolveDefaultBridgeHost(), DEFAULT_TIMEOUT_MS, ownProject);
|
|
@@ -34482,7 +34482,7 @@ var init_godot_bridge = __esm(() => {
|
|
|
34482
34482
|
});
|
|
34483
34483
|
server.once("listening", () => {
|
|
34484
34484
|
settled = true;
|
|
34485
|
-
this.listeningSince = Date
|
|
34485
|
+
this.listeningSince = new Date;
|
|
34486
34486
|
this.httpServer = server;
|
|
34487
34487
|
this.godotWss = godotWss;
|
|
34488
34488
|
const bound = server.address();
|
|
@@ -37343,8 +37343,11 @@ class GodotServer {
|
|
|
37343
37343
|
return this.createErrorResponse(`Cannot create ${dirname9(output.relativePath)} to export into: ${errorMessage(error)}`);
|
|
37344
37344
|
}
|
|
37345
37345
|
const debug = readBoolean(args, "debug") ?? false;
|
|
37346
|
+
const exportLogs = mkdtempSync3(join16(tmpdir5(), "gdharness-export-"));
|
|
37346
37347
|
const exportArgs = [
|
|
37347
37348
|
"--headless",
|
|
37349
|
+
"--log-file",
|
|
37350
|
+
join16(exportLogs, "engine.log"),
|
|
37348
37351
|
"--path",
|
|
37349
37352
|
project.value.path,
|
|
37350
37353
|
debug ? "--export-debug" : "--export-release",
|
|
@@ -37366,6 +37369,8 @@ class GodotServer {
|
|
|
37366
37369
|
log.append("stdout", failed.stdout);
|
|
37367
37370
|
log.append("stderr", failed.stderr);
|
|
37368
37371
|
exitCode = typeof failed.code === "number" ? failed.code : -1;
|
|
37372
|
+
} finally {
|
|
37373
|
+
rmSync9(exportLogs, { recursive: true, force: true });
|
|
37369
37374
|
}
|
|
37370
37375
|
log.finish();
|
|
37371
37376
|
const problems = log.select({ severity: "warning", sinceLastCall: false, limit: 200 });
|
package/build/index.js
CHANGED
|
@@ -25613,7 +25613,7 @@ function servedPort(said) {
|
|
|
25613
25613
|
}
|
|
25614
25614
|
var CONNECT_WINDOW_MS = 35000;
|
|
25615
25615
|
function mayYetConnect(listeningSince, now = Date.now()) {
|
|
25616
|
-
return listeningSince === undefined || now - listeningSince < CONNECT_WINDOW_MS;
|
|
25616
|
+
return listeningSince === undefined || now - listeningSince.getTime() < CONNECT_WINDOW_MS;
|
|
25617
25617
|
}
|
|
25618
25618
|
|
|
25619
25619
|
class GodotBridge extends EventEmitter {
|
|
@@ -25680,7 +25680,7 @@ class GodotBridge extends EventEmitter {
|
|
|
25680
25680
|
});
|
|
25681
25681
|
server.once("listening", () => {
|
|
25682
25682
|
settled = true;
|
|
25683
|
-
this.listeningSince = Date
|
|
25683
|
+
this.listeningSince = new Date;
|
|
25684
25684
|
this.httpServer = server;
|
|
25685
25685
|
this.godotWss = godotWss;
|
|
25686
25686
|
const bound = server.address();
|
|
@@ -28662,7 +28662,7 @@ var TOOL_SPECS = [
|
|
|
28662
28662
|
},
|
|
28663
28663
|
{
|
|
28664
28664
|
name: "editor_status",
|
|
28665
|
-
description: 'Whether the editor addon is connected, which Godot answers, whether the editor is playing something, and whether a game with the runtime addon is reachable. When connected is false, mayYetConnect says whether that is final: the editor dials this server rather than the other way round and backs off between tries, so for the first half-minute after a server starts, false means "not reached yet" as often as it means "no editor". True is worth waiting out; false is an editor that is not there.',
|
|
28665
|
+
description: 'Whether the editor addon is connected, which Godot answers, whether the editor is playing something, and whether a game with the runtime addon is reachable. When connected is false, mayYetConnect says whether that is final: the editor dials this server rather than the other way round and backs off between tries, so for the first half-minute after a server starts, false means "not reached yet" as often as it means "no editor". True is worth waiting out; false is an editor that is not there. listeningSince is when this server took the bridge port, which is what that window is measured from and what a caller wanting its own window should read.',
|
|
28666
28666
|
parameters: {},
|
|
28667
28667
|
requires: []
|
|
28668
28668
|
},
|
|
@@ -30126,8 +30126,11 @@ class GodotServer {
|
|
|
30126
30126
|
return this.createErrorResponse(`Cannot create ${dirname4(output.relativePath)} to export into: ${errorMessage(error)}`);
|
|
30127
30127
|
}
|
|
30128
30128
|
const debug = readBoolean(args, "debug") ?? false;
|
|
30129
|
+
const exportLogs = mkdtempSync2(join10(tmpdir4(), "gdharness-export-"));
|
|
30129
30130
|
const exportArgs = [
|
|
30130
30131
|
"--headless",
|
|
30132
|
+
"--log-file",
|
|
30133
|
+
join10(exportLogs, "engine.log"),
|
|
30131
30134
|
"--path",
|
|
30132
30135
|
project.value.path,
|
|
30133
30136
|
debug ? "--export-debug" : "--export-release",
|
|
@@ -30149,6 +30152,8 @@ class GodotServer {
|
|
|
30149
30152
|
log.append("stdout", failed.stdout);
|
|
30150
30153
|
log.append("stderr", failed.stderr);
|
|
30151
30154
|
exitCode = typeof failed.code === "number" ? failed.code : -1;
|
|
30155
|
+
} finally {
|
|
30156
|
+
rmSync5(exportLogs, { recursive: true, force: true });
|
|
30152
30157
|
}
|
|
30153
30158
|
log.finish();
|
|
30154
30159
|
const problems = log.select({ severity: "warning", sinceLastCall: false, limit: 200 });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gdharness",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.15",
|
|
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",
|