godot-cli 0.13.3 → 0.15.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/CHANGELOG.md +12 -0
- package/README.md +38 -4
- package/dist/commands/install-extension.d.ts +2 -0
- package/dist/commands/install-extension.js +63 -0
- package/dist/commands/install-extension.js.map +1 -0
- package/dist/commands/install-plugin.js +5 -1
- package/dist/commands/install-plugin.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/install-extension.d.ts +20 -0
- package/dist/lib/install-extension.js +185 -0
- package/dist/lib/install-extension.js.map +1 -0
- package/dist/lib/install-plugin.js +23 -11
- package/dist/lib/install-plugin.js.map +1 -1
- package/dist/lib/types.d.ts +63 -2
- package/dist/lib.d.ts +4 -1
- package/dist/lib.js +4 -0
- package/dist/lib.js.map +1 -1
- package/dist/utils/addon-deps.d.ts +23 -0
- package/dist/utils/addon-deps.js +15 -0
- package/dist/utils/addon-deps.js.map +1 -1
- package/dist/utils/csproj-deps.d.ts +37 -1
- package/dist/utils/csproj-deps.js +104 -5
- package/dist/utils/csproj-deps.js.map +1 -1
- package/dist/utils/extension-install.d.ts +47 -0
- package/dist/utils/extension-install.js +249 -0
- package/dist/utils/extension-install.js.map +1 -0
- package/dist/utils/extensions-catalog.d.ts +54 -0
- package/dist/utils/extensions-catalog.js +222 -0
- package/dist/utils/extensions-catalog.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to `godot-cli` are documented in this file.
|
|
4
4
|
|
|
5
|
+
## Unreleased
|
|
6
|
+
|
|
7
|
+
- `install-extension <id> [path]` — install a Godot-MCP **extension** (an optional AI-tool-family package)
|
|
8
|
+
into a Godot C# project: resolve `<id>` from the shared catalog, add/update its `<PackageReference>` in
|
|
9
|
+
the project `.csproj` (added when absent, version-bumped only when newer, no-op when up to date), then
|
|
10
|
+
ask the user to rebuild. Idempotent and behaviorally identical to the in-editor Extensions dock.
|
|
11
|
+
- Added `installExtension` to the library API, plus the shared `EXTENSIONS_CATALOG` + `findExtension`
|
|
12
|
+
exports so the app can render/install the same list the dock + CLI use.
|
|
13
|
+
- The extension catalog (`addons/godot_mcp/extensions.catalog.json`) is now the single source of truth
|
|
14
|
+
consumed by all three channels: the dock parses it via an embedded resource, the CLI mirrors it
|
|
15
|
+
(`extensions-catalog.ts`, parity-tested), and the app imports it from the `godot-cli` library.
|
|
16
|
+
|
|
5
17
|
## 0.1.0
|
|
6
18
|
|
|
7
19
|
Initial release. A cross-platform CLI for Godot-MCP, mirroring `unity-mcp-cli`'s feature set and structure,
|
package/README.md
CHANGED
|
@@ -35,7 +35,8 @@ Requires Node `^20.19.0 || >=22.12.0`.
|
|
|
35
35
|
| `setup-skills <agent> [path]` | Generate Godot-MCP skill files (a `SKILL.md`-per-tool-family) under the agent's skills path. `--list` shows each agent's skills support. |
|
|
36
36
|
| `configure [path]` | List / enable / disable tools, prompts, and resources in the project-local `.godot-mcp/features.json`. |
|
|
37
37
|
| `close [path]` | Gracefully stop the Godot editor running for a project (`--force` to hard-kill). |
|
|
38
|
-
| `install-plugin [path]` | Install the `godot_mcp` addon end-to-end: materialize `res://addons/godot_mcp/` (download the matching GitHub release, or `--source <path>` a local copy), add the required NuGet `PackageReference`s to the project `.csproj`, and enable the plugin. Idempotent. |
|
|
38
|
+
| `install-plugin [path]` | Install the `godot_mcp` addon end-to-end: materialize `res://addons/godot_mcp/` (download the matching GitHub release, or `--source <path>` a local copy), add the required NuGet `PackageReference`s + the extension-catalog `<EmbeddedResource>` to the project `.csproj`, and enable the plugin. Idempotent. |
|
|
39
|
+
| `install-extension <id> [path]` | Install a Godot-MCP **extension** (an optional AI-tool-family package) into the project: resolve `<id>` from the shared catalog, add/update its `<PackageReference>` in the project `.csproj`, then rebuild to restore. Idempotent — behaviorally identical to the in-editor dock. |
|
|
39
40
|
| `remove-plugin [path]` | Disable the `godot_mcp` addon in `project.godot` `[editor_plugins]` (does not delete the addon files). |
|
|
40
41
|
| `update` | Check npm for a newer `godot-cli` and install it. |
|
|
41
42
|
|
|
@@ -125,7 +126,7 @@ godot-cli install-plugin --version 0.11.1 ./MyGodotProject # pin a specific
|
|
|
125
126
|
godot-cli install-plugin --source ./Godot-MCP/addons/godot_mcp ./MyGodotProject # offline / dev copy
|
|
126
127
|
```
|
|
127
128
|
|
|
128
|
-
It performs
|
|
129
|
+
It performs four steps:
|
|
129
130
|
|
|
130
131
|
1. **Materialize `res://addons/godot_mcp/`.** By default it downloads `godot-mcp-addon-<version>.zip`
|
|
131
132
|
over HTTPS from **github.com only** (the `IvanMurzak/Godot-MCP` release `v<version>`; the version
|
|
@@ -136,17 +137,50 @@ It performs three steps:
|
|
|
136
137
|
to the project's `.csproj`, idempotently — adding when missing, reconciling a stale version, and
|
|
137
138
|
leaving a correct pin untouched. The versions are single-sourced from the addon's own
|
|
138
139
|
`Godot-MCP.csproj` pins, so the scaffold can never drift.
|
|
139
|
-
3. **
|
|
140
|
+
3. **Embed the extension catalog** (`<EmbeddedResource Include="addons/godot_mcp/extensions.catalog.json"
|
|
141
|
+
LogicalName="Godot-MCP.extensions.catalog.json" />`) into the project's `.csproj`, idempotently. Without
|
|
142
|
+
it the addon's extension registry reads no catalog at editor runtime and the **Extensions panel is
|
|
143
|
+
empty**. Single-sourced + parity-tested against the addon csproj alongside the pins.
|
|
144
|
+
4. **Enable the plugin** in `project.godot` `[editor_plugins]`.
|
|
140
145
|
|
|
141
146
|
It is library-safe (returns a `{ kind: 'success' | 'failure' }` union; never throws past the public
|
|
142
147
|
boundary) and idempotent — re-running on an already-installed project reports no change.
|
|
143
148
|
|
|
149
|
+
## `install-extension`
|
|
150
|
+
|
|
151
|
+
`godot-cli install-extension <id> [path]` installs an optional Godot-MCP **extension** (a package that
|
|
152
|
+
adds more AI tool families) into a Godot C# project — the terminal/library channel for the same install
|
|
153
|
+
the in-editor **Extensions** dock performs:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
godot-cli install-extension com.IvanMurzak.Godot.MCP.ProBuilder ./MyGodotProject # add/update the PackageReference
|
|
157
|
+
godot-cli install-extension "ProBuilder Tools" # resolve by name; default cwd
|
|
158
|
+
godot-cli install-extension com.IvanMurzak.Godot.MCP.ProBuilder --version 1.3.0 # override the catalog pin
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
- Resolves `<id>` against the **shared extension catalog** (`addons/godot_mcp/extensions.catalog.json` —
|
|
162
|
+
the single source of truth the dock, the CLI, and the app all consume), matching by package id (then
|
|
163
|
+
name), case-insensitive.
|
|
164
|
+
- Read-modify-writes a `<PackageReference Include="<packageId>" Version="<version>" />` into the project's
|
|
165
|
+
root `.csproj`: **added** when absent, version **bumped** only when the catalog (or `--version`) pins a
|
|
166
|
+
newer version, and a **no-op** when already up to date — then asks you to rebuild (`godot-cli build`) so
|
|
167
|
+
Godot restores + compiles the new package.
|
|
168
|
+
- Behaviorally identical to the dock's `ExtensionInstaller` (the same add / update / no-op + numeric
|
|
169
|
+
version-compare rules; verified by a shared scenario set on both sides).
|
|
170
|
+
|
|
171
|
+
> The catalog ships **empty** until the first Godot-MCP extension package is published, so every `<id>` is
|
|
172
|
+
> currently reported as an unknown extension — there is nothing to install yet.
|
|
173
|
+
|
|
144
174
|
## Library API
|
|
145
175
|
|
|
146
176
|
The package also exports a side-effect-free library (the `.` entry):
|
|
147
177
|
|
|
148
178
|
```ts
|
|
149
|
-
import { openProject, runTool, setupMcp, installPlugin } from 'godot-cli';
|
|
179
|
+
import { openProject, runTool, setupMcp, installPlugin, installExtension } from 'godot-cli';
|
|
180
|
+
|
|
181
|
+
// The shared extension catalog + lookup helpers are exported too, so a GUI (the app)
|
|
182
|
+
// can render the same list the dock + CLI install from:
|
|
183
|
+
import { EXTENSIONS_CATALOG, findExtension } from 'godot-cli';
|
|
150
184
|
```
|
|
151
185
|
|
|
152
186
|
Every function returns a discriminated union (`{ kind: 'success', ... }` / `{ kind: 'failure', error }`)
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import * as ui from '../utils/ui.js';
|
|
4
|
+
import { verbose } from '../utils/ui.js';
|
|
5
|
+
import { installExtension } from '../lib/install-extension.js';
|
|
6
|
+
export const installExtensionCommand = new Command('install-extension')
|
|
7
|
+
.description('Install a Godot-MCP extension into a Godot C# project: resolve the extension <id> from the shared catalog, add (or update) its <PackageReference> in the project .csproj, then rebuild to restore it. Idempotent. The project path defaults to the current directory (like install-plugin).')
|
|
8
|
+
.argument('<id>', 'Extension id to install (the package id, or the extension name)')
|
|
9
|
+
.argument('[path]', 'Path to the Godot project (defaults to the current directory)')
|
|
10
|
+
.option('--path <path>', 'Path to the Godot project')
|
|
11
|
+
.option('--version <x.y.z>', 'Override the catalog-pinned version to install')
|
|
12
|
+
.action(async (id, positionalPath, options) => {
|
|
13
|
+
const resolvedPath = positionalPath ?? options.path ?? process.cwd();
|
|
14
|
+
const projectPath = path.resolve(resolvedPath);
|
|
15
|
+
ui.heading('Installing Godot-MCP extension');
|
|
16
|
+
verbose(`Extension id: ${id}`);
|
|
17
|
+
verbose(`Project path: ${projectPath}`);
|
|
18
|
+
if (options.version)
|
|
19
|
+
verbose(`--version: ${options.version}`);
|
|
20
|
+
const spinner = ui.startSpinner('Installing extension...');
|
|
21
|
+
const result = await installExtension({
|
|
22
|
+
godotProjectPath: projectPath,
|
|
23
|
+
extensionId: id,
|
|
24
|
+
version: options.version,
|
|
25
|
+
});
|
|
26
|
+
if (result.kind === 'failure') {
|
|
27
|
+
spinner.error('Failed to install extension');
|
|
28
|
+
ui.error(result.error.message);
|
|
29
|
+
for (const warning of result.warnings) {
|
|
30
|
+
console.log('');
|
|
31
|
+
ui.warn(warning);
|
|
32
|
+
}
|
|
33
|
+
process.exit(1);
|
|
34
|
+
}
|
|
35
|
+
switch (result.outcome) {
|
|
36
|
+
case 'added':
|
|
37
|
+
spinner.success(`Installed ${result.packageId}`);
|
|
38
|
+
break;
|
|
39
|
+
case 'updated':
|
|
40
|
+
spinner.success(`Updated ${result.packageId} to ${result.toVersion}`);
|
|
41
|
+
break;
|
|
42
|
+
case 'already-up-to-date':
|
|
43
|
+
spinner.success(`${result.packageId} is already up to date`);
|
|
44
|
+
break;
|
|
45
|
+
case 'no-project':
|
|
46
|
+
// A no-project result is a kind:'success' outcome (exit 0) — use the success
|
|
47
|
+
// indicator so the spinner doesn't show a red error contradicting the exit code.
|
|
48
|
+
// The explanation is surfaced once below via ui.label('Status', result.message).
|
|
49
|
+
spinner.success('No project .csproj found — nothing to install');
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
ui.label('Status', result.message);
|
|
53
|
+
if (result.csprojPath)
|
|
54
|
+
ui.label('Project .csproj', result.csprojPath);
|
|
55
|
+
if (result.rebuildRequired) {
|
|
56
|
+
ui.label('Next step', 'Rebuild solutions (e.g. `godot-cli build`) to restore + compile the extension.');
|
|
57
|
+
}
|
|
58
|
+
for (const warning of result.warnings) {
|
|
59
|
+
console.log('');
|
|
60
|
+
ui.warn(warning);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=install-extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-extension.js","sourceRoot":"","sources":["../../src/commands/install-extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ function cliVersion() {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
export const installPluginCommand = new Command('install-plugin')
|
|
19
|
-
.description('Install the godot_mcp addon into a Godot C# project: materialize res://addons/godot_mcp/ (download the matching GitHub release, or --source a local copy), add the required NuGet PackageReferences to the project .csproj, and enable the plugin in project.godot.')
|
|
19
|
+
.description('Install the godot_mcp addon into a Godot C# project: materialize res://addons/godot_mcp/ (download the matching GitHub release, or --source a local copy), add the required NuGet PackageReferences and the extension-catalog <EmbeddedResource> to the project .csproj, and enable the plugin in project.godot.')
|
|
20
20
|
.argument('[path]', 'Path to the Godot project')
|
|
21
21
|
.option('--path <path>', 'Path to the Godot project')
|
|
22
22
|
.option('--source <path>', 'Install the addon from a local directory (offline / dev / CI) instead of downloading it')
|
|
@@ -62,6 +62,10 @@ export const installPluginCommand = new Command('install-plugin')
|
|
|
62
62
|
.map((p) => `${p.id}@${p.version} (${p.action})`)
|
|
63
63
|
.join(', ');
|
|
64
64
|
ui.label('NuGet packages', summary || '(none)');
|
|
65
|
+
const embedSummary = result.csproj.embeds
|
|
66
|
+
.map((e) => `${e.logicalName} (${e.action})`)
|
|
67
|
+
.join(', ');
|
|
68
|
+
ui.label('Embedded resources', embedSummary || '(none)');
|
|
65
69
|
}
|
|
66
70
|
ui.label('project.godot', result.projectGodotPath);
|
|
67
71
|
ui.label('Enabled plugins', result.enabledPlugins.join(', ') || '(none)');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-plugin.js","sourceRoot":"","sources":["../../src/commands/install-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAQzD,6EAA6E;AAC7E,SAAS,UAAU;IACjB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;QACjE,OAAO,GAAG,CAAC,OAAO,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,OAAO,CAAC,gBAAgB,CAAC;KAC9D,WAAW,CACV,
|
|
1
|
+
{"version":3,"file":"install-plugin.js","sourceRoot":"","sources":["../../src/commands/install-plugin.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,7 @@ import { createProjectCommand } from './commands/create-project.js';
|
|
|
13
13
|
import { closeCommand } from './commands/close.js';
|
|
14
14
|
import { createUpdateCommand } from './commands/update.js';
|
|
15
15
|
import { installPluginCommand } from './commands/install-plugin.js';
|
|
16
|
+
import { installExtensionCommand } from './commands/install-extension.js';
|
|
16
17
|
import { removePluginCommand } from './commands/remove-plugin.js';
|
|
17
18
|
import { configureStyledHelp, error as uiError, setVerbose } from './utils/ui.js';
|
|
18
19
|
import { checkForUpdate, isRunningViaNpx, printUpdateNotification } from './utils/update-check.js';
|
|
@@ -31,6 +32,7 @@ const subcommands = [
|
|
|
31
32
|
configureCommand,
|
|
32
33
|
createProjectCommand,
|
|
33
34
|
installPluginCommand,
|
|
35
|
+
installExtensionCommand,
|
|
34
36
|
openCommand,
|
|
35
37
|
removePluginCommand,
|
|
36
38
|
runToolCommand,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { InstallExtensionOptions, InstallExtensionResult } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Install (or update) a Godot-MCP extension into a consumer Godot C# project, as a
|
|
4
|
+
* REAL installer that is behaviorally identical to the in-editor dock's
|
|
5
|
+
* `ExtensionInstaller`:
|
|
6
|
+
*
|
|
7
|
+
* 1. Resolve `extensionId` to a descriptor in the SHARED catalog
|
|
8
|
+
* (`addons/godot_mcp/extensions.catalog.json`, mirrored by `EXTENSIONS_CATALOG`).
|
|
9
|
+
* 2. Locate the consumer `.csproj` at the project root.
|
|
10
|
+
* 3. Read-modify-write a `<PackageReference Include="<packageId>" Version="<version>" />`
|
|
11
|
+
* into it — added when absent, version-bumped only when the catalog (or `--version`)
|
|
12
|
+
* pins a NEWER version, and a no-op when already up to date.
|
|
13
|
+
* 4. Tell the caller a rebuild is required (Godot has no programmatic restore).
|
|
14
|
+
*
|
|
15
|
+
* Library-safe: no stdout noise, no `process.exit`, no throws past the public boundary;
|
|
16
|
+
* returns a `{ kind: 'success' | 'failure' }` union. Idempotent: a re-run that finds the
|
|
17
|
+
* reference present at an equal/newer version reports `already-up-to-date` and makes no
|
|
18
|
+
* write. Mirrors `installPlugin`'s shape exactly so the app can adopt it the same way.
|
|
19
|
+
*/
|
|
20
|
+
export declare function installExtension(opts: InstallExtensionOptions): Promise<InstallExtensionResult>;
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import { EXTENSIONS_CATALOG, findExtension, hasVersion, } from '../utils/extensions-catalog.js';
|
|
4
|
+
import { planExtensionInstall, CsprojParseError, } from '../utils/extension-install.js';
|
|
5
|
+
import { emitProgress } from './progress.js';
|
|
6
|
+
import { requireGodotProject } from './validation.js';
|
|
7
|
+
/**
|
|
8
|
+
* Install (or update) a Godot-MCP extension into a consumer Godot C# project, as a
|
|
9
|
+
* REAL installer that is behaviorally identical to the in-editor dock's
|
|
10
|
+
* `ExtensionInstaller`:
|
|
11
|
+
*
|
|
12
|
+
* 1. Resolve `extensionId` to a descriptor in the SHARED catalog
|
|
13
|
+
* (`addons/godot_mcp/extensions.catalog.json`, mirrored by `EXTENSIONS_CATALOG`).
|
|
14
|
+
* 2. Locate the consumer `.csproj` at the project root.
|
|
15
|
+
* 3. Read-modify-write a `<PackageReference Include="<packageId>" Version="<version>" />`
|
|
16
|
+
* into it — added when absent, version-bumped only when the catalog (or `--version`)
|
|
17
|
+
* pins a NEWER version, and a no-op when already up to date.
|
|
18
|
+
* 4. Tell the caller a rebuild is required (Godot has no programmatic restore).
|
|
19
|
+
*
|
|
20
|
+
* Library-safe: no stdout noise, no `process.exit`, no throws past the public boundary;
|
|
21
|
+
* returns a `{ kind: 'success' | 'failure' }` union. Idempotent: a re-run that finds the
|
|
22
|
+
* reference present at an equal/newer version reports `already-up-to-date` and makes no
|
|
23
|
+
* write. Mirrors `installPlugin`'s shape exactly so the app can adopt it the same way.
|
|
24
|
+
*/
|
|
25
|
+
export async function installExtension(opts) {
|
|
26
|
+
const warnings = [];
|
|
27
|
+
try {
|
|
28
|
+
const validated = requireGodotProject(opts?.godotProjectPath);
|
|
29
|
+
if (!validated.ok) {
|
|
30
|
+
return {
|
|
31
|
+
kind: 'failure',
|
|
32
|
+
success: false,
|
|
33
|
+
projectGodotPath: validated.projectGodotPath,
|
|
34
|
+
warnings,
|
|
35
|
+
error: validated.error,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
const { projectPath } = validated;
|
|
39
|
+
const catalog = opts.catalog ?? EXTENSIONS_CATALOG;
|
|
40
|
+
const resolved = findExtension(opts.extensionId, catalog);
|
|
41
|
+
if (resolved === null) {
|
|
42
|
+
return {
|
|
43
|
+
kind: 'failure',
|
|
44
|
+
success: false,
|
|
45
|
+
warnings,
|
|
46
|
+
error: new Error(unknownExtensionMessage(opts.extensionId, catalog)),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
// Apply the optional --version override (drives both the pin written and the bump decision).
|
|
50
|
+
const descriptor = applyVersionOverride(resolved, opts.version, warnings);
|
|
51
|
+
emitProgress(opts.onProgress, {
|
|
52
|
+
phase: 'start',
|
|
53
|
+
message: `Installing extension ${descriptor.packageId}${hasVersion(descriptor) ? ` ${descriptor.version}` : ''} into ${projectPath}`,
|
|
54
|
+
});
|
|
55
|
+
const csprojPath = findConsumerCsproj(projectPath, warnings);
|
|
56
|
+
if (csprojPath === null) {
|
|
57
|
+
const message = 'No project .csproj found at the project root — open this addon inside a Godot C# project to install extensions. ' +
|
|
58
|
+
`Create one (e.g. \`godot-cli create-project --dotnet\`) and add the ${descriptor.packageId} PackageReference.`;
|
|
59
|
+
emitProgress(opts.onProgress, { phase: 'done', message: 'No project .csproj — nothing installed.' });
|
|
60
|
+
return {
|
|
61
|
+
kind: 'success',
|
|
62
|
+
success: true,
|
|
63
|
+
outcome: 'no-project',
|
|
64
|
+
changed: false,
|
|
65
|
+
rebuildRequired: false,
|
|
66
|
+
extensionId: opts.extensionId,
|
|
67
|
+
packageId: descriptor.packageId,
|
|
68
|
+
fromVersion: null,
|
|
69
|
+
toVersion: hasVersion(descriptor) ? descriptor.version : null,
|
|
70
|
+
message,
|
|
71
|
+
warnings,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
const before = fs.readFileSync(csprojPath, 'utf-8');
|
|
75
|
+
let plan;
|
|
76
|
+
try {
|
|
77
|
+
plan = planExtensionInstall(descriptor, before);
|
|
78
|
+
}
|
|
79
|
+
catch (err) {
|
|
80
|
+
if (err instanceof CsprojParseError) {
|
|
81
|
+
return {
|
|
82
|
+
kind: 'failure',
|
|
83
|
+
success: false,
|
|
84
|
+
warnings,
|
|
85
|
+
error: new Error(`Could not edit the project .csproj: ${err.message}`),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
throw err;
|
|
89
|
+
}
|
|
90
|
+
if (plan.action === 'noop') {
|
|
91
|
+
emitProgress(opts.onProgress, { phase: 'done', message: `${descriptor.packageId} is already up to date.` });
|
|
92
|
+
return {
|
|
93
|
+
kind: 'success',
|
|
94
|
+
success: true,
|
|
95
|
+
outcome: 'already-up-to-date',
|
|
96
|
+
changed: false,
|
|
97
|
+
rebuildRequired: false,
|
|
98
|
+
extensionId: opts.extensionId,
|
|
99
|
+
packageId: descriptor.packageId,
|
|
100
|
+
fromVersion: plan.fromVersion,
|
|
101
|
+
toVersion: plan.toVersion,
|
|
102
|
+
csprojPath,
|
|
103
|
+
message: `${descriptor.name} is already installed and up to date.`,
|
|
104
|
+
warnings,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
fs.writeFileSync(csprojPath, plan.resultingCsproj);
|
|
108
|
+
emitProgress(opts.onProgress, {
|
|
109
|
+
phase: 'csproj-patched',
|
|
110
|
+
message: `${plan.action === 'add' ? 'Added' : 'Updated'} ${descriptor.packageId} in ${csprojPath}`,
|
|
111
|
+
csprojPath,
|
|
112
|
+
});
|
|
113
|
+
emitProgress(opts.onProgress, { phase: 'done', message: 'Extension installed — rebuild solutions to restore.' });
|
|
114
|
+
const message = plan.action === 'add'
|
|
115
|
+
? // Report the version actually written (the pin, or the "*" float marker), not the descriptor's
|
|
116
|
+
// pin presence — an unpinned add now writes Version="*".
|
|
117
|
+
`Added ${descriptor.packageId}${plan.toVersion ? ` ${plan.toVersion}` : ''}. Rebuild solutions to restore and compile the extension.`
|
|
118
|
+
: `Updated ${descriptor.packageId} to ${plan.toVersion}. Rebuild solutions to restore the new version.`;
|
|
119
|
+
return {
|
|
120
|
+
kind: 'success',
|
|
121
|
+
success: true,
|
|
122
|
+
outcome: plan.action === 'add' ? 'added' : 'updated',
|
|
123
|
+
changed: true,
|
|
124
|
+
rebuildRequired: true,
|
|
125
|
+
extensionId: opts.extensionId,
|
|
126
|
+
packageId: descriptor.packageId,
|
|
127
|
+
fromVersion: plan.fromVersion,
|
|
128
|
+
toVersion: plan.toVersion,
|
|
129
|
+
csprojPath,
|
|
130
|
+
message,
|
|
131
|
+
warnings,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
catch (err) {
|
|
135
|
+
return {
|
|
136
|
+
kind: 'failure',
|
|
137
|
+
success: false,
|
|
138
|
+
warnings,
|
|
139
|
+
error: err instanceof Error ? err : new Error(String(err)),
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
/** Return a descriptor with the `--version` override applied (empty/whitespace override is ignored). */
|
|
144
|
+
function applyVersionOverride(descriptor, version, warnings) {
|
|
145
|
+
const v = (version ?? '').trim();
|
|
146
|
+
if (v === '')
|
|
147
|
+
return descriptor;
|
|
148
|
+
if (descriptor.version !== null && descriptor.version !== v) {
|
|
149
|
+
warnings.push(`--version ${v} overrides the catalog pin ${descriptor.packageId}@${descriptor.version} for this install.`);
|
|
150
|
+
}
|
|
151
|
+
return { ...descriptor, version: v };
|
|
152
|
+
}
|
|
153
|
+
/** A clear "unknown extension" error that lists what IS installable (or says the catalog is empty). */
|
|
154
|
+
function unknownExtensionMessage(id, catalog) {
|
|
155
|
+
if (catalog.length === 0) {
|
|
156
|
+
return (`Unknown extension "${id}". The Godot-MCP extension catalog is currently empty ` +
|
|
157
|
+
'(no extension packages have been published yet), so there is nothing to install.');
|
|
158
|
+
}
|
|
159
|
+
const available = catalog.map((d) => d.packageId).join(', ');
|
|
160
|
+
return `Unknown extension "${id}". Available extensions: ${available}.`;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Find the consumer's `.csproj` (the one Godot compiles every `.cs` into) — the single
|
|
164
|
+
* `*.csproj` at the project root. When several exist, pick the first alphabetically and
|
|
165
|
+
* warn (they all compile into the same Godot assembly). Returns null when none exist
|
|
166
|
+
* (a GDScript-only project). Mirrors `install-plugin`'s `findConsumerCsproj`.
|
|
167
|
+
*/
|
|
168
|
+
function findConsumerCsproj(projectPath, warnings) {
|
|
169
|
+
let names;
|
|
170
|
+
try {
|
|
171
|
+
names = fs.readdirSync(projectPath).filter((n) => n.toLowerCase().endsWith('.csproj'));
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
if (names.length === 0)
|
|
177
|
+
return null;
|
|
178
|
+
names.sort();
|
|
179
|
+
if (names.length > 1) {
|
|
180
|
+
warnings.push(`Multiple .csproj files found at the project root (${names.join(', ')}); patched ${names[0]}. ` +
|
|
181
|
+
'If a different one is the Godot project, add the extension PackageReference to it as well.');
|
|
182
|
+
}
|
|
183
|
+
return path.join(projectPath, names[0]);
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=install-extension.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-extension.js","sourceRoot":"","sources":["../../src/lib/install-extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import { GODOT_MCP_PLUGIN_PATH, projectGodotPath as resolveProjectGodotPath, togglePluginInText, } from '../utils/project-godot.js';
|
|
4
|
-
import { addAddonPackageReferences } from '../utils/csproj-deps.js';
|
|
4
|
+
import { addAddonPackageReferences, addAddonEmbeddedResources } from '../utils/csproj-deps.js';
|
|
5
5
|
import { ADDON_PACKAGE_REFERENCES } from '../utils/addon-deps.js';
|
|
6
6
|
import { addonDownloadUrl, assertTrustedDownloadUrl, } from '../utils/addon-source.js';
|
|
7
7
|
import { parseZip } from '../utils/unzip.js';
|
|
@@ -229,37 +229,49 @@ function extractAddonEntries(entries, projectPath, addonDir) {
|
|
|
229
229
|
}
|
|
230
230
|
/**
|
|
231
231
|
* Find the consumer's `.csproj` (the one Godot compiles the addon into) and add
|
|
232
|
-
* the
|
|
233
|
-
*
|
|
232
|
+
* the addon's NuGet PackageReferences AND the EmbeddedResource(s) it needs,
|
|
233
|
+
* idempotently and single-sourced from the addon's own pins/embeds. The csproj is
|
|
234
|
+
* the single `*.csproj` at the project root (the `--dotnet` scaffold writes
|
|
234
235
|
* `<AssemblyName>.csproj` there). When there is no csproj (a GDScript-only
|
|
235
236
|
* project), the patch is skipped with a warning — the addon's C# cannot compile
|
|
236
237
|
* without one, but that is the consumer's project shape to fix.
|
|
238
|
+
*
|
|
239
|
+
* The EmbeddedResource is as load-bearing as the NuGet pins: without it the
|
|
240
|
+
* pure-managed `GodotExtensionRegistry` reads no embedded catalog and the consumer
|
|
241
|
+
* gets an EMPTY Extensions panel (issue #246). Both edits are applied in one write.
|
|
237
242
|
*/
|
|
238
243
|
function patchConsumerCsproj(projectPath, warnings, onProgress) {
|
|
239
244
|
const csprojPath = findConsumerCsproj(projectPath, warnings);
|
|
240
245
|
if (csprojPath === null) {
|
|
241
246
|
warnings.push('No .csproj found at the project root — the godot_mcp addon is C# and needs a Godot.NET.Sdk project. ' +
|
|
242
|
-
`Create one (e.g. \`godot-cli create-project --dotnet\`) and add the ${ADDON_PACKAGE_REFERENCES.map((r) => r.id).join(' + ')} PackageReferences.`);
|
|
243
|
-
return { changed: false, packages: [] };
|
|
247
|
+
`Create one (e.g. \`godot-cli create-project --dotnet\`) and add the ${ADDON_PACKAGE_REFERENCES.map((r) => r.id).join(' + ')} PackageReferences + the EmbeddedResource for the extension catalog.`);
|
|
248
|
+
return { changed: false, packages: [], embeds: [] };
|
|
244
249
|
}
|
|
245
250
|
const before = fs.readFileSync(csprojPath, 'utf-8');
|
|
246
|
-
const
|
|
247
|
-
|
|
248
|
-
|
|
251
|
+
const pkgPatched = addAddonPackageReferences(before);
|
|
252
|
+
const embedPatched = addAddonEmbeddedResources(pkgPatched.text);
|
|
253
|
+
const changed = pkgPatched.changed || embedPatched.changed;
|
|
254
|
+
if (changed) {
|
|
255
|
+
fs.writeFileSync(csprojPath, embedPatched.text);
|
|
249
256
|
emitProgress(onProgress, {
|
|
250
257
|
phase: 'csproj-patched',
|
|
251
|
-
message: `Added addon PackageReferences to ${csprojPath}`,
|
|
258
|
+
message: `Added addon PackageReferences + EmbeddedResource to ${csprojPath}`,
|
|
252
259
|
csprojPath,
|
|
253
260
|
});
|
|
254
261
|
}
|
|
255
262
|
return {
|
|
256
263
|
csprojPath,
|
|
257
|
-
changed
|
|
258
|
-
packages:
|
|
264
|
+
changed,
|
|
265
|
+
packages: pkgPatched.changes.map((c) => ({
|
|
259
266
|
id: c.id,
|
|
260
267
|
action: c.action,
|
|
261
268
|
version: c.version,
|
|
262
269
|
})),
|
|
270
|
+
embeds: embedPatched.changes.map((c) => ({
|
|
271
|
+
include: c.include,
|
|
272
|
+
action: c.action,
|
|
273
|
+
logicalName: c.logicalName,
|
|
274
|
+
})),
|
|
263
275
|
};
|
|
264
276
|
}
|
|
265
277
|
/** The single `*.csproj` directly at the project root, or null when none/ambiguous. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-plugin.js","sourceRoot":"","sources":["../../src/lib/install-plugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install-plugin.js","sourceRoot":"","sources":["../../src/lib/install-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,gBAAgB,IAAI,uBAAuB,EAC3C,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAC/F,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EACL,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAiB,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAWtD,6DAA6D;AAC7D,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAEvD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAA0B;IAC5D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAClB,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,KAAK;gBACd,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;gBAC5C,QAAQ;gBACR,KAAK,EAAE,SAAS,CAAC,KAAK;aACvB,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;QAEpD,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE;YAC5B,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,mCAAmC,WAAW,EAAE;SAC1D,CAAC,CAAC;QAEH,iEAAiE;QACjE,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QAExE,yEAAyE;QACzE,MAAM,MAAM,GAAG,mBAAmB,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3E,yCAAyC;QACzC,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC;QACtE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YACjD,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE;gBAC5B,KAAK,EAAE,kBAAkB;gBACzB,OAAO,EAAE,SAAS,gBAAgB,EAAE;gBACpC,YAAY,EAAE,gBAAgB;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,4BAA4B,EAAE,CAAC,CAAC;QAExF,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS;YACnC,gBAAgB;YAChB,cAAc,EAAE,OAAO,CAAC,OAAO;YAC/B,WAAW;YACX,MAAM;YACN,QAAQ;SACT,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,QAAQ;YACR,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC3D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,gBAAgB,CAC7B,WAAmB,EACnB,IAA0B,EAC1B,QAAkB;IAElB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAEvD,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;YACtD,QAAQ,CAAC,IAAI,CACX,+BAA+B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,mFAAmF,CACpJ,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QACpD,MAAM,SAAS,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,kBAAkB,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACtE,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE;YAC5B,KAAK,EAAE,oBAAoB;YAC3B,OAAO,EAAE,qBAAqB,SAAS,EAAE;YACzC,QAAQ;YACR,MAAM,EAAE,OAAO;SAChB,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAClD,CAAC;IAED,6EAA6E;IAC7E,mEAAmE;IACnE,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,uGAAuG,CACxG,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtC,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,wCAAwC;IAEvE,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE;QAC5B,KAAK,EAAE,mBAAmB;QAC1B,OAAO,EAAE,qBAAqB,OAAO,SAAS,GAAG,EAAE;QACnD,GAAG;KACJ,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,UAAU,CAAC,KAAK,CAAC;IACrD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,4BAA4B,OAAO,UAAU,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,SAAS,GAAG,IAAI;YACjG,uBAAuB,OAAO,6DAA6D,CAC9F,CAAC;IACJ,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAE1D,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC,CAAC;IAC9F,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClC,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAEpD,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE;QAC5B,KAAK,EAAE,oBAAoB;QAC3B,OAAO,EAAE,mCAAmC,QAAQ,EAAE;QACtD,QAAQ;QACR,MAAM,EAAE,UAAU;KACnB,CAAC,CAAC;IACH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;AAC5D,CAAC;AAED,uFAAuF;AACvF,SAAS,qBAAqB,CAAC,MAAc;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,+EAA+E;IAC/E,4CAA4C;IAC5C,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QACrD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC1D,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,IAAI,KAAK,CACb,YAAY,QAAQ,0FAA0F,CAC/G,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CACzB,WAAmB,EACnB,QAAgB,EAChB,IAA+B;IAE/B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,4BAA4B,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACnG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,IAAI,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,CAAC;QACd,8DAA8D;QAC9D,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACpC,CAAC;YAAS,CAAC;QACT,0DAA0D;QAC1D,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CACzB,SAAiB,EACjB,WAAmB,EACnB,QAAgB,EAChB,UAA6B;IAE7B,YAAY,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,sBAAsB,SAAS,EAAE,EAAE,CAAC,CAAC;IACpG,kBAAkB,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;QACpD,EAAE,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,8BAA8B,CAAC,CAAC;QAC1G,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,OAAmB,EAAE,WAAmB,EAAE,QAAgB;IACrF,kBAAkB,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,EAAE;QACpD,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,kDAAkD;YAClD,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,SAAS;YAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5C,IAAI,GAAG,KAAK,EAAE;gBAAE,SAAS,CAAC,uBAAuB;YAEjD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YAC1C,oDAAoD;YACpD,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACjE,MAAM,IAAI,KAAK,CAAC,qDAAqD,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACrF,CAAC;YACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;gBACtB,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1C,SAAS;YACX,CAAC;YACD,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACxD,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,GAAG,KAAK,YAAY;gBAAE,cAAc,GAAG,IAAI,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CACb,wHAAwH,CACzH,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,mBAAmB,CAC1B,WAAmB,EACnB,QAAkB,EAClB,UAA6B;IAE7B,MAAM,UAAU,GAAG,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC7D,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,QAAQ,CAAC,IAAI,CACX,sGAAsG;YACpG,uEAAuE,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,sEAAsE,CACrM,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACtD,CAAC;IAED,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,yBAAyB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC;IAC3D,IAAI,OAAO,EAAE,CAAC;QACZ,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;QAChD,YAAY,CAAC,UAAU,EAAE;YACvB,KAAK,EAAE,gBAAgB;YACvB,OAAO,EAAE,uDAAuD,UAAU,EAAE;YAC5E,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,UAAU;QACV,OAAO;QACP,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,OAAO,EAAE,CAAC,CAAC,OAAO;SACnB,CAAC,CAAC;QACH,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,WAAW,EAAE,CAAC,CAAC,WAAW;SAC3B,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,uFAAuF;AACvF,SAAS,kBAAkB,CAAC,WAAmB,EAAE,QAAkB;IACjE,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACzF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,gFAAgF;IAChF,gFAAgF;IAChF,gFAAgF;IAChF,mEAAmE;IACnE,KAAK,CAAC,IAAI,EAAE,CAAC;IACb,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,QAAQ,CAAC,IAAI,CACX,qDAAqD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,IAAI;YAC7F,yFAAyF,CAC5F,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAyB;IAC1D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAClB,OAAO;gBACL,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,KAAK;gBACd,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;gBAC5C,QAAQ;gBACR,KAAK,EAAE,SAAS,CAAC,KAAK;aACvB,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,SAAS,CAAC;QAEpD,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE;YAC5B,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,iCAAiC,WAAW,EAAE;SACxD,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC;QAEtE,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAChD,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE;gBAC5B,KAAK,EAAE,kBAAkB;gBACzB,OAAO,EAAE,SAAS,gBAAgB,EAAE;gBACpC,YAAY,EAAE,gBAAgB;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC,CAAC;QAEvF,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,MAAM,CAAC,IAAI,KAAK,SAAS;YAClC,gBAAgB;YAChB,cAAc,EAAE,MAAM,CAAC,OAAO;YAC9B,QAAQ;SACT,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO;YACL,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,KAAK;YACd,QAAQ;YACR,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC3D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|