ue-mcp 1.3.4 → 1.3.6-beta.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/README.md +2 -0
- package/dist/context-cli.js +1 -1
- package/dist/context-cli.js.map +1 -1
- package/dist/deployer.d.ts +35 -0
- package/dist/deployer.js +88 -13
- package/dist/deployer.js.map +1 -1
- package/dist/editor-control.d.ts +26 -1
- package/dist/editor-control.js +71 -2
- package/dist/editor-control.js.map +1 -1
- package/dist/flow/guard-schema.d.ts +204 -0
- package/dist/flow/guard-schema.js +60 -0
- package/dist/flow/guard-schema.js.map +1 -0
- package/dist/flow/guard.d.ts +20 -0
- package/dist/flow/guard.js +32 -0
- package/dist/flow/guard.js.map +1 -1
- package/dist/flow/guards.d.ts +43 -0
- package/dist/flow/guards.js +139 -0
- package/dist/flow/guards.js.map +1 -0
- package/dist/flow/loader.js +13 -0
- package/dist/flow/loader.js.map +1 -1
- package/dist/flow/schema.d.ts +99 -0
- package/dist/flow/schema.js +2 -0
- package/dist/flow/schema.js.map +1 -1
- package/dist/flow/write-methods.d.ts +16 -0
- package/dist/flow/write-methods.js +18 -3
- package/dist/flow/write-methods.js.map +1 -1
- package/dist/index.js +40 -13
- package/dist/index.js.map +1 -1
- package/dist/plugin/loader.d.ts +12 -0
- package/dist/plugin/loader.js +8 -0
- package/dist/plugin/loader.js.map +1 -1
- package/dist/plugin/manifest.d.ts +99 -0
- package/dist/plugin/manifest.js +2 -0
- package/dist/plugin/manifest.js.map +1 -1
- package/dist/session.js +1 -1
- package/dist/session.js.map +1 -1
- package/dist/tool-counts.json +2 -2
- package/dist/tools/level.js +2 -0
- package/dist/tools/level.js.map +1 -1
- package/package.json +7 -4
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/HandlerJsonProperty.h +4 -2
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/LevelHandlers.cpp +8 -5
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Tests/BridgeProtocolTests.cpp +1 -1
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Public/HandlerUtils.h +6 -5
- package/plugin/ue_mcp_bridge/UE_MCP_Bridge.uplugin +1 -1
- package/dist/flow/task-guards.d.ts +0 -13
- package/dist/flow/task-guards.js +0 -96
- package/dist/flow/task-guards.js.map +0 -1
package/README.md
CHANGED
|
@@ -52,6 +52,8 @@ Then talk to your AI in plain English:
|
|
|
52
52
|
npx ue-mcp doctor
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
+
Documentation lives at **https://ue-mcp.com/docs/**, one page per file in `docs/`, published automatically on release. Link there rather than to a file in this repository.
|
|
56
|
+
|
|
55
57
|
Most first-run failures are one of three things: the editor hasn't been restarted since `init`, the bridge plugin failed to compile (check the editor's Output Log for `UE_MCP_Bridge`), or the editor is open on a different project than the one configured. See [Troubleshooting](https://ue-mcp.com/docs/troubleshooting/).
|
|
56
58
|
|
|
57
59
|
### Manual Configuration
|
package/dist/context-cli.js
CHANGED
|
@@ -120,7 +120,7 @@ function main() {
|
|
|
120
120
|
console.log("");
|
|
121
121
|
console.log(` ${BOLD}${CYAN}Context strategy${RESET}: ${color}${before}${RESET}`);
|
|
122
122
|
console.log(` ${DIM}${configPath}${RESET}`);
|
|
123
|
-
console.log(` ${DIM}Options: full (default) | lean | micro -> ue-mcp context <
|
|
123
|
+
console.log(` ${DIM}Options: full (default) | lean | micro -> ue-mcp context <strategy>${RESET}`);
|
|
124
124
|
console.log("");
|
|
125
125
|
return;
|
|
126
126
|
}
|
package/dist/context-cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-cli.js","sourceRoot":"","sources":["../src/context-cli.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAErE;;;;;;;GAOG;AAEH,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,IAAI,GAAG,SAAS,CAAC;AACvB,MAAM,GAAG,GAAG,SAAS,CAAC;AACtB,MAAM,KAAK,GAAG,UAAU,CAAC;AACzB,MAAM,GAAG,GAAG,UAAU,CAAC;AACvB,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,MAAM,MAAM,GAAG,UAAU,CAAC;AAE1B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE7D,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;IACV,IAAI,GAAG,IAAI,iBAAiB,KAAK;;IAEjC,IAAI,SAAS,KAAK;;;;;;;;;;;CAWrB,CAAC,CAAC;AACH,CAAC;AAED,SAAS,SAAS;IAChB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,MAAM,CAAC,EAAE,CAAC;QACnE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IACD,0EAA0E;IAC1E,2EAA2E;IAC3E,mEAAmE;IACnE,IAAI,MAAgD,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC;IACZ,GAAG,GAAG,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK;CACrE,CAAC,CAAC;QACC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IACjE,IAAI,MAA0B,CAAC;IAC/B,IAAI,UAAU,GAAuB,MAAM,CAAC,WAAW,CAAC;IACxD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAAE,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;aACjE,IAAI,CAAC,UAAU;YAAE,UAAU,GAAG,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,IAAI,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,cAAc,CAAC,UAAmB;IACzC,MAAM,UAAU,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAa,CAAC;IAC3E,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACtF,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrD,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;oBAAE,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,QAAQ,CAAC,UAAkB;IAClC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,IAAI,CAAC;QACH,OAAQ,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAA6B,IAAI,EAAE,CAAC;IAC5F,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,8DAA8D,KAAK,EAAE,CAAC,CAAC;QAC9F,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,QAAiC;IACxD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAoD,CAAC;IACpF,MAAM,CAAC,GAAG,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC;IACnC,OAAO,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AAClE,CAAC;AAED,SAAS,IAAI;IACX,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC;QACT,SAAS,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IAED,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,sBAAsB,KAAK,oDAAoD,CAAC,CAAC;QACvG,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,kBAAkB,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,oBAAoB,KAAK,IAAI,CAAC,CAAC;QAC5G,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC;IAEpB,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,IAAI,mBAAmB,KAAK,KAAK,KAAK,GAAG,MAAM,GAAG,KAAK,EAAE,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,GAAG,UAAU,GAAG,KAAK,EAAE,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"context-cli.js","sourceRoot":"","sources":["../src/context-cli.ts"],"names":[],"mappings":"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"}
|
package/dist/deployer.d.ts
CHANGED
|
@@ -48,4 +48,39 @@ export declare function deploySummary(r: DeployResult): string;
|
|
|
48
48
|
*/
|
|
49
49
|
export declare function attach(context: ProjectContext): AttachResult;
|
|
50
50
|
export declare function attachSummary(r: AttachResult): string;
|
|
51
|
+
/**
|
|
52
|
+
* Which entries in the deployed tree are stale, given what the source has.
|
|
53
|
+
*
|
|
54
|
+
* Exported so the mirror rule can be tested as the rule rather than as a copy
|
|
55
|
+
* of it. "Never hand-copy a file into the test project" is a property of this
|
|
56
|
+
* function: anything the source does not name, and that is not a build
|
|
57
|
+
* artifact directory, is removed on the next deploy, so a hand-placed file
|
|
58
|
+
* never survives to be compiled.
|
|
59
|
+
*
|
|
60
|
+
* Name comparison follows the filesystem. On Windows and macOS `Handlers.cpp`
|
|
61
|
+
* and `handlers.cpp` are one file, and treating them as two deletes the file
|
|
62
|
+
* that was just copied in.
|
|
63
|
+
*/
|
|
64
|
+
export declare function staleDeployedEntries(destNames: string[], sourceNames: Set<string>, artifactDirs: Set<string>, caseInsensitiveFs?: boolean): string[];
|
|
65
|
+
/**
|
|
66
|
+
* Copy the authored plugin tree over the deployed one, and leave the deployed
|
|
67
|
+
* tree in a state UnrealBuildTool will compile correctly.
|
|
68
|
+
*
|
|
69
|
+
* Exported with both directories as arguments so the whole step, including the
|
|
70
|
+
* Build.cs touch that a new source file depends on, can be driven against real
|
|
71
|
+
* directories. deployCppPlugin resolves the authored tree relative to this
|
|
72
|
+
* module, which no test can redirect.
|
|
73
|
+
*/
|
|
74
|
+
export declare function deployPluginTree(sourcePluginDir: string, targetPluginDir: string): boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Make UnrealBuildTool rescan a module whose file list just changed.
|
|
77
|
+
*
|
|
78
|
+
* UBT caches the source list per module and rebuilds it only when the module's
|
|
79
|
+
* Build.cs is newer than that cache. A new .cpp therefore deploys, compiles
|
|
80
|
+
* into nothing, and every action in it answers "Unknown method" at runtime,
|
|
81
|
+
* from a build that reported success. Touching every Build.cs under the
|
|
82
|
+
* deployed plugin costs nothing on a build where no file was added, because
|
|
83
|
+
* this only runs when one was.
|
|
84
|
+
*/
|
|
85
|
+
export declare function touchBuildRules(pluginDir: string, because?: string[]): string[];
|
|
51
86
|
export declare function findEngineInstall(engineAssociation: string | null): string | null;
|
package/dist/deployer.js
CHANGED
|
@@ -153,16 +153,40 @@ function ensurePythonPlugin(uprojectPath) {
|
|
|
153
153
|
/* ------------------------------------------------------------------ */
|
|
154
154
|
/* C++ Plugin deployment */
|
|
155
155
|
/* ------------------------------------------------------------------ */
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
156
|
+
/**
|
|
157
|
+
* Which entries in the deployed tree are stale, given what the source has.
|
|
158
|
+
*
|
|
159
|
+
* Exported so the mirror rule can be tested as the rule rather than as a copy
|
|
160
|
+
* of it. "Never hand-copy a file into the test project" is a property of this
|
|
161
|
+
* function: anything the source does not name, and that is not a build
|
|
162
|
+
* artifact directory, is removed on the next deploy, so a hand-placed file
|
|
163
|
+
* never survives to be compiled.
|
|
164
|
+
*
|
|
165
|
+
* Name comparison follows the filesystem. On Windows and macOS `Handlers.cpp`
|
|
166
|
+
* and `handlers.cpp` are one file, and treating them as two deletes the file
|
|
167
|
+
* that was just copied in.
|
|
168
|
+
*/
|
|
169
|
+
export function staleDeployedEntries(destNames, sourceNames, artifactDirs, caseInsensitiveFs = process.platform === "win32" || process.platform === "darwin") {
|
|
170
|
+
const key = (name) => (caseInsensitiveFs ? name.toLowerCase() : name);
|
|
171
|
+
return destNames.filter((name) => !artifactDirs.has(name) && !sourceNames.has(key(name)));
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Copy the authored plugin tree over the deployed one, and leave the deployed
|
|
175
|
+
* tree in a state UnrealBuildTool will compile correctly.
|
|
176
|
+
*
|
|
177
|
+
* Exported with both directories as arguments so the whole step, including the
|
|
178
|
+
* Build.cs touch that a new source file depends on, can be driven against real
|
|
179
|
+
* directories. deployCppPlugin resolves the authored tree relative to this
|
|
180
|
+
* module, which no test can redirect.
|
|
181
|
+
*/
|
|
182
|
+
export function deployPluginTree(sourcePluginDir, targetPluginDir) {
|
|
160
183
|
if (!fs.existsSync(sourcePluginDir)) {
|
|
161
184
|
console.error(`[ue-mcp] C++ plugin source not found at ${sourcePluginDir}`);
|
|
162
185
|
return false;
|
|
163
186
|
}
|
|
164
|
-
const targetPluginDir = path.join(pluginsDir, "UE_MCP_Bridge");
|
|
165
187
|
let anyDeployed = false;
|
|
188
|
+
/** Sources that did not exist in the deployed tree before this run. */
|
|
189
|
+
const newSourceFiles = [];
|
|
166
190
|
// Build outputs live in the deployed tree, not the source tree, so they are
|
|
167
191
|
// never copied and never pruned.
|
|
168
192
|
const artifactDirs = new Set(["Binaries", "Intermediate", "Saved"]);
|
|
@@ -190,8 +214,9 @@ function deployCppPlugin(uprojectPath) {
|
|
|
190
214
|
}
|
|
191
215
|
else {
|
|
192
216
|
const srcBytes = fs.readFileSync(srcPath);
|
|
217
|
+
const existed = fs.existsSync(destPath);
|
|
193
218
|
let shouldWrite = true;
|
|
194
|
-
if (
|
|
219
|
+
if (existed) {
|
|
195
220
|
const destBytes = fs.readFileSync(destPath);
|
|
196
221
|
shouldWrite = !srcBytes.equals(destBytes);
|
|
197
222
|
}
|
|
@@ -199,6 +224,15 @@ function deployCppPlugin(uprojectPath) {
|
|
|
199
224
|
fs.writeFileSync(destPath, srcBytes);
|
|
200
225
|
anyDeployed = true;
|
|
201
226
|
}
|
|
227
|
+
// A .cpp that was not here before needs UnrealBuildTool to look again.
|
|
228
|
+
// UBT caches the source list per module and only rebuilds that list
|
|
229
|
+
// when the module's Build.cs is newer than the cache, so a brand new
|
|
230
|
+
// handler file deploys, compiles into nothing, and every action in it
|
|
231
|
+
// answers "Unknown method" at runtime with a build that reported
|
|
232
|
+
// success. Touching Build.cs is what makes the next build see it.
|
|
233
|
+
if (!existed && /\.(cpp|h)$/i.test(entry.name)) {
|
|
234
|
+
newSourceFiles.push(entry.name);
|
|
235
|
+
}
|
|
202
236
|
}
|
|
203
237
|
}
|
|
204
238
|
// Mirror, do not merge. A copy-only sync leaves a file that was deleted or
|
|
@@ -207,13 +241,10 @@ function deployCppPlugin(uprojectPath) {
|
|
|
207
241
|
// for symbols defined twice, once from the new module and once from the
|
|
208
242
|
// stale copy. Also drop the intermediate objects for anything pruned, since
|
|
209
243
|
// UBT links whatever .obj files it finds from an earlier build.
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
const stalePath = path.join(dest, entry.name);
|
|
215
|
-
fs.rmSync(stalePath, { recursive: true, force: true });
|
|
216
|
-
pruneIntermediates(entry.name);
|
|
244
|
+
const stale = staleDeployedEntries(fs.readdirSync(dest).map((n) => n), sourceNames, artifactDirs, caseInsensitiveFs);
|
|
245
|
+
for (const name of stale) {
|
|
246
|
+
fs.rmSync(path.join(dest, name), { recursive: true, force: true });
|
|
247
|
+
pruneIntermediates(name);
|
|
217
248
|
anyDeployed = true;
|
|
218
249
|
}
|
|
219
250
|
}
|
|
@@ -236,8 +267,52 @@ function deployCppPlugin(uprojectPath) {
|
|
|
236
267
|
walk(intermediateRoot);
|
|
237
268
|
}
|
|
238
269
|
copyRecursive(sourcePluginDir, targetPluginDir);
|
|
270
|
+
if (newSourceFiles.length > 0) {
|
|
271
|
+
touchBuildRules(targetPluginDir, newSourceFiles);
|
|
272
|
+
}
|
|
239
273
|
return anyDeployed;
|
|
240
274
|
}
|
|
275
|
+
function deployCppPlugin(uprojectPath) {
|
|
276
|
+
const projectDir = path.dirname(uprojectPath);
|
|
277
|
+
return deployPluginTree(path.resolve(selfDir(), "..", "plugin", "ue_mcp_bridge"), path.join(projectDir, "Plugins", "UE_MCP_Bridge"));
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Make UnrealBuildTool rescan a module whose file list just changed.
|
|
281
|
+
*
|
|
282
|
+
* UBT caches the source list per module and rebuilds it only when the module's
|
|
283
|
+
* Build.cs is newer than that cache. A new .cpp therefore deploys, compiles
|
|
284
|
+
* into nothing, and every action in it answers "Unknown method" at runtime,
|
|
285
|
+
* from a build that reported success. Touching every Build.cs under the
|
|
286
|
+
* deployed plugin costs nothing on a build where no file was added, because
|
|
287
|
+
* this only runs when one was.
|
|
288
|
+
*/
|
|
289
|
+
export function touchBuildRules(pluginDir, because = []) {
|
|
290
|
+
const touched = [];
|
|
291
|
+
const now = new Date();
|
|
292
|
+
const walk = (dir) => {
|
|
293
|
+
if (!fs.existsSync(dir))
|
|
294
|
+
return;
|
|
295
|
+
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
|
|
296
|
+
const full = path.join(dir, entry.name);
|
|
297
|
+
if (entry.isDirectory()) {
|
|
298
|
+
if (entry.name === "Binaries" || entry.name === "Intermediate")
|
|
299
|
+
continue;
|
|
300
|
+
walk(full);
|
|
301
|
+
}
|
|
302
|
+
else if (entry.name.endsWith(".Build.cs")) {
|
|
303
|
+
fs.utimesSync(full, now, now);
|
|
304
|
+
touched.push(full);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
};
|
|
308
|
+
walk(pluginDir);
|
|
309
|
+
if (touched.length > 0 && because.length > 0) {
|
|
310
|
+
console.error(`[ue-mcp] ${because.length} new source file(s) deployed `
|
|
311
|
+
+ `(${because.slice(0, 3).join(", ")}${because.length > 3 ? ", ..." : ""}); `
|
|
312
|
+
+ "touched Build.cs so UnrealBuildTool rescans the module.");
|
|
313
|
+
}
|
|
314
|
+
return touched;
|
|
315
|
+
}
|
|
241
316
|
function ensureCppPluginEnabled(uprojectPath) {
|
|
242
317
|
const raw = fs.readFileSync(uprojectPath, "utf-8");
|
|
243
318
|
const root = JSON.parse(raw);
|
package/dist/deployer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployer.js","sourceRoot":"","sources":["../src/deployer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deployer.js","sourceRoot":"","sources":["../src/deployer.ts"],"names":[],"mappings":"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"}
|
package/dist/editor-control.d.ts
CHANGED
|
@@ -116,7 +116,7 @@ export declare function startEditor(project: ProjectContext, timeoutSeconds?: nu
|
|
|
116
116
|
* run when the editor was LAUNCHED with it: it is read at startup, so
|
|
117
117
|
* turning it on over the socket afterwards is too late, exactly like the
|
|
118
118
|
* dialog policy above. Without it those cases skip and say why, which
|
|
119
|
-
* leaves the sharpest part of the
|
|
119
|
+
* leaves the sharpest part of the suite unexercised by default.
|
|
120
120
|
*/
|
|
121
121
|
paramEcho?: boolean;
|
|
122
122
|
/**
|
|
@@ -401,6 +401,7 @@ export interface RestartEditorResult {
|
|
|
401
401
|
}
|
|
402
402
|
/**
|
|
403
403
|
* Stop the editor by asking it to quit ITSELF through the bridge. ue-mcp NEVER
|
|
404
|
+
* lint-prose-allow: no-kill this comment states what the code refuses to do
|
|
404
405
|
* issues an OS kill: `taskkill /IM UnrealEditor.exe` matches by image name and
|
|
405
406
|
* would also close the user's other editors (e.g. their real project).
|
|
406
407
|
* Success is confirmed by the project's own bridge port going quiet, so it is
|
|
@@ -464,6 +465,30 @@ export interface BuildResult {
|
|
|
464
465
|
message: string;
|
|
465
466
|
exitCode: number | null;
|
|
466
467
|
}
|
|
468
|
+
/**
|
|
469
|
+
* How many compiles this machine can run at once without running out of room.
|
|
470
|
+
*
|
|
471
|
+
* UnrealBuildTool defaults to one process per physical core. Each one maps the
|
|
472
|
+
* Unreal precompiled header, which costs several GB, so on a machine with less
|
|
473
|
+
* memory than cores x PCH the compiler does not queue: it fails outright with
|
|
474
|
+
* C3859 ("failed to create virtual memory for PCH") or C1076, and the build
|
|
475
|
+
* dies after several minutes of work. The failure names a paging file, so it
|
|
476
|
+
* reads as a misconfigured machine rather than a parallelism default that does
|
|
477
|
+
* not fit the hardware.
|
|
478
|
+
*
|
|
479
|
+
* This is not a knob anybody should have to find. The number is computed from
|
|
480
|
+
* the machine and passed to every build, and the cap is only applied when it
|
|
481
|
+
* is below what UnrealBuildTool would have chosen, so a machine with headroom
|
|
482
|
+
* builds exactly as it did before.
|
|
483
|
+
*
|
|
484
|
+
* `UE_MCP_MAX_PARALLEL_ACTIONS` overrides it, for a machine whose real ceiling
|
|
485
|
+
* this estimate gets wrong in either direction.
|
|
486
|
+
*/
|
|
487
|
+
export declare function safeParallelActions(totalMemBytes?: number, cores?: number): number;
|
|
488
|
+
/** Whether a build died for want of memory rather than for anything in the code. */
|
|
489
|
+
export declare function ranOutOfMemory(output: string): boolean;
|
|
490
|
+
/** What to tell somebody whose build ran out of room, in the terms they hit it in. */
|
|
491
|
+
export declare function describeMemoryFailure(parallel: number, totalMemBytes?: number): string;
|
|
467
492
|
export interface BuildOptions {
|
|
468
493
|
onOutput?: (line: string) => void;
|
|
469
494
|
/** Development (default), DebugGame, Shipping, Test. */
|
package/dist/editor-control.js
CHANGED
|
@@ -2,6 +2,7 @@ import * as fs from "node:fs";
|
|
|
2
2
|
import * as path from "node:path";
|
|
3
3
|
import { spawn } from "child_process";
|
|
4
4
|
import * as net from "net";
|
|
5
|
+
import * as os from "node:os";
|
|
5
6
|
import WebSocket from "ws";
|
|
6
7
|
import { readUeMcpConfig } from "./project.js";
|
|
7
8
|
import { EngineResolutionError, selectEngine, trySelectEngine } from "./engine-root.js";
|
|
@@ -1117,6 +1118,7 @@ function unsavedWorkRefusal(dirty, answeredByUser, unconfirmedPress) {
|
|
|
1117
1118
|
}
|
|
1118
1119
|
/**
|
|
1119
1120
|
* Stop the editor by asking it to quit ITSELF through the bridge. ue-mcp NEVER
|
|
1121
|
+
* lint-prose-allow: no-kill this comment states what the code refuses to do
|
|
1120
1122
|
* issues an OS kill: `taskkill /IM UnrealEditor.exe` matches by image name and
|
|
1121
1123
|
* would also close the user's other editors (e.g. their real project).
|
|
1122
1124
|
* Success is confirmed by the project's own bridge port going quiet, so it is
|
|
@@ -1533,6 +1535,56 @@ function getPlatformString() {
|
|
|
1533
1535
|
return "Mac";
|
|
1534
1536
|
return "Linux";
|
|
1535
1537
|
}
|
|
1538
|
+
/**
|
|
1539
|
+
* How many compiles this machine can run at once without running out of room.
|
|
1540
|
+
*
|
|
1541
|
+
* UnrealBuildTool defaults to one process per physical core. Each one maps the
|
|
1542
|
+
* Unreal precompiled header, which costs several GB, so on a machine with less
|
|
1543
|
+
* memory than cores x PCH the compiler does not queue: it fails outright with
|
|
1544
|
+
* C3859 ("failed to create virtual memory for PCH") or C1076, and the build
|
|
1545
|
+
* dies after several minutes of work. The failure names a paging file, so it
|
|
1546
|
+
* reads as a misconfigured machine rather than a parallelism default that does
|
|
1547
|
+
* not fit the hardware.
|
|
1548
|
+
*
|
|
1549
|
+
* This is not a knob anybody should have to find. The number is computed from
|
|
1550
|
+
* the machine and passed to every build, and the cap is only applied when it
|
|
1551
|
+
* is below what UnrealBuildTool would have chosen, so a machine with headroom
|
|
1552
|
+
* builds exactly as it did before.
|
|
1553
|
+
*
|
|
1554
|
+
* `UE_MCP_MAX_PARALLEL_ACTIONS` overrides it, for a machine whose real ceiling
|
|
1555
|
+
* this estimate gets wrong in either direction.
|
|
1556
|
+
*/
|
|
1557
|
+
export function safeParallelActions(totalMemBytes = os.totalmem(), cores = os.cpus().length) {
|
|
1558
|
+
const override = Number(process.env.UE_MCP_MAX_PARALLEL_ACTIONS);
|
|
1559
|
+
if (Number.isInteger(override) && override > 0)
|
|
1560
|
+
return override;
|
|
1561
|
+
// Measured against Unreal 5.8 on Windows: a PCH compile peaks around 5 GB,
|
|
1562
|
+
// and the OS plus the build server want a few GB that the compiles cannot
|
|
1563
|
+
// have. Both are deliberately pessimistic, because being one process under
|
|
1564
|
+
// costs a little wall clock and being one process over costs the whole build.
|
|
1565
|
+
const GB = 1024 ** 3;
|
|
1566
|
+
const PER_COMPILE_GB = 5;
|
|
1567
|
+
const RESERVED_GB = 4;
|
|
1568
|
+
const usableGB = totalMemBytes / GB - RESERVED_GB;
|
|
1569
|
+
const fits = Math.floor(usableGB / PER_COMPILE_GB);
|
|
1570
|
+
return Math.max(1, Math.min(cores, fits));
|
|
1571
|
+
}
|
|
1572
|
+
/** Whether a build died for want of memory rather than for anything in the code. */
|
|
1573
|
+
export function ranOutOfMemory(output) {
|
|
1574
|
+
return (output.includes("C3859")
|
|
1575
|
+
|| output.includes("C1076")
|
|
1576
|
+
|| output.includes("paging file is too small")
|
|
1577
|
+
|| output.includes("internal heap limit reached"));
|
|
1578
|
+
}
|
|
1579
|
+
/** What to tell somebody whose build ran out of room, in the terms they hit it in. */
|
|
1580
|
+
export function describeMemoryFailure(parallel, totalMemBytes = os.totalmem()) {
|
|
1581
|
+
const gb = Math.round(totalMemBytes / 1024 ** 3);
|
|
1582
|
+
return (`The build ran out of memory rather than hitting anything wrong in the code. This machine has `
|
|
1583
|
+
+ `${gb} GB of RAM and the compile was already limited to ${parallel} parallel `
|
|
1584
|
+
+ `${parallel === 1 ? "process" : "processes"}, each of which needs several GB for Unreal's `
|
|
1585
|
+
+ "precompiled header. Lower it further with UE_MCP_MAX_PARALLEL_ACTIONS, or give Windows a "
|
|
1586
|
+
+ "larger paging file, and run the build again.");
|
|
1587
|
+
}
|
|
1536
1588
|
/**
|
|
1537
1589
|
* Compile a project's C++ out of process, with UnrealBuildTool.
|
|
1538
1590
|
*
|
|
@@ -1574,7 +1626,12 @@ export async function buildProject(projectPath, opts = {}) {
|
|
|
1574
1626
|
// plainly there - while the same command pasted into a terminal worked,
|
|
1575
1627
|
// because the shell removed them first.
|
|
1576
1628
|
const commonArgs = [target, platform, configuration];
|
|
1577
|
-
|
|
1629
|
+
// Only when it is below what UnrealBuildTool would have picked, so a machine
|
|
1630
|
+
// with headroom builds exactly as it did before and nobody has to know this
|
|
1631
|
+
// exists.
|
|
1632
|
+
const parallel = safeParallelActions();
|
|
1633
|
+
const parallelArgs = parallel < os.cpus().length ? [`-MaxParallelActions=${parallel}`] : [];
|
|
1634
|
+
const tailArgs = ["-WaitMutex", "-FromMsBuild", ...parallelArgs, ...(opts.clean ? ["-Clean"] : [])];
|
|
1578
1635
|
const windowsArgs = [...commonArgs, `-Project="${resolvedPath}"`, ...tailArgs];
|
|
1579
1636
|
const posixArgs = [...commonArgs, `-Project=${resolvedPath}`, ...tailArgs];
|
|
1580
1637
|
return new Promise((resolve) => {
|
|
@@ -1587,8 +1644,14 @@ export async function buildProject(projectPath, opts = {}) {
|
|
|
1587
1644
|
else {
|
|
1588
1645
|
proc = spawn(buildTool, posixArgs, { stdio: "pipe" });
|
|
1589
1646
|
}
|
|
1647
|
+
// Kept so a failure can be read afterwards. The compiler reports running
|
|
1648
|
+
// out of room as a paging-file problem, which sends people to their
|
|
1649
|
+
// virtual memory settings for what is really a parallelism default that
|
|
1650
|
+
// does not fit the machine.
|
|
1651
|
+
let transcript = "";
|
|
1590
1652
|
const forward = (data) => {
|
|
1591
1653
|
const text = data.toString();
|
|
1654
|
+
transcript += text;
|
|
1592
1655
|
if (opts.onOutput)
|
|
1593
1656
|
opts.onOutput(text);
|
|
1594
1657
|
else
|
|
@@ -1606,7 +1669,13 @@ export async function buildProject(projectPath, opts = {}) {
|
|
|
1606
1669
|
invalidatePluginFreshness(resolvedPath);
|
|
1607
1670
|
resolve(code === 0
|
|
1608
1671
|
? { success: true, exitCode: 0, message: `Build succeeded (${target} ${platform} ${configuration})` }
|
|
1609
|
-
: {
|
|
1672
|
+
: {
|
|
1673
|
+
success: false,
|
|
1674
|
+
exitCode: code,
|
|
1675
|
+
message: ranOutOfMemory(transcript)
|
|
1676
|
+
? describeMemoryFailure(parallel)
|
|
1677
|
+
: `Build failed with exit code ${code}`,
|
|
1678
|
+
});
|
|
1610
1679
|
});
|
|
1611
1680
|
proc.on("error", (err) => {
|
|
1612
1681
|
resolve({ success: false, exitCode: null, message: `Build error: ${err.message}` });
|