godot-cli 0.31.0 → 0.32.1
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/CHANGELOG.md +11 -0
- package/dist/utils/addon-deps.d.ts +15 -0
- package/dist/utils/addon-deps.js +20 -6
- package/dist/utils/addon-deps.js.map +1 -1
- package/dist/utils/addon-nuget-deps.d.ts +4 -3
- package/dist/utils/addon-nuget-deps.js +11 -8
- package/dist/utils/addon-nuget-deps.js.map +1 -1
- package/dist/utils/csproj-deps.js +25 -14
- package/dist/utils/csproj-deps.js.map +1 -1
- package/dist/utils/server-source.d.ts +1 -1
- package/dist/utils/server-source.js +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,17 @@ All notable changes to `godot-cli` are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
- **ReflectorNet 5.5.0, McpPlugin 8.11.1, server 9.2.14.** The `install-plugin` fallback pins (addons without
|
|
8
|
+
`nuget-deps.json`) and the default server download follow. ReflectorNet 5.5.0's base `MainThread` now detects the main
|
|
9
|
+
thread by its `SynchronizationContext`; the addon is unaffected (`GodotMainThread` overrides that detection).
|
|
10
|
+
- **In-game `script-execute` opt-in.** `install-plugin` writes Code-Exec, its Roslyn adapter and
|
|
11
|
+
`Microsoft.CodeAnalysis.CSharp` with `'$(GodotMcpCodeExecInGame)' == 'true' or (<editor-only condition>)`, so a game
|
|
12
|
+
that sets `GodotMcpCodeExecInGame=true` keeps them in its exports (RQL stays editor-only). Entries an older
|
|
13
|
+
version wrote with the editor-only condition are upgraded; a `Condition` the project set is kept. The addon marks
|
|
14
|
+
those packages `inGameOptIn` in `nuget-deps.json` (an older `godot-cli` ignores the flag and writes them
|
|
15
|
+
editor-only; with `--source` it reads the new csproj condition as none and writes them unconditioned, so use
|
|
16
|
+
this version for `--source` installs). A newer Roslyn the project pins keeps its version but moves between the
|
|
17
|
+
two canonical conditions too.
|
|
7
18
|
- **McpPlugin 8.11.0; `exec` waits for the server's tool timeout.** `install-plugin` pins `com.IvanMurzak.McpPlugin`
|
|
8
19
|
8.11.0 (fallback for addons without `nuget-deps.json`). The addon starts its local server with
|
|
9
20
|
`tool-timeout=300000` (on a server built on McpPlugin 8.11.0+ a call is sent to the editor once and may run
|
|
@@ -9,6 +9,12 @@ export interface AddonPackageReference {
|
|
|
9
9
|
* export builds leave it out (an exported game ships no RQL / Roslyn).
|
|
10
10
|
*/
|
|
11
11
|
editorOnly?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* With `editorOnly`: a game that opts in to in-game `script-execute` (MSBuild property `GodotMcpCodeExecInGame=true`)
|
|
14
|
+
* keeps the package in its export builds, so it is written with `CODE_EXEC_IN_GAME_CONDITION` instead. A CLI that
|
|
15
|
+
* predates this flag reads such a manifest entry as plain editor-only (safe: no in-game code execution).
|
|
16
|
+
*/
|
|
17
|
+
inGameOptIn?: boolean;
|
|
12
18
|
}
|
|
13
19
|
/**
|
|
14
20
|
* The MSBuild condition of an editor-only `<PackageReference>`: every configuration except Godot's two export
|
|
@@ -16,6 +22,15 @@ export interface AddonPackageReference {
|
|
|
16
22
|
* GodotSharpEditor. Godot-MCP.csproj marks its editor-only packages with this exact attribute.
|
|
17
23
|
*/
|
|
18
24
|
export declare const EDITOR_ONLY_CONDITION = "'$(Configuration)' != 'ExportDebug' and '$(Configuration)' != 'ExportRelease'";
|
|
25
|
+
/** The MSBuild property a game sets to `true` to keep Code-Exec and Roslyn in its exports (in-game `script-execute`). */
|
|
26
|
+
export declare const CODE_EXEC_IN_GAME_PROPERTY = "GodotMcpCodeExecInGame";
|
|
27
|
+
/**
|
|
28
|
+
* The MSBuild condition of an `inGameOptIn` package: the editor-only condition, or the game opted in to in-game
|
|
29
|
+
* `script-execute`. Godot-MCP.csproj marks its Code-Exec packages with this exact attribute.
|
|
30
|
+
*/
|
|
31
|
+
export declare const CODE_EXEC_IN_GAME_CONDITION = "'$(GodotMcpCodeExecInGame)' == 'true' or ('$(Configuration)' != 'ExportDebug' and '$(Configuration)' != 'ExportRelease')";
|
|
32
|
+
/** The canonical Condition `install-plugin` writes for a reference (undefined: none). */
|
|
33
|
+
export declare function canonicalCondition(ref: AddonPackageReference): string | undefined;
|
|
19
34
|
/**
|
|
20
35
|
* A single `<EmbeddedResource>` the consumer csproj must declare so an asset the
|
|
21
36
|
* addon reads at editor runtime via `GetManifestResourceStream` is embedded into
|
package/dist/utils/addon-deps.js
CHANGED
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
// the editor tools, PolyForm Shield 1.0.0) is a direct dependency of the addon sources since 1.0; Code-Exec
|
|
13
13
|
// (`com.IvanMurzak.CodeExec` + the source-only `.Roslyn` adapter, compiled against the pinned
|
|
14
14
|
// `Microsoft.CodeAnalysis.CSharp`) runs `script-execute`. Those four are `editorOnly`: only `#if TOOLS` code
|
|
15
|
-
// uses them, so exported games ship neither RQL nor Roslyn.
|
|
15
|
+
// uses them, so exported games ship neither RQL nor Roslyn. The three Code-Exec ones are also `inGameOptIn`: a game
|
|
16
|
+
// that opts in to in-game `script-execute` (`GodotMcpCodeExecInGame=true`) keeps them in its exports. A parity test
|
|
16
17
|
// (`cli/tests/addon-deps-parity.test.ts`) reads `Godot-MCP.csproj` and FAILS the
|
|
17
18
|
// build if these constants ever drift from the addon's pins, so the scaffold can
|
|
18
19
|
// never silently install a mismatched version.
|
|
@@ -24,18 +25,31 @@
|
|
|
24
25
|
* GodotSharpEditor. Godot-MCP.csproj marks its editor-only packages with this exact attribute.
|
|
25
26
|
*/
|
|
26
27
|
export const EDITOR_ONLY_CONDITION = "'$(Configuration)' != 'ExportDebug' and '$(Configuration)' != 'ExportRelease'";
|
|
28
|
+
/** The MSBuild property a game sets to `true` to keep Code-Exec and Roslyn in its exports (in-game `script-execute`). */
|
|
29
|
+
export const CODE_EXEC_IN_GAME_PROPERTY = 'GodotMcpCodeExecInGame';
|
|
30
|
+
/**
|
|
31
|
+
* The MSBuild condition of an `inGameOptIn` package: the editor-only condition, or the game opted in to in-game
|
|
32
|
+
* `script-execute`. Godot-MCP.csproj marks its Code-Exec packages with this exact attribute.
|
|
33
|
+
*/
|
|
34
|
+
export const CODE_EXEC_IN_GAME_CONDITION = `'$(${CODE_EXEC_IN_GAME_PROPERTY})' == 'true' or (${EDITOR_ONLY_CONDITION})`;
|
|
35
|
+
/** The canonical Condition `install-plugin` writes for a reference (undefined: none). */
|
|
36
|
+
export function canonicalCondition(ref) {
|
|
37
|
+
if (!ref.editorOnly)
|
|
38
|
+
return undefined;
|
|
39
|
+
return ref.inGameOptIn ? CODE_EXEC_IN_GAME_CONDITION : EDITOR_ONLY_CONDITION;
|
|
40
|
+
}
|
|
27
41
|
/**
|
|
28
42
|
* The NuGet `PackageReference`s the addon of THIS CLI's version needs (fallback when
|
|
29
43
|
* the installed addon carries no `nuget-deps.json`), mirroring `Godot-MCP.csproj`.
|
|
30
44
|
* Order matches the addon csproj (ReflectorNet, McpPlugin, Rql, then Code-Exec and its Roslyn).
|
|
31
45
|
*/
|
|
32
46
|
export const ADDON_PACKAGE_REFERENCES = [
|
|
33
|
-
{ id: 'com.IvanMurzak.ReflectorNet', version: '5.
|
|
34
|
-
{ id: 'com.IvanMurzak.McpPlugin', version: '8.
|
|
47
|
+
{ id: 'com.IvanMurzak.ReflectorNet', version: '5.5.0' },
|
|
48
|
+
{ id: 'com.IvanMurzak.McpPlugin', version: '8.12.0' },
|
|
35
49
|
{ id: 'com.IvanMurzak.Rql', version: '0.1.1', editorOnly: true },
|
|
36
|
-
{ id: 'com.IvanMurzak.CodeExec', version: '0.2.1', editorOnly: true },
|
|
37
|
-
{ id: 'com.IvanMurzak.CodeExec.Roslyn', version: '0.2.1', editorOnly: true },
|
|
38
|
-
{ id: 'Microsoft.CodeAnalysis.CSharp', version: '4.12.0', editorOnly: true },
|
|
50
|
+
{ id: 'com.IvanMurzak.CodeExec', version: '0.2.1', editorOnly: true, inGameOptIn: true },
|
|
51
|
+
{ id: 'com.IvanMurzak.CodeExec.Roslyn', version: '0.2.1', editorOnly: true, inGameOptIn: true },
|
|
52
|
+
{ id: 'Microsoft.CodeAnalysis.CSharp', version: '4.12.0', editorOnly: true, inGameOptIn: true },
|
|
39
53
|
];
|
|
40
54
|
/**
|
|
41
55
|
* The exact `<EmbeddedResource>`s the consumer's project `.csproj` needs, single-sourced
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addon-deps.js","sourceRoot":"","sources":["../../src/utils/addon-deps.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,mFAAmF;AACnF,oEAAoE;AACpE,6BAA6B;AAC7B,EAAE;AACF,gFAAgF;AAChF,0EAA0E;AAC1E,mFAAmF;AACnF,oFAAoF;AACpF,oFAAoF;AACpF,gHAAgH;AAChH,4GAA4G;AAC5G,8FAA8F;AAC9F,6GAA6G;AAC7G,
|
|
1
|
+
{"version":3,"file":"addon-deps.js","sourceRoot":"","sources":["../../src/utils/addon-deps.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,mFAAmF;AACnF,oEAAoE;AACpE,6BAA6B;AAC7B,EAAE;AACF,gFAAgF;AAChF,0EAA0E;AAC1E,mFAAmF;AACnF,oFAAoF;AACpF,oFAAoF;AACpF,gHAAgH;AAChH,4GAA4G;AAC5G,8FAA8F;AAC9F,6GAA6G;AAC7G,oHAAoH;AACpH,oHAAoH;AACpH,iFAAiF;AACjF,iFAAiF;AACjF,+CAA+C;AAC/C,EAAE;AACF,sEAAsE;AAqBtE;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,+EAA+E,CAAC;AAErH,yHAAyH;AACzH,MAAM,CAAC,MAAM,0BAA0B,GAAG,wBAAwB,CAAC;AAEnE;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,0BAA0B,oBAAoB,qBAAqB,GAAG,CAAC;AAExH,yFAAyF;AACzF,MAAM,UAAU,kBAAkB,CAAC,GAA0B;IAC3D,IAAI,CAAC,GAAG,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IACtC,OAAO,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,qBAAqB,CAAC;AAC/E,CAAC;AAgBD;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAqC;IACxE,EAAE,EAAE,EAAE,6BAA6B,EAAE,OAAO,EAAE,OAAO,EAAE;IACvD,EAAE,EAAE,EAAE,0BAA0B,EAAE,OAAO,EAAE,QAAQ,EAAE;IACrD,EAAE,EAAE,EAAE,oBAAoB,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;IAChE,EAAE,EAAE,EAAE,yBAAyB,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IACxF,EAAE,EAAE,EAAE,gCAAgC,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;IAC/F,EAAE,EAAE,EAAE,+BAA+B,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;CACvF,CAAC;AAEX;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAqC;IACxE;QACE,OAAO,EAAE,0CAA0C;QACnD,WAAW,EAAE,mCAAmC;KACjD;CACO,CAAC;AAEX,wFAAwF;AACxF,MAAM,CAAC,MAAM,yBAAyB,GAAG,mCAAmC,CAAC"}
|
|
@@ -9,13 +9,14 @@ export interface ResolvedAddonNugetDeps {
|
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* Every `<PackageReference Include=".." Version="..">` in a csproj text, in document order. A reference whose
|
|
12
|
-
* `Condition` is `EDITOR_ONLY_CONDITION` is editor-only
|
|
12
|
+
* `Condition` is `EDITOR_ONLY_CONDITION` is editor-only; `CODE_EXEC_IN_GAME_CONDITION` adds `inGameOptIn`.
|
|
13
13
|
*/
|
|
14
14
|
export declare function parseCsprojPackageReferences(csprojText: string): AddonPackageReference[];
|
|
15
15
|
/**
|
|
16
|
-
* Parse a `nuget-deps.json` manifest (`{ "packageReferences": [{ "id", "version", "editorOnly"? }] }`).
|
|
16
|
+
* Parse a `nuget-deps.json` manifest (`{ "packageReferences": [{ "id", "version", "editorOnly"?, "inGameOptIn"? }] }`).
|
|
17
17
|
* Manifests that predate `editorOnly` mark nothing editor-only, which those addons need (their RQL sources
|
|
18
|
-
* compile into export builds)
|
|
18
|
+
* compile into export builds); `inGameOptIn` counts only with `editorOnly`. Throws on malformed JSON, a missing/empty
|
|
19
|
+
* list, or an invalid entry.
|
|
19
20
|
*/
|
|
20
21
|
export declare function parseAddonNugetDeps(text: string): AddonPackageReference[];
|
|
21
22
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
2
|
import * as path from 'path';
|
|
3
|
-
import { ADDON_PACKAGE_REFERENCES, EDITOR_ONLY_CONDITION } from './addon-deps.js';
|
|
3
|
+
import { ADDON_PACKAGE_REFERENCES, CODE_EXEC_IN_GAME_CONDITION, EDITOR_ONLY_CONDITION, } from './addon-deps.js';
|
|
4
4
|
// Resolve the NuGet PackageReferences the INSTALLED addon needs, so `install-plugin`
|
|
5
5
|
// pins the consumer csproj to what that addon release was built against — not to the
|
|
6
6
|
// constants baked into this CLI build (they differ whenever the addon version differs
|
|
@@ -22,28 +22,31 @@ const ADDON_CSPROJ_FILE = 'Godot-MCP.csproj';
|
|
|
22
22
|
// NuGet-shaped ids and versions are accepted (no quotes, `<`, `&`, whitespace).
|
|
23
23
|
const NUGET_ID_RE = /^[A-Za-z0-9_][A-Za-z0-9_.-]*$/;
|
|
24
24
|
const NUGET_VERSION_RE = /^[0-9A-Za-z][0-9A-Za-z.+-]*$/;
|
|
25
|
-
function validRef(id, version, editorOnly) {
|
|
25
|
+
function validRef(id, version, editorOnly, inGameOptIn) {
|
|
26
26
|
return typeof id === 'string' && typeof version === 'string' && NUGET_ID_RE.test(id) && NUGET_VERSION_RE.test(version)
|
|
27
|
-
? { id, version, ...(editorOnly && { editorOnly }) }
|
|
27
|
+
? { id, version, ...(editorOnly && { editorOnly }), ...(editorOnly && inGameOptIn && { inGameOptIn }) }
|
|
28
28
|
: null;
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* Every `<PackageReference Include=".." Version="..">` in a csproj text, in document order. A reference whose
|
|
32
|
-
* `Condition` is `EDITOR_ONLY_CONDITION` is editor-only
|
|
32
|
+
* `Condition` is `EDITOR_ONLY_CONDITION` is editor-only; `CODE_EXEC_IN_GAME_CONDITION` adds `inGameOptIn`.
|
|
33
33
|
*/
|
|
34
34
|
export function parseCsprojPackageReferences(csprojText) {
|
|
35
35
|
const refs = [];
|
|
36
36
|
for (const element of csprojText.match(/<PackageReference\b[^>]*>/gi) ?? []) {
|
|
37
|
-
const
|
|
37
|
+
const condition = /\bCondition\s*=\s*"([^"]*)"/i.exec(element)?.[1];
|
|
38
|
+
const inGameOptIn = condition === CODE_EXEC_IN_GAME_CONDITION;
|
|
39
|
+
const ref = validRef(/\bInclude\s*=\s*"([^"]+)"/i.exec(element)?.[1], /\bVersion\s*=\s*"([^"]+)"/i.exec(element)?.[1], inGameOptIn || condition === EDITOR_ONLY_CONDITION, inGameOptIn);
|
|
38
40
|
if (ref !== null)
|
|
39
41
|
refs.push(ref);
|
|
40
42
|
}
|
|
41
43
|
return refs;
|
|
42
44
|
}
|
|
43
45
|
/**
|
|
44
|
-
* Parse a `nuget-deps.json` manifest (`{ "packageReferences": [{ "id", "version", "editorOnly"? }] }`).
|
|
46
|
+
* Parse a `nuget-deps.json` manifest (`{ "packageReferences": [{ "id", "version", "editorOnly"?, "inGameOptIn"? }] }`).
|
|
45
47
|
* Manifests that predate `editorOnly` mark nothing editor-only, which those addons need (their RQL sources
|
|
46
|
-
* compile into export builds)
|
|
48
|
+
* compile into export builds); `inGameOptIn` counts only with `editorOnly`. Throws on malformed JSON, a missing/empty
|
|
49
|
+
* list, or an invalid entry.
|
|
47
50
|
*/
|
|
48
51
|
export function parseAddonNugetDeps(text) {
|
|
49
52
|
const parsed = JSON.parse(text);
|
|
@@ -53,7 +56,7 @@ export function parseAddonNugetDeps(text) {
|
|
|
53
56
|
}
|
|
54
57
|
return list.map((entry, i) => {
|
|
55
58
|
const e = entry;
|
|
56
|
-
const ref = validRef(e?.id, e?.version, e?.editorOnly === true);
|
|
59
|
+
const ref = validRef(e?.id, e?.version, e?.editorOnly === true, e?.inGameOptIn === true);
|
|
57
60
|
if (ref === null)
|
|
58
61
|
throw new Error(`packageReferences[${i}] is not a valid { id, version } pair`);
|
|
59
62
|
return ref;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addon-nuget-deps.js","sourceRoot":"","sources":["../../src/utils/addon-nuget-deps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"addon-nuget-deps.js","sourceRoot":"","sources":["../../src/utils/addon-nuget-deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { isNewerVersion } from './semver.js';
|
|
2
|
-
import { ADDON_PACKAGE_REFERENCES, ADDON_EMBEDDED_RESOURCES, EDITOR_ONLY_CONDITION, } from './addon-deps.js';
|
|
2
|
+
import { ADDON_PACKAGE_REFERENCES, ADDON_EMBEDDED_RESOURCES, CODE_EXEC_IN_GAME_CONDITION, EDITOR_ONLY_CONDITION, canonicalCondition, } from './addon-deps.js';
|
|
3
3
|
/** Escape a string for use inside a RegExp source. */
|
|
4
4
|
function escapeRegExp(value) {
|
|
5
5
|
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
@@ -52,18 +52,18 @@ function patchRef(element, version, condition) {
|
|
|
52
52
|
}
|
|
53
53
|
/** The packages this CLI knows as editor-only (an older addon's manifest may not mark them). */
|
|
54
54
|
const KNOWN_EDITOR_ONLY_IDS = new Set(ADDON_PACKAGE_REFERENCES.filter((r) => r.editorOnly).map((r) => r.id));
|
|
55
|
+
/** The Conditions `install-plugin` writes; any other Condition on an element is the project's own. */
|
|
56
|
+
const CANONICAL_CONDITIONS = new Set([EDITOR_ONLY_CONDITION, CODE_EXEC_IN_GAME_CONDITION]);
|
|
55
57
|
/**
|
|
56
|
-
* The Condition a reference's element should carry, given the one it has (`undefined` for a new element)
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* keeps its own Condition, except the canonical editor-only one on a package this CLI writes editor-only, which an
|
|
60
|
-
* addon that needs the package in export builds (an older one) drops. The same Condition on another package (e.g.
|
|
61
|
-
* McpPlugin, which docs/ARCHITECTURE.md lets a dev-only project exclude from exports) is the project's own and stays.
|
|
58
|
+
* The Condition a reference's element should carry, given the one it has (`undefined` for a new element): a missing or
|
|
59
|
+
* canonical Condition becomes the reference's canonical one (dropped for a known editor-only package the addon now needs
|
|
60
|
+
* in exports); any other Condition is the project's own and stays. Cases: `csproj-deps.test.ts`.
|
|
62
61
|
*/
|
|
63
62
|
function desiredCondition(ref, existing) {
|
|
63
|
+
const canonical = existing === undefined || CANONICAL_CONDITIONS.has(existing);
|
|
64
64
|
if (ref.editorOnly)
|
|
65
|
-
return
|
|
66
|
-
return
|
|
65
|
+
return canonical ? canonicalCondition(ref) : existing;
|
|
66
|
+
return canonical && KNOWN_EDITOR_ONLY_IDS.has(ref.id) ? undefined : existing;
|
|
67
67
|
}
|
|
68
68
|
/** Render the canonical self-closing element for a required embedded resource. */
|
|
69
69
|
function renderEmbed(res) {
|
|
@@ -104,14 +104,25 @@ export function addAddonPackageReferences(csprojText, requiredRefs = ADDON_PACKA
|
|
|
104
104
|
continue;
|
|
105
105
|
}
|
|
106
106
|
const existingVersion = match[1] ?? match[2] ?? '';
|
|
107
|
-
|
|
108
|
-
//
|
|
109
|
-
//
|
|
107
|
+
const existingCondition = /\bCondition\s*=\s*"([^"]*)"/i.exec(match[0])?.[1];
|
|
108
|
+
// A third-party package (Roslyn) the project already uses at a newer version keeps its version and, unless an older
|
|
109
|
+
// install wrote one of our canonical Conditions, its Condition: the addon needs "at least" (the source-only
|
|
110
|
+
// Code-Exec adapter compiles against Roslyn 3.8+), and a downgrade, or making it editor-only, would break the
|
|
111
|
+
// project's own use. A canonical Condition still moves to the current canonical one (editor-only -> in-game opt-in).
|
|
110
112
|
if (!ref.id.startsWith('com.IvanMurzak.') && isNewerVersion(ref.version, existingVersion)) {
|
|
111
|
-
|
|
113
|
+
const migrated = ref.editorOnly && existingCondition !== undefined && CANONICAL_CONDITIONS.has(existingCondition)
|
|
114
|
+
? canonicalCondition(ref)
|
|
115
|
+
: existingCondition;
|
|
116
|
+
if (migrated === existingCondition) {
|
|
117
|
+
changes.push({ id: ref.id, action: 'unchanged', version: existingVersion });
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
const patched = patchRef(match[0], existingVersion, migrated);
|
|
121
|
+
text = text.replace(re, () => patched);
|
|
122
|
+
changes.push({ id: ref.id, action: 'updated', from: existingVersion, version: existingVersion });
|
|
123
|
+
}
|
|
112
124
|
continue;
|
|
113
125
|
}
|
|
114
|
-
const existingCondition = /\bCondition\s*=\s*"([^"]*)"/i.exec(match[0])?.[1];
|
|
115
126
|
const condition = desiredCondition(ref, existingCondition);
|
|
116
127
|
if (existingVersion === ref.version && condition === existingCondition) {
|
|
117
128
|
changes.push({ id: ref.id, action: 'unchanged', version: ref.version });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"csproj-deps.js","sourceRoot":"","sources":["../../src/utils/csproj-deps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"csproj-deps.js","sourceRoot":"","sources":["../../src/utils/csproj-deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* download entirely (offline / CI). Bumping the addon's server pin requires
|
|
6
6
|
* bumping this in the same PR or the parity test goes red.
|
|
7
7
|
*/
|
|
8
|
-
export declare const DEFAULT_SERVER_VERSION = "9.2.
|
|
8
|
+
export declare const DEFAULT_SERVER_VERSION = "9.2.15";
|
|
9
9
|
/** GitHub-release host the server zip + manifest are downloaded from. NOTHING else is trusted. */
|
|
10
10
|
export declare const TRUSTED_DOWNLOAD_HOST = "github.com";
|
|
11
11
|
/** The `owner/repo` the shared server releases live under. */
|
|
@@ -18,7 +18,7 @@ import { createHash } from 'crypto';
|
|
|
18
18
|
* download entirely (offline / CI). Bumping the addon's server pin requires
|
|
19
19
|
* bumping this in the same PR or the parity test goes red.
|
|
20
20
|
*/
|
|
21
|
-
export const DEFAULT_SERVER_VERSION = '9.2.
|
|
21
|
+
export const DEFAULT_SERVER_VERSION = '9.2.15';
|
|
22
22
|
/** GitHub-release host the server zip + manifest are downloaded from. NOTHING else is trusted. */
|
|
23
23
|
export const TRUSTED_DOWNLOAD_HOST = 'github.com';
|
|
24
24
|
/** The `owner/repo` the shared server releases live under. */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "godot-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.32.1",
|
|
4
4
|
"description": "Cross-platform CLI tool for Godot-MCP (Skills & MCP). Resolves and launches the Godot editor with MCP connection env vars, runs MCP/system tools over HTTP, probes server health, configures AI agents (Claude Code, Cursor, VS Code, …), and enables/disables the godot_mcp addon. Works with Claude Code, Cursor, Copilot, and any MCP client.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/lib.js",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"node": "^20.19.0 || >=22.12.0"
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@baizor/gamedev-cli-core": "^0.7.
|
|
65
|
+
"@baizor/gamedev-cli-core": "^0.7.2",
|
|
66
66
|
"chalk": "^5.6.2",
|
|
67
67
|
"commander": "^13.1.0",
|
|
68
68
|
"yocto-spinner": "^1.1.0"
|