ue-mcp 1.3.9-beta.6 → 1.3.9-beta.7
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 +3 -3
- package/dist/tool-counts.json +6 -6
- package/dist/tools/editor.js +1 -0
- package/dist/tools/editor.js.map +1 -1
- package/dist/ue-mcp.default.yml +6 -0
- package/package.json +2 -2
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/EditorHandlers.cpp +2 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/EditorHandlers.h +2 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/EditorHandlers_OpenEditors.cpp +352 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Tests/OpenAssetEditorTests.cpp +136 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/UE_MCP_Bridge.Build.cs +2 -0
- package/plugin/ue_mcp_bridge/UE_MCP_Bridge.uplugin +2 -2
package/README.md
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
[](https://github.com/db-lyon/ue-mcp/stargazers)
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
|
|
8
|
-
**Unreal Engine Model Context Protocol Server** - gives AI assistants deep read/write access to the Unreal Editor through <!-- count:tools -->26<!-- /count --> category tools covering <!-- count:actions -->
|
|
8
|
+
**Unreal Engine Model Context Protocol Server** - gives AI assistants deep read/write access to the Unreal Editor through <!-- count:tools -->26<!-- /count --> category tools covering <!-- count:actions -->1932+<!-- /count --> actions, plus a YAML flow engine for multi-step workflows and an npm plugin system for extending the surface.
|
|
9
9
|
|
|
10
|
-
That total is <!-- count:ownActions -->
|
|
10
|
+
That total is <!-- count:ownActions -->1102+<!-- /count --> actions of ue-mcp's own plus Epic's entire native AI Toolset Registry: on UE 5.8+ its <!-- count:nativeToolActions -->830<!-- /count --> official Unreal tools are called in-process and surfaced as `epic_*` actions in the matching category, Sequencer in `animation`, PCG in `pcg`, static meshes in `asset`.
|
|
11
11
|
|
|
12
12
|
```mermaid
|
|
13
13
|
flowchart LR
|
|
@@ -139,7 +139,7 @@ flows:
|
|
|
139
139
|
flow(action="run", flowName="build_and_check")
|
|
140
140
|
```
|
|
141
141
|
|
|
142
|
-
Every one of the <!-- count:actions -->
|
|
142
|
+
Every one of the <!-- count:actions -->1932+<!-- /count --> actions is also a flow task. Flows support step references, retries, rollback, custom tasks in your own `.js`/`.ts`, and shell steps. See [Flows](https://ue-mcp.com/docs/flows/).
|
|
143
143
|
|
|
144
144
|
## Plugins
|
|
145
145
|
|
package/dist/tool-counts.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"tools": 26,
|
|
3
|
-
"actions":
|
|
4
|
-
"ownActions":
|
|
5
|
-
"bridgeActions":
|
|
3
|
+
"actions": 1932,
|
|
4
|
+
"ownActions": 1102,
|
|
5
|
+
"bridgeActions": 1871,
|
|
6
6
|
"localActions": 61,
|
|
7
7
|
"perTool": {
|
|
8
8
|
"project": 69,
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"niagara": 99,
|
|
18
18
|
"audio": 51,
|
|
19
19
|
"widget": 86,
|
|
20
|
-
"editor":
|
|
20
|
+
"editor": 138,
|
|
21
21
|
"reflection": 19,
|
|
22
22
|
"gameplay": 130,
|
|
23
23
|
"gas": 47,
|
|
@@ -34,6 +34,6 @@
|
|
|
34
34
|
},
|
|
35
35
|
"nativeToolsets": 52,
|
|
36
36
|
"nativeToolActions": 830,
|
|
37
|
-
"generatedAt": "2026-09-
|
|
38
|
-
"version": "1.3.9-beta.
|
|
37
|
+
"generatedAt": "2026-09-20T16:03:43.847Z",
|
|
38
|
+
"version": "1.3.9-beta.7"
|
|
39
39
|
}
|
package/dist/tools/editor.js
CHANGED
|
@@ -388,6 +388,7 @@ export const editorTool = categoryTool("editor", "Editor commands, Python execut
|
|
|
388
388
|
list_dialogs: bp("read", "Read the modal dialog blocking the editor, in full: its exact title, its COMPLETE message text (never truncated - messageTruncated is always false), every button label in the order the dialog lays them out, and a `choices` array pairing each button with the exact editor(respond_to_dialog) call that presses it. When the dialog asks a question per row (the \"Save Content\" prompt is a checkbox per unsaved package), an `items` array reports each tickable row: its index, its label, its cells (asset name, package path, class path) and whether it is currently ticked. No button is marked recommended and none is reordered; choosing is yours. Also reports which armed policy matches and which button that policy would press, if any. `notTreatedAsDialogs` names any window the walk considered and rejected, with the reason: a standalone Message Log or an undocked Output Log is a regular parented window like a dialog is, and used to block every action for the life of the session with no button that could answer it (#1078). A window in that list is NOT blocking anything. Runs even while a dialog is blocking the editor, when every other handler times out, so this is the way to see what the editor is asking. Params: none", "list_dialogs"),
|
|
389
389
|
respond_to_dialog: bp("mutate", "Press one named button on the active modal dialog, releasing the game thread. This is the deliberate way to answer a dialog: read it with editor(list_dialogs) first, then name the button you chose. Runs even while the dialog is blocking the editor. ONLY IN auto MODE. The dialog handling mode decides who answers, and it is enforced here: under interactive the question is put to the person in an elicitation form (raised on the call AFTER the one that hands the dialog back, so its text is read somewhere nothing truncates it) and only their button is pressed, under defer they answer it in the Unreal Editor window, and in both this call is refused with the dialog named. editor(list_dialogs) stays available in every mode, so the dialog can always be READ. Pass dialogAction='close' to destroy the dialog window when no button label fits, which ends the modal without answering the question. It is NOT called 'action': that name is this tool's own dispatch field, so a call writing action='close' selects a nonexistent editor action and never reaches the dialog (#1078). Pass items to tick or untick the dialog's own rows before the button is pressed, which is what makes \"Save Selected\" mean something: read them from editor(list_dialogs) and send [{index, checked}] for the ones you want changed. The ticks and the press happen in this one call, so a modal is never left holding a selection nobody pressed anything on. Params: buttonIndex?, buttonLabel?, items?, dialogAction? (escape or close)", "respond_to_dialog", (p) => ({ buttonIndex: p.buttonIndex, buttonLabel: p.buttonLabel, items: p.items, dialogAction: p.dialogAction })),
|
|
390
390
|
open_asset: bp("mutate", "Open asset in its editor. Params: assetPath", "open_asset"),
|
|
391
|
+
get_open_asset_editors: bp("read", "What the user currently has open in the editor, and which of it holds focus. Returns every open asset editor with its asset path/class, its window and major tab label, and its own tabs - so an open PCG Graph, the Blueprint graph documents someone has open, and the Details panel they are looking at all come back by name. Unreal publishes no single answer to this: the asset editor subsystem knows what is open, the global tab manager knows the active tab, and each tab knows when it was last activated, and nothing joins them. focusedAssetEditor is the editor holding Slate's active tab, activeTab.context says whether that tab is in an asset editor, the Level Editor or elsewhere, and mostRecentlyActiveAssetEditor is where the user last was. Read editorApplicationFocused before trusting the word focused: an agent driven from a terminal has taken OS focus away from Unreal, so Slate's active tab is a record of where the user was rather than where their cursor is, and focusNote says which of the two this answer is. Reads only - it never focuses or opens anything, which editor(open_asset) is for. Params: none (#1112)", "get_open_asset_editors"),
|
|
391
392
|
reload_bridge: bp("mutate", "Hot-reload Python bridge handlers from disk. Params: none", "reload_handlers"),
|
|
392
393
|
save_dirty: bp("mutate", "Flush every dirty package and return a per-package saved/failed map. Use after multi-step CDO/component edits when set_class_default leaves the asset dirty without persisting (#378). Params: includeMaps? (default true), includeContent? (default true)", "save_dirty", (p) => ({ includeMaps: p.includeMaps, includeContent: p.includeContent })),
|
|
393
394
|
configure_pie: bp("mutate", "Set ULevelEditorPlaySettings - multi-client PIE, net mode, single-process flag, Play-in-New-Window resolution. Params: numClients?, netMode? (standalone|listen|client), runUnderOneProcess?, launchSeparateServer?, newWindowWidth?, newWindowHeight? (#384/#671)", "configure_pie", (p) => ({ numClients: p.numClients, netMode: p.netMode, runUnderOneProcess: p.runUnderOneProcess, launchSeparateServer: p.launchSeparateServer, newWindowWidth: p.newWindowWidth, newWindowHeight: p.newWindowHeight })),
|
package/dist/tools/editor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/tools/editor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"editor.js","sourceRoot":"","sources":["../../src/tools/editor.ts"],"names":[],"mappings":"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"}
|
package/dist/ue-mcp.default.yml
CHANGED
|
@@ -9183,6 +9183,12 @@ tasks:
|
|
|
9183
9183
|
description: "Open asset in its editor. Params: assetPath"
|
|
9184
9184
|
options:
|
|
9185
9185
|
method: open_asset
|
|
9186
|
+
editor.get_open_asset_editors:
|
|
9187
|
+
class_path: ue-mcp.bridge
|
|
9188
|
+
group: editor
|
|
9189
|
+
description: "What the user currently has open in the editor, and which of it holds focus. Returns every open asset editor with its asset path/class, its window and major tab label, and its own tabs - so an open PCG Graph, the Blueprint graph documents someone has open, and the Details panel they are looking at all come back by name. Unreal publishes no single answer to this: the asset editor subsystem knows what is open, the global tab manager knows the active tab, and each tab knows when it was last activated, and nothing joins them. focusedAssetEditor is the editor holding Slate's active tab, activeTab.context says whether that tab is in an asset editor, the Level Editor or elsewhere, and mostRecentlyActiveAssetEditor is where the user last was. Read editorApplicationFocused before trusting the word focused: an agent driven from a terminal has taken OS focus away from Unreal, so Slate's active tab is a record of where the user was rather than where their cursor is, and focusNote says which of the two this answer is. Reads only - it never focuses or opens anything, which editor(open_asset) is for. Params: none (#1112)"
|
|
9190
|
+
options:
|
|
9191
|
+
method: get_open_asset_editors
|
|
9186
9192
|
editor.reload_bridge:
|
|
9187
9193
|
class_path: ue-mcp.bridge
|
|
9188
9194
|
group: editor
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ue-mcp",
|
|
3
|
-
"version": "1.3.9-beta.
|
|
4
|
-
"description": "Unreal Engine MCP server - 26 tools,
|
|
3
|
+
"version": "1.3.9-beta.7",
|
|
4
|
+
"description": "Unreal Engine MCP server - 26 tools, 1932+ actions for AI-driven editor control",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"exports": {
|
|
@@ -303,6 +303,8 @@ void FEditorHandlers::RegisterHandlers(FMCPHandlerRegistry& Registry)
|
|
|
303
303
|
Registry.RegisterHandler(TEXT("create_new_level"), &CreateNewLevel);
|
|
304
304
|
Registry.RegisterHandler(TEXT("save_current_level"), &SaveCurrentLevel);
|
|
305
305
|
Registry.RegisterHandler(TEXT("open_asset"), &OpenAsset);
|
|
306
|
+
// #1112: the inverse of open_asset - what is already open, and what has focus.
|
|
307
|
+
Registry.RegisterHandler(TEXT("get_open_asset_editors"), &GetOpenAssetEditors);
|
|
306
308
|
Registry.RegisterHandler(TEXT("get_runtime_value"), &PieGetRuntimeValue);
|
|
307
309
|
// New handlers
|
|
308
310
|
Registry.RegisterHandler(TEXT("run_stat_command"), &RunStatCommand);
|
|
@@ -221,6 +221,8 @@ private:
|
|
|
221
221
|
static TSharedPtr<FJsonValue> CreateNewLevel(const TSharedPtr<FJsonObject>& Params);
|
|
222
222
|
static TSharedPtr<FJsonValue> SaveCurrentLevel(const TSharedPtr<FJsonObject>& Params);
|
|
223
223
|
static TSharedPtr<FJsonValue> OpenAsset(const TSharedPtr<FJsonObject>& Params);
|
|
224
|
+
// #1112: which asset editors are open, and which one holds focus.
|
|
225
|
+
static TSharedPtr<FJsonValue> GetOpenAssetEditors(const TSharedPtr<FJsonObject>& Params);
|
|
224
226
|
static TSharedPtr<FJsonValue> RunStatCommand(const TSharedPtr<FJsonObject>& Params);
|
|
225
227
|
static TSharedPtr<FJsonValue> SetScalability(const TSharedPtr<FJsonObject>& Params);
|
|
226
228
|
// #591 bulk console-variable setter
|
package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/EditorHandlers_OpenEditors.cpp
ADDED
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
// Which asset editors are open, and which one the user is actually looking at.
|
|
2
|
+
//
|
|
3
|
+
// #1112: Unreal exposes no single answer to "what tab is focused". The pieces
|
|
4
|
+
// exist and nothing joins them: UAssetEditorSubsystem knows what is open,
|
|
5
|
+
// FGlobalTabmanager knows the active tab, and SDockTab knows when it was last
|
|
6
|
+
// activated. This joins the three and says which of them it answered from,
|
|
7
|
+
// because an agent driven from a terminal has moved OS focus away from Unreal,
|
|
8
|
+
// and "focused" then means "where the user was last", not "where the cursor is".
|
|
9
|
+
|
|
10
|
+
#include "EditorHandlers.h"
|
|
11
|
+
|
|
12
|
+
#include "HandlerUtils.h"
|
|
13
|
+
|
|
14
|
+
#include "Editor.h"
|
|
15
|
+
#include "Framework/Application/SlateApplication.h"
|
|
16
|
+
#include "Framework/Docking/TabManager.h"
|
|
17
|
+
#include "Subsystems/AssetEditorSubsystem.h"
|
|
18
|
+
#include "UObject/Package.h"
|
|
19
|
+
#include "Widgets/Docking/SDockTab.h"
|
|
20
|
+
#include "Widgets/SWindow.h"
|
|
21
|
+
|
|
22
|
+
// A NAMED namespace: this module is a unity build, so an anonymous one here
|
|
23
|
+
// would merge with whatever other .cpp shares the blob.
|
|
24
|
+
namespace MCPOpenAssetEditors
|
|
25
|
+
{
|
|
26
|
+
/** Bounds on the Slate walk. It runs over a live widget tree on the game
|
|
27
|
+
* thread, so it is capped rather than trusted to terminate quickly. */
|
|
28
|
+
constexpr int32 MaxTabsPerEditor = 64;
|
|
29
|
+
constexpr int32 MaxWalkDepth = 48;
|
|
30
|
+
|
|
31
|
+
/** The layout identifier the Level Editor's major tab carries. */
|
|
32
|
+
const TCHAR* const LevelEditorTabType = TEXT("LevelEditor");
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Every SDockTab beneath a widget, in layout order.
|
|
36
|
+
*
|
|
37
|
+
* FTabManager publishes no enumeration of its live tabs - FindExistingLiveTab
|
|
38
|
+
* answers one FTabId at a time and a Blueprint's graph documents are not
|
|
39
|
+
* known ids - so the widget tree is the only place the open tabs exist as a
|
|
40
|
+
* set. Matched by type name because Slate's docking widgets are private to
|
|
41
|
+
* their module; SNew stamps the type, so anything built as an SDockTab
|
|
42
|
+
* reports one.
|
|
43
|
+
*/
|
|
44
|
+
void GatherTabs(const TSharedRef<SWidget>& Widget, TArray<TSharedRef<SDockTab>>& Out, int32 Depth = 0)
|
|
45
|
+
{
|
|
46
|
+
if (Depth > MaxWalkDepth || Out.Num() >= MaxTabsPerEditor)
|
|
47
|
+
{
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (Widget->GetType() == TEXT("SDockTab"))
|
|
51
|
+
{
|
|
52
|
+
Out.AddUnique(StaticCastSharedRef<SDockTab>(Widget));
|
|
53
|
+
}
|
|
54
|
+
if (FChildren* Children = Widget->GetChildren())
|
|
55
|
+
{
|
|
56
|
+
for (int32 i = 0; i < Children->Num(); ++i)
|
|
57
|
+
{
|
|
58
|
+
GatherTabs(Children->GetChildAt(i), Out, Depth + 1);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/** The major tab a minor tab lives under, or the tab itself when it already
|
|
64
|
+
* is one. A major tab's own manager is the global one, which owns no major
|
|
65
|
+
* tab of its own, which is what separates the two cases. */
|
|
66
|
+
TSharedPtr<SDockTab> MajorTabFor(const TSharedPtr<SDockTab>& Tab)
|
|
67
|
+
{
|
|
68
|
+
if (!Tab.IsValid())
|
|
69
|
+
{
|
|
70
|
+
return nullptr;
|
|
71
|
+
}
|
|
72
|
+
const TSharedPtr<FTabManager> Manager = Tab->GetTabManagerPtr();
|
|
73
|
+
if (Manager.IsValid())
|
|
74
|
+
{
|
|
75
|
+
if (TSharedPtr<SDockTab> Major = FGlobalTabmanager::Get()->GetMajorTabForTabManager(Manager.ToSharedRef()))
|
|
76
|
+
{
|
|
77
|
+
return Major;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return Tab;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
FString WindowTitleOf(const TSharedPtr<SDockTab>& Tab)
|
|
84
|
+
{
|
|
85
|
+
if (!Tab.IsValid())
|
|
86
|
+
{
|
|
87
|
+
return FString();
|
|
88
|
+
}
|
|
89
|
+
const TSharedPtr<SWindow> Window = Tab->GetParentWindow();
|
|
90
|
+
return Window.IsValid() ? Window->GetTitle().ToString() : FString();
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/** One open asset editor, gathered before anything is serialized so the
|
|
94
|
+
* focus questions can be answered against the whole set. */
|
|
95
|
+
struct FOpenEditor
|
|
96
|
+
{
|
|
97
|
+
IAssetEditorInstance* Instance = nullptr;
|
|
98
|
+
TArray<TWeakObjectPtr<UObject>> Assets;
|
|
99
|
+
FString EditorName;
|
|
100
|
+
double LastActivationTime = 0.0;
|
|
101
|
+
bool bPrimary = false;
|
|
102
|
+
TSharedPtr<SDockTab> MajorTab;
|
|
103
|
+
TArray<TSharedRef<SDockTab>> Tabs;
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
TSharedPtr<FJsonValue> FEditorHandlers::GetOpenAssetEditors(const TSharedPtr<FJsonObject>& Params)
|
|
108
|
+
{
|
|
109
|
+
using namespace MCPOpenAssetEditors;
|
|
110
|
+
|
|
111
|
+
if (!GEditor)
|
|
112
|
+
{
|
|
113
|
+
return MCPError(TEXT("GEditor not available"));
|
|
114
|
+
}
|
|
115
|
+
UAssetEditorSubsystem* AssetEditorSubsystem = GEditor->GetEditorSubsystem<UAssetEditorSubsystem>();
|
|
116
|
+
if (!AssetEditorSubsystem)
|
|
117
|
+
{
|
|
118
|
+
return MCPError(TEXT("AssetEditorSubsystem not available"));
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
const bool bSlate = FSlateApplication::IsInitialized();
|
|
122
|
+
const double Now = bSlate ? FSlateApplication::Get().GetCurrentTime() : 0.0;
|
|
123
|
+
|
|
124
|
+
// The active tab is a MINOR tab (the Event Graph, the Details panel). The
|
|
125
|
+
// asset it belongs to is the one its major tab hosts, so both are needed.
|
|
126
|
+
const TSharedPtr<SDockTab> ActiveTab = bSlate ? FGlobalTabmanager::Get()->GetActiveTab() : nullptr;
|
|
127
|
+
const TSharedPtr<SDockTab> ActiveMajorTab = MajorTabFor(ActiveTab);
|
|
128
|
+
|
|
129
|
+
// Grouped by editor instance, not by asset: one toolkit can edit several
|
|
130
|
+
// assets and reporting it once per asset would claim several open editors.
|
|
131
|
+
TArray<FOpenEditor> Editors;
|
|
132
|
+
for (UObject* Asset : AssetEditorSubsystem->GetAllEditedAssets())
|
|
133
|
+
{
|
|
134
|
+
if (!Asset)
|
|
135
|
+
{
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
// bFocusIfOpen=false: this is a read. Asking for focus here would move
|
|
139
|
+
// the user's editor as a side effect of a question about it.
|
|
140
|
+
IAssetEditorInstance* Instance = AssetEditorSubsystem->FindEditorForAsset(Asset, /*bFocusIfOpen=*/false);
|
|
141
|
+
if (!Instance)
|
|
142
|
+
{
|
|
143
|
+
continue;
|
|
144
|
+
}
|
|
145
|
+
if (FOpenEditor* Existing = Editors.FindByPredicate(
|
|
146
|
+
[Instance](const FOpenEditor& Candidate) { return Candidate.Instance == Instance; }))
|
|
147
|
+
{
|
|
148
|
+
Existing->Assets.Add(Asset);
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
FOpenEditor Entry;
|
|
153
|
+
Entry.Instance = Instance;
|
|
154
|
+
Entry.Assets.Add(Asset);
|
|
155
|
+
Entry.EditorName = Instance->GetEditorName().ToString();
|
|
156
|
+
Entry.LastActivationTime = Instance->GetLastActivationTime();
|
|
157
|
+
Entry.bPrimary = Instance->IsPrimaryEditor();
|
|
158
|
+
if (bSlate)
|
|
159
|
+
{
|
|
160
|
+
if (const TSharedPtr<FTabManager> Manager = Instance->GetAssociatedTabManager())
|
|
161
|
+
{
|
|
162
|
+
Entry.MajorTab = FGlobalTabmanager::Get()->GetMajorTabForTabManager(Manager.ToSharedRef());
|
|
163
|
+
}
|
|
164
|
+
if (Entry.MajorTab.IsValid())
|
|
165
|
+
{
|
|
166
|
+
// From the major tab's own content, not from its window: several
|
|
167
|
+
// asset editors can be docked into one window and walking the
|
|
168
|
+
// window would hand every editor every other editor's tabs.
|
|
169
|
+
GatherTabs(Entry.MajorTab->GetContent(), Entry.Tabs);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
Editors.Add(MoveTemp(Entry));
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// Most recently activated wins the "where was the user" question. 0.0 means
|
|
176
|
+
// the toolkit has never reported an activation, so it is not an answer.
|
|
177
|
+
int32 MostRecentIndex = INDEX_NONE;
|
|
178
|
+
int32 FocusedIndex = INDEX_NONE;
|
|
179
|
+
for (int32 i = 0; i < Editors.Num(); ++i)
|
|
180
|
+
{
|
|
181
|
+
if (Editors[i].LastActivationTime > 0.0
|
|
182
|
+
&& (MostRecentIndex == INDEX_NONE || Editors[i].LastActivationTime > Editors[MostRecentIndex].LastActivationTime))
|
|
183
|
+
{
|
|
184
|
+
MostRecentIndex = i;
|
|
185
|
+
}
|
|
186
|
+
if (ActiveMajorTab.IsValid() && Editors[i].MajorTab == ActiveMajorTab)
|
|
187
|
+
{
|
|
188
|
+
FocusedIndex = i;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
auto DescribeEditor = [&](int32 Index) -> TSharedPtr<FJsonObject>
|
|
193
|
+
{
|
|
194
|
+
const FOpenEditor& Entry = Editors[Index];
|
|
195
|
+
TSharedPtr<FJsonObject> Obj = MakeShared<FJsonObject>();
|
|
196
|
+
Obj->SetNumberField(TEXT("index"), Index);
|
|
197
|
+
Obj->SetStringField(TEXT("editorName"), Entry.EditorName);
|
|
198
|
+
Obj->SetBoolField(TEXT("isPrimaryEditor"), Entry.bPrimary);
|
|
199
|
+
|
|
200
|
+
TArray<TSharedPtr<FJsonValue>> AssetsArray;
|
|
201
|
+
for (const TWeakObjectPtr<UObject>& WeakAsset : Entry.Assets)
|
|
202
|
+
{
|
|
203
|
+
UObject* Asset = WeakAsset.Get();
|
|
204
|
+
if (!Asset)
|
|
205
|
+
{
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
const FString ObjectPath = Asset->GetPathName();
|
|
209
|
+
const FMCPAssetPathForms Forms = MCPAssetPathForms(ObjectPath);
|
|
210
|
+
// A transient or in-memory object has no package path to derive, and
|
|
211
|
+
// an empty assetPath would read as "no asset" rather than "not one
|
|
212
|
+
// you can reopen by path".
|
|
213
|
+
const FString AssetPath = Forms.PackagePath.IsEmpty() ? ObjectPath : Forms.PackagePath;
|
|
214
|
+
TSharedPtr<FJsonObject> AssetObj = MakeShared<FJsonObject>();
|
|
215
|
+
AssetObj->SetStringField(TEXT("assetPath"), AssetPath);
|
|
216
|
+
AssetObj->SetStringField(TEXT("objectPath"), ObjectPath);
|
|
217
|
+
AssetObj->SetStringField(TEXT("assetName"), Asset->GetName());
|
|
218
|
+
AssetObj->SetStringField(TEXT("assetClass"), Asset->GetClass()->GetName());
|
|
219
|
+
AssetsArray.Add(MakeShared<FJsonValueObject>(AssetObj));
|
|
220
|
+
if (AssetsArray.Num() == 1)
|
|
221
|
+
{
|
|
222
|
+
// The first asset, hoisted: it is what a caller feeds back to
|
|
223
|
+
// editor(open_asset) or to a category action, and making them
|
|
224
|
+
// index into assets[] for the common one-asset case is friction.
|
|
225
|
+
Obj->SetStringField(TEXT("assetPath"), AssetPath);
|
|
226
|
+
Obj->SetStringField(TEXT("objectPath"), ObjectPath);
|
|
227
|
+
Obj->SetStringField(TEXT("assetName"), Asset->GetName());
|
|
228
|
+
Obj->SetStringField(TEXT("assetClass"), Asset->GetClass()->GetName());
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
Obj->SetArrayField(TEXT("assets"), AssetsArray);
|
|
232
|
+
|
|
233
|
+
Obj->SetNumberField(TEXT("lastActivationTime"), Entry.LastActivationTime);
|
|
234
|
+
if (Entry.LastActivationTime > 0.0 && Now > 0.0)
|
|
235
|
+
{
|
|
236
|
+
Obj->SetNumberField(TEXT("secondsSinceActivation"), Now - Entry.LastActivationTime);
|
|
237
|
+
}
|
|
238
|
+
Obj->SetBoolField(TEXT("holdsActiveTab"), Index == FocusedIndex);
|
|
239
|
+
Obj->SetBoolField(TEXT("mostRecentlyActive"), Index == MostRecentIndex);
|
|
240
|
+
|
|
241
|
+
if (Entry.MajorTab.IsValid())
|
|
242
|
+
{
|
|
243
|
+
Obj->SetStringField(TEXT("tabLabel"), Entry.MajorTab->GetTabLabel().ToString());
|
|
244
|
+
Obj->SetStringField(TEXT("windowTitle"), WindowTitleOf(Entry.MajorTab));
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
TArray<TSharedPtr<FJsonValue>> TabsArray;
|
|
248
|
+
for (const TSharedRef<SDockTab>& Tab : Entry.Tabs)
|
|
249
|
+
{
|
|
250
|
+
TSharedPtr<FJsonObject> TabObj = MakeShared<FJsonObject>();
|
|
251
|
+
TabObj->SetStringField(TEXT("label"), Tab->GetTabLabel().ToString());
|
|
252
|
+
TabObj->SetStringField(TEXT("tabId"), Tab->GetLayoutIdentifier().TabType.ToString());
|
|
253
|
+
// Foreground is what is drawn in its tab well; active is the one tab
|
|
254
|
+
// in the whole editor holding focus. A Blueprint with four graph
|
|
255
|
+
// documents open has one foreground graph tab and, once the terminal
|
|
256
|
+
// took focus, usually no active one at all.
|
|
257
|
+
TabObj->SetBoolField(TEXT("foreground"), Tab->IsForeground());
|
|
258
|
+
TabObj->SetBoolField(TEXT("active"), ActiveTab.IsValid() && Tab == ActiveTab.ToSharedRef());
|
|
259
|
+
TabsArray.Add(MakeShared<FJsonValueObject>(TabObj));
|
|
260
|
+
}
|
|
261
|
+
Obj->SetArrayField(TEXT("tabs"), TabsArray);
|
|
262
|
+
Obj->SetBoolField(TEXT("tabsTruncated"), Entry.Tabs.Num() >= MaxTabsPerEditor);
|
|
263
|
+
return Obj;
|
|
264
|
+
};
|
|
265
|
+
|
|
266
|
+
auto Result = MCPSuccess();
|
|
267
|
+
Result->SetNumberField(TEXT("count"), Editors.Num());
|
|
268
|
+
|
|
269
|
+
TArray<TSharedPtr<FJsonValue>> EditorsArray;
|
|
270
|
+
for (int32 i = 0; i < Editors.Num(); ++i)
|
|
271
|
+
{
|
|
272
|
+
EditorsArray.Add(MakeShared<FJsonValueObject>(DescribeEditor(i)));
|
|
273
|
+
}
|
|
274
|
+
Result->SetArrayField(TEXT("editors"), EditorsArray);
|
|
275
|
+
|
|
276
|
+
// Whether Unreal is the foreground application at all. This decides how much
|
|
277
|
+
// "focused" is worth: false means Slate's active tab is a record of where the
|
|
278
|
+
// user last was, which is still the useful answer when the question arrives
|
|
279
|
+
// from a terminal.
|
|
280
|
+
Result->SetBoolField(TEXT("editorApplicationFocused"), bSlate && FSlateApplication::Get().IsActive());
|
|
281
|
+
Result->SetBoolField(TEXT("slateAvailable"), bSlate);
|
|
282
|
+
|
|
283
|
+
if (ActiveTab.IsValid())
|
|
284
|
+
{
|
|
285
|
+
TSharedPtr<FJsonObject> ActiveObj = MakeShared<FJsonObject>();
|
|
286
|
+
ActiveObj->SetStringField(TEXT("label"), ActiveTab->GetTabLabel().ToString());
|
|
287
|
+
ActiveObj->SetStringField(TEXT("tabId"), ActiveTab->GetLayoutIdentifier().TabType.ToString());
|
|
288
|
+
// A docked minor tab has no parent window of its own; the window belongs
|
|
289
|
+
// to the major tab it sits under, and an empty title here would read as
|
|
290
|
+
// "no window" rather than "ask the tab above".
|
|
291
|
+
FString ActiveWindowTitle = WindowTitleOf(ActiveTab);
|
|
292
|
+
if (ActiveWindowTitle.IsEmpty())
|
|
293
|
+
{
|
|
294
|
+
ActiveWindowTitle = WindowTitleOf(ActiveMajorTab);
|
|
295
|
+
}
|
|
296
|
+
ActiveObj->SetStringField(TEXT("windowTitle"), ActiveWindowTitle);
|
|
297
|
+
if (ActiveMajorTab.IsValid())
|
|
298
|
+
{
|
|
299
|
+
ActiveObj->SetStringField(TEXT("majorTabLabel"), ActiveMajorTab->GetTabLabel().ToString());
|
|
300
|
+
ActiveObj->SetStringField(TEXT("majorTabId"), ActiveMajorTab->GetLayoutIdentifier().TabType.ToString());
|
|
301
|
+
}
|
|
302
|
+
const bool bLevelEditor = ActiveMajorTab.IsValid()
|
|
303
|
+
&& ActiveMajorTab->GetLayoutIdentifier().TabType == FName(LevelEditorTabType);
|
|
304
|
+
ActiveObj->SetStringField(TEXT("context"),
|
|
305
|
+
FocusedIndex != INDEX_NONE ? TEXT("assetEditor")
|
|
306
|
+
: bLevelEditor ? TEXT("levelEditor")
|
|
307
|
+
: TEXT("other"));
|
|
308
|
+
Result->SetObjectField(TEXT("activeTab"), ActiveObj);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
if (FocusedIndex != INDEX_NONE)
|
|
312
|
+
{
|
|
313
|
+
Result->SetObjectField(TEXT("focusedAssetEditor"), DescribeEditor(FocusedIndex));
|
|
314
|
+
}
|
|
315
|
+
if (MostRecentIndex != INDEX_NONE)
|
|
316
|
+
{
|
|
317
|
+
Result->SetObjectField(TEXT("mostRecentlyActiveAssetEditor"), DescribeEditor(MostRecentIndex));
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
// Which question was answerable, in words, so a caller does not have to
|
|
321
|
+
// infer it from which fields came back.
|
|
322
|
+
FString FocusNote;
|
|
323
|
+
if (Editors.Num() == 0)
|
|
324
|
+
{
|
|
325
|
+
FocusNote = TEXT("No asset editors are open, so nothing the user is looking at is an asset. Whatever is on screen is the Level Editor or another non-asset tab.");
|
|
326
|
+
}
|
|
327
|
+
else if (FocusedIndex != INDEX_NONE)
|
|
328
|
+
{
|
|
329
|
+
const UObject* FocusedAsset = Editors[FocusedIndex].Assets[0].Get();
|
|
330
|
+
FocusNote = FString::Printf(
|
|
331
|
+
TEXT("The active tab belongs to the %s editing '%s'."),
|
|
332
|
+
*Editors[FocusedIndex].EditorName,
|
|
333
|
+
FocusedAsset ? *FocusedAsset->GetName() : TEXT("an asset that has since been unloaded"));
|
|
334
|
+
}
|
|
335
|
+
else if (ActiveTab.IsValid())
|
|
336
|
+
{
|
|
337
|
+
FocusNote = FString::Printf(
|
|
338
|
+
TEXT("The active tab ('%s') is not inside an asset editor, so no open asset is focused. mostRecentlyActiveAssetEditor is the last asset editor the user was in."),
|
|
339
|
+
*ActiveTab->GetTabLabel().ToString());
|
|
340
|
+
}
|
|
341
|
+
else
|
|
342
|
+
{
|
|
343
|
+
FocusNote = TEXT("Slate reports no active tab, so nothing is focused. mostRecentlyActiveAssetEditor is the last asset editor the user was in.");
|
|
344
|
+
}
|
|
345
|
+
if (bSlate && !FSlateApplication::Get().IsActive())
|
|
346
|
+
{
|
|
347
|
+
FocusNote += TEXT(" Unreal is not the foreground application, so this is where the user last was, not where their cursor is now.");
|
|
348
|
+
}
|
|
349
|
+
Result->SetStringField(TEXT("focusNote"), FocusNote);
|
|
350
|
+
|
|
351
|
+
return MCPResult(Result);
|
|
352
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
// Coverage for editor(get_open_asset_editors) (#1112).
|
|
2
|
+
//
|
|
3
|
+
// Two things are worth asserting and neither needs a particular editor layout:
|
|
4
|
+
// an asset whose editor is open is reported, with a path a caller can act on;
|
|
5
|
+
// and asking the question changes nothing, because the subsystem call that
|
|
6
|
+
// finds an editor will also focus it if asked and a read that moved the user's
|
|
7
|
+
// editor would be worse than no answer.
|
|
8
|
+
|
|
9
|
+
#if WITH_DEV_AUTOMATION_TESTS
|
|
10
|
+
|
|
11
|
+
#include "Editor.h"
|
|
12
|
+
#include "Framework/Application/SlateApplication.h"
|
|
13
|
+
#include "Framework/Docking/TabManager.h"
|
|
14
|
+
#include "HandlerRegistry.h"
|
|
15
|
+
#include "Handlers/EditorHandlers.h"
|
|
16
|
+
#include "Misc/AutomationTest.h"
|
|
17
|
+
#include "Subsystems/AssetEditorSubsystem.h"
|
|
18
|
+
#include "UObject/UObjectGlobals.h"
|
|
19
|
+
#include "Widgets/Docking/SDockTab.h"
|
|
20
|
+
|
|
21
|
+
namespace
|
|
22
|
+
{
|
|
23
|
+
TSharedPtr<FJsonObject> MCPOpenEditorsTestRun(FMCPHandlerRegistry& Registry)
|
|
24
|
+
{
|
|
25
|
+
const TSharedPtr<FJsonValue> Response =
|
|
26
|
+
Registry.ExecuteHandler(TEXT("get_open_asset_editors"), MakeShared<FJsonObject>());
|
|
27
|
+
if (!Response.IsValid() || Response->Type != EJson::Object)
|
|
28
|
+
{
|
|
29
|
+
return nullptr;
|
|
30
|
+
}
|
|
31
|
+
return Response->AsObject();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/** Does the answer name this asset among the editors it reports? */
|
|
35
|
+
bool MCPOpenEditorsMentions(const TSharedPtr<FJsonObject>& Response, const FString& AssetName)
|
|
36
|
+
{
|
|
37
|
+
const TArray<TSharedPtr<FJsonValue>>* Editors = nullptr;
|
|
38
|
+
if (!Response.IsValid() || !Response->TryGetArrayField(TEXT("editors"), Editors))
|
|
39
|
+
{
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
for (const TSharedPtr<FJsonValue>& Value : *Editors)
|
|
43
|
+
{
|
|
44
|
+
const TSharedPtr<FJsonObject> Entry = Value.IsValid() ? Value->AsObject() : nullptr;
|
|
45
|
+
if (Entry.IsValid() && Entry->GetStringField(TEXT("assetName")) == AssetName)
|
|
46
|
+
{
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
IMPLEMENT_SIMPLE_AUTOMATION_TEST(
|
|
55
|
+
FEditorOpenAssetEditorsTest,
|
|
56
|
+
"UE.MCP.Editor.OpenAssetEditors",
|
|
57
|
+
EAutomationTestFlags::EditorContext | EAutomationTestFlags::EngineFilter)
|
|
58
|
+
|
|
59
|
+
bool FEditorOpenAssetEditorsTest::RunTest(const FString& Parameters)
|
|
60
|
+
{
|
|
61
|
+
FMCPHandlerRegistry Registry;
|
|
62
|
+
FEditorHandlers::RegisterHandlers(Registry);
|
|
63
|
+
TestTrue(TEXT("get_open_asset_editors is registered"), Registry.HasHandler(TEXT("get_open_asset_editors")));
|
|
64
|
+
|
|
65
|
+
// The shape, whatever the run happens to have open. An editor with nothing
|
|
66
|
+
// open still has to answer, because "nothing is open" is an answer.
|
|
67
|
+
{
|
|
68
|
+
const TSharedPtr<FJsonObject> Response = MCPOpenEditorsTestRun(Registry);
|
|
69
|
+
if (!Response.IsValid())
|
|
70
|
+
{
|
|
71
|
+
AddError(TEXT("get_open_asset_editors returned no object"));
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
TestTrue(TEXT("the read succeeds"), Response->GetBoolField(TEXT("success")));
|
|
75
|
+
TestTrue(TEXT("editors is always present"), Response->HasField(TEXT("editors")));
|
|
76
|
+
TestTrue(TEXT("count is always present"), Response->HasField(TEXT("count")));
|
|
77
|
+
TestTrue(TEXT("focusNote says which question was answered"),
|
|
78
|
+
!Response->GetStringField(TEXT("focusNote")).IsEmpty());
|
|
79
|
+
// The caveat the whole action turns on: whether Unreal has OS focus
|
|
80
|
+
// decides whether "focused" means now or last.
|
|
81
|
+
TestTrue(TEXT("editorApplicationFocused is always reported"),
|
|
82
|
+
Response->HasField(TEXT("editorApplicationFocused")));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
UAssetEditorSubsystem* AssetEditorSubsystem =
|
|
86
|
+
GEditor ? GEditor->GetEditorSubsystem<UAssetEditorSubsystem>() : nullptr;
|
|
87
|
+
if (!AssetEditorSubsystem || !FSlateApplication::IsInitialized())
|
|
88
|
+
{
|
|
89
|
+
AddInfo(TEXT("No asset editor subsystem or no Slate: the open-editor assertions need a running editor."));
|
|
90
|
+
return true;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
UObject* Asset = StaticLoadObject(UObject::StaticClass(), nullptr, TEXT("/Engine/BasicShapes/Cube"));
|
|
94
|
+
if (!Asset)
|
|
95
|
+
{
|
|
96
|
+
AddInfo(TEXT("/Engine/BasicShapes/Cube did not load; skipping the open-editor assertions."));
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Leave the editor as it was found. An asset editor this test opened must
|
|
101
|
+
// not outlive it, and one the user already had open must not be closed.
|
|
102
|
+
const bool bWasAlreadyOpen = AssetEditorSubsystem->FindEditorForAsset(Asset, /*bFocusIfOpen=*/false) != nullptr;
|
|
103
|
+
if (!bWasAlreadyOpen && !AssetEditorSubsystem->OpenEditorForAsset(Asset))
|
|
104
|
+
{
|
|
105
|
+
AddInfo(TEXT("The Static Mesh editor would not open; skipping the open-editor assertions."));
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const TSharedPtr<SDockTab> ActiveTabBefore = FGlobalTabmanager::Get()->GetActiveTab();
|
|
110
|
+
|
|
111
|
+
const TSharedPtr<FJsonObject> Response = MCPOpenEditorsTestRun(Registry);
|
|
112
|
+
if (Response.IsValid())
|
|
113
|
+
{
|
|
114
|
+
TestTrue(TEXT("an open asset editor is reported"), MCPOpenEditorsMentions(Response, TEXT("Cube")));
|
|
115
|
+
TestTrue(TEXT("at least one editor is counted"),
|
|
116
|
+
Response->GetIntegerField(TEXT("count")) >= 1);
|
|
117
|
+
}
|
|
118
|
+
else
|
|
119
|
+
{
|
|
120
|
+
AddError(TEXT("get_open_asset_editors returned no object with an editor open"));
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// The read is a read: FindEditorForAsset focuses when asked, and this action
|
|
124
|
+
// must never ask.
|
|
125
|
+
TestTrue(TEXT("reading does not move the active tab"),
|
|
126
|
+
FGlobalTabmanager::Get()->GetActiveTab() == ActiveTabBefore);
|
|
127
|
+
|
|
128
|
+
if (!bWasAlreadyOpen)
|
|
129
|
+
{
|
|
130
|
+
AssetEditorSubsystem->CloseAllEditorsForAsset(Asset);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
#endif // WITH_DEV_AUTOMATION_TESTS
|
|
@@ -87,6 +87,8 @@ public class UE_MCP_Bridge : ModuleRules
|
|
|
87
87
|
// Private/Tests/LevelComponentTreeInstanceCountTests.cpp (#986): same reason.
|
|
88
88
|
// Private/Handlers/LevelHandlers_WorldPartitionSettings.cpp and
|
|
89
89
|
// Private/Tests/LevelWorldPartitionSettingsTests.cpp (#985): same reason.
|
|
90
|
+
// Private/Handlers/EditorHandlers_OpenEditors.cpp and
|
|
91
|
+
// Private/Tests/OpenAssetEditorTests.cpp (#1112): same reason.
|
|
90
92
|
public UE_MCP_Bridge(ReadOnlyTargetRules Target) : base(Target)
|
|
91
93
|
{
|
|
92
94
|
PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"FileVersion": 3,
|
|
3
3
|
"Version": 1,
|
|
4
|
-
"VersionName": "1.3.9-beta.
|
|
4
|
+
"VersionName": "1.3.9-beta.7",
|
|
5
5
|
"FriendlyName": "UE MCP Bridge",
|
|
6
|
-
"Description": "C++ WebSocket bridge for UE-MCP, providing
|
|
6
|
+
"Description": "C++ WebSocket bridge for UE-MCP, providing 1871+ editor actions over the MCP protocol",
|
|
7
7
|
"Category": "Developer Tools",
|
|
8
8
|
"CreatedBy": "UE-MCP",
|
|
9
9
|
"CreatedByURL": "",
|