ue-mcp 1.3.8-beta → 1.3.8-beta.10
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 -2
- package/dist/action-class.js +4 -0
- package/dist/action-class.js.map +1 -1
- package/dist/bridge-parity.d.ts +77 -0
- package/dist/bridge-parity.js +96 -0
- package/dist/bridge-parity.js.map +1 -0
- package/dist/bridge-timeouts.js +2 -0
- package/dist/bridge-timeouts.js.map +1 -1
- package/dist/client-quirks.d.ts +9 -0
- package/dist/client-quirks.js +42 -0
- package/dist/client-quirks.js.map +1 -1
- package/dist/dialog-guard.d.ts +70 -19
- package/dist/dialog-guard.js +219 -58
- package/dist/dialog-guard.js.map +1 -1
- package/dist/editor-control.d.ts +6 -124
- package/dist/editor-control.js +103 -505
- package/dist/editor-control.js.map +1 -1
- package/dist/flow/guard-schema.d.ts +4 -4
- package/dist/flow/guards.js +31 -10
- package/dist/flow/guards.js.map +1 -1
- package/dist/flow/schema.d.ts +3 -3
- package/dist/flow/task-factory.js +5 -3
- package/dist/flow/task-factory.js.map +1 -1
- package/dist/guard-task.d.ts +125 -0
- package/dist/guard-task.js +85 -0
- package/dist/guard-task.js.map +1 -0
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/plugin/manifest.d.ts +3 -3
- package/dist/schemas.d.ts +157 -0
- package/dist/schemas.js +20 -0
- package/dist/schemas.js.map +1 -1
- package/dist/tool-counts.json +9 -9
- package/dist/tools/animation.js +77 -7
- package/dist/tools/animation.js.map +1 -1
- package/dist/tools/asset.js +14 -1
- package/dist/tools/asset.js.map +1 -1
- package/dist/tools/blueprint.js +17 -4
- package/dist/tools/blueprint.js.map +1 -1
- package/dist/tools/editor.js +28 -34
- package/dist/tools/editor.js.map +1 -1
- package/dist/tools/level.js +11 -3
- package/dist/tools/level.js.map +1 -1
- package/dist/tools/material.js +3 -2
- package/dist/tools/material.js.map +1 -1
- package/dist/tools/project.js +18 -1
- package/dist/tools/project.js.map +1 -1
- package/dist/types.d.ts +11 -0
- package/dist/types.js.map +1 -1
- package/dist/ue-mcp.default.yml +75 -15
- package/dist/user-state.d.ts +8 -0
- package/dist/user-state.js.map +1 -1
- package/package.json +6 -2
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AnimationHandlers.cpp +226 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AnimationHandlers.h +7 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AnimationHandlers_ControlRigSequencer.cpp +932 -27
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AnimationHandlers_IKRetargeterAuthoring.cpp +394 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AnimationHandlers_SkeletalLive.cpp +115 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AnimationHandlers_StateMachine.cpp +22 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/AssetHandlers_Import.cpp +33 -2
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/BlueprintHandlers.cpp +3 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/BlueprintHandlers.h +3 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/BlueprintHandlers_Depth.cpp +164 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/BlueprintHandlers_Graph.cpp +25 -4
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/BlueprintHandlers_Search.cpp +440 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/DialogHandlers.cpp +60 -1
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/EditorHandlers.cpp +432 -44
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/EditorHandlers.h +1 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/MaterialHandlers.cpp +243 -93
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/MaterialHandlers.h +1 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/SkeletalMeshHandlers.cpp +793 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/SkeletalMeshHandlers.h +2 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Handlers/SplineHandlers.cpp +228 -19
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Tests/AnimationSkeletonCreateTests.cpp +46 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Tests/LivePostProcessAnimBlueprintTests.cpp +65 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Tests/SplineHandlersTests.cpp +92 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/Private/Tests/ViewportCameraHandlerTests.cpp +114 -0
- package/plugin/ue_mcp_bridge/Source/UE_MCP_Bridge/UE_MCP_Bridge.Build.cs +3 -0
- package/plugin/ue_mcp_bridge/UE_MCP_Bridge.uplugin +2 -2
- package/skills/ue-mcp-animation/SKILL.md +29 -1
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
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 -->1930+<!-- /count --> actions, plus a YAML flow engine for multi-step workflows and an npm plugin system for extending the surface.
|
|
9
9
|
|
|
10
10
|
On UE 5.8+ it also wraps Epic's entire native AI Toolset Registry - 830 official Unreal tools, called in-process and surfaced as `epic_*` actions in the matching category: Sequencer in `animation`, PCG in `pcg`, static meshes in `asset`.
|
|
11
11
|
|
|
@@ -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 -->1930+<!-- /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/action-class.js
CHANGED
|
@@ -216,6 +216,8 @@ const OVERRIDES = {
|
|
|
216
216
|
// Reads Control Rig controls and keys from an edit session. The `edit`
|
|
217
217
|
// segment names the session type; this action does not modify it.
|
|
218
218
|
"animation.read_control_rig_edit": "read",
|
|
219
|
+
// Captures current in-memory Control Rig values without changing Sequencer.
|
|
220
|
+
"animation.capture_control_rig_pose": "read",
|
|
219
221
|
// Reads animation data, but optionally writes validation artifacts under
|
|
220
222
|
// the addressed project's Saved directory.
|
|
221
223
|
"animation.analyze_animation": "unknown",
|
|
@@ -258,6 +260,8 @@ const OVERRIDES = {
|
|
|
258
260
|
// ── Writes whose verb reads as a read ───────────────────────────────
|
|
259
261
|
// Drives the editor's preview: it plays an animation in a viewport.
|
|
260
262
|
"animation.preview_animation": "mutate",
|
|
263
|
+
// Replaces a running component's transient post-process AnimBP override.
|
|
264
|
+
"animation.set_live_post_process_anim_blueprint": "mutate",
|
|
261
265
|
// Renders to a file on disk.
|
|
262
266
|
"material.render_preview": "mutate",
|
|
263
267
|
"asset.export": "mutate",
|
package/dist/action-class.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-class.js","sourceRoot":"","sources":["../src/action-class.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"action-class.js","sourceRoot":"","sources":["../src/action-class.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Does the plugin we reached actually implement what we advertise? (#1021)
|
|
3
|
+
*
|
|
4
|
+
* `pluginBuildStale` answers a different question. It compares timestamps: is
|
|
5
|
+
* the compiled bridge older than its source. That catches the common cause of
|
|
6
|
+
* a missing handler and is worth reporting, but it is not evidence about the
|
|
7
|
+
* handlers themselves, and a report against 1.2.4 said so exactly: a session
|
|
8
|
+
* reported `pluginBuildStale: false` while an advertised method was absent,
|
|
9
|
+
* and every discovery of that came one failed call at a time.
|
|
10
|
+
*
|
|
11
|
+
* The evidence has been on the wire the whole time. The handshake carries the
|
|
12
|
+
* registered method list read out of the running binary, which the C++ that
|
|
13
|
+
* builds it describes as the only answer a stale DLL cannot fake. Nothing
|
|
14
|
+
* compared it to the surface, so it was used to word an error AFTER a call had
|
|
15
|
+
* already failed and never to say anything beforehand.
|
|
16
|
+
*
|
|
17
|
+
* This compares them. What comes out is not a guess about why a method is
|
|
18
|
+
* missing, and deliberately so: a plugin behind its source, a plugin from
|
|
19
|
+
* another checkout, a partially deployed one and a handler that failed to
|
|
20
|
+
* register all look identical from here, and naming one of them would be
|
|
21
|
+
* inventing a cause. It reports WHICH advertised methods the running plugin
|
|
22
|
+
* does not have, which is the fact, and leaves the diagnosis to the reader.
|
|
23
|
+
*/
|
|
24
|
+
import type { BridgeCapabilities } from "./bridge.js";
|
|
25
|
+
import type { ToolDef } from "./types.js";
|
|
26
|
+
export interface BridgeParity {
|
|
27
|
+
/** False when the plugin published no action list, so nothing was compared. */
|
|
28
|
+
checked: boolean;
|
|
29
|
+
/** Distinct bridge methods the advertised surface can dispatch to. */
|
|
30
|
+
advertised: number;
|
|
31
|
+
/** Methods the running plugin registered. */
|
|
32
|
+
registered: number;
|
|
33
|
+
/**
|
|
34
|
+
* Advertised methods the running plugin does not have, sorted. Every one is
|
|
35
|
+
* a call that will come back "Unknown method".
|
|
36
|
+
*/
|
|
37
|
+
missing: string[];
|
|
38
|
+
/** One line for a caller to surface, or null when there is nothing to say. */
|
|
39
|
+
message: string | null;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Compare the advertised surface against what the connected plugin registered.
|
|
43
|
+
*
|
|
44
|
+
* `graph` is the tool graph this server actually dispatches, so a category the
|
|
45
|
+
* user disabled and a plugin's injected actions are counted as they really
|
|
46
|
+
* are rather than from the pristine declaration.
|
|
47
|
+
*/
|
|
48
|
+
export declare function checkBridgeParity(graph: ToolDef[], capabilities: BridgeCapabilities | null | undefined): BridgeParity;
|
|
49
|
+
/**
|
|
50
|
+
* What the binary that answered says about itself, or undefined when nothing
|
|
51
|
+
* answered or it had nothing to add.
|
|
52
|
+
*
|
|
53
|
+
* `project(get_status)` already reports `pluginBuildStale` and
|
|
54
|
+
* `bridgeApiVersion`, and both are read off the SOURCE and the header on disk.
|
|
55
|
+
* `docs/architecture.md` states that distinction and it is the useful one, so
|
|
56
|
+
* the running binary's own account lives here as one field rather than as
|
|
57
|
+
* three more siblings next to them.
|
|
58
|
+
*
|
|
59
|
+
* Undefined on a healthy connected session, so a status payload only grows
|
|
60
|
+
* when there is something to say.
|
|
61
|
+
*/
|
|
62
|
+
export declare function deployedPlugin(capabilities: BridgeCapabilities | null | undefined, parity: BridgeParity): {
|
|
63
|
+
builtAt?: string;
|
|
64
|
+
missingActions?: number;
|
|
65
|
+
warning?: string;
|
|
66
|
+
} | undefined;
|
|
67
|
+
/**
|
|
68
|
+
* The same comparison the other way: methods the plugin has that nothing
|
|
69
|
+
* advertises.
|
|
70
|
+
*
|
|
71
|
+
* Not a defect and not reported by default. A handler can exist under an
|
|
72
|
+
* alternate spelling, or ship ahead of the TypeScript that will expose it, and
|
|
73
|
+
* `scripts/audit-handlers.mjs` is where that question is asked properly with
|
|
74
|
+
* the alternate-spelling table to hand. Here for a caller that wants the whole
|
|
75
|
+
* picture rather than only the half that breaks calls.
|
|
76
|
+
*/
|
|
77
|
+
export declare function unadvertisedMethods(graph: ToolDef[], capabilities: BridgeCapabilities | null | undefined): string[];
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/** How many missing methods to name before summarising the rest. */
|
|
2
|
+
const NAMED = 8;
|
|
3
|
+
/**
|
|
4
|
+
* Compare the advertised surface against what the connected plugin registered.
|
|
5
|
+
*
|
|
6
|
+
* `graph` is the tool graph this server actually dispatches, so a category the
|
|
7
|
+
* user disabled and a plugin's injected actions are counted as they really
|
|
8
|
+
* are rather than from the pristine declaration.
|
|
9
|
+
*/
|
|
10
|
+
export function checkBridgeParity(graph, capabilities) {
|
|
11
|
+
const registered = capabilities?.actions;
|
|
12
|
+
if (!Array.isArray(registered) || registered.length === 0) {
|
|
13
|
+
// An older plugin that predates the action list in the handshake. Silent
|
|
14
|
+
// rather than alarming: nothing was compared, so nothing is known, and
|
|
15
|
+
// saying "0 missing" would be the same false assurance this module exists
|
|
16
|
+
// to remove.
|
|
17
|
+
return { checked: false, advertised: 0, registered: 0, missing: [], message: null };
|
|
18
|
+
}
|
|
19
|
+
const have = new Set(registered);
|
|
20
|
+
const advertised = new Set();
|
|
21
|
+
for (const tool of graph) {
|
|
22
|
+
for (const spec of Object.values(tool.actions)) {
|
|
23
|
+
if (spec.kind === "bridge")
|
|
24
|
+
advertised.add(spec.bridge);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const missing = [...advertised].filter((m) => !have.has(m)).sort();
|
|
28
|
+
return {
|
|
29
|
+
checked: true,
|
|
30
|
+
advertised: advertised.size,
|
|
31
|
+
registered: registered.length,
|
|
32
|
+
missing,
|
|
33
|
+
message: missing.length === 0 ? null : describe(missing, advertised.size, registered.length),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function describe(missing, advertised, registered) {
|
|
37
|
+
const named = missing.slice(0, NAMED).join(", ");
|
|
38
|
+
const rest = missing.length > NAMED ? `, and ${missing.length - NAMED} more` : "";
|
|
39
|
+
return (`${missing.length} of the ${advertised} bridge methods this server advertises are not `
|
|
40
|
+
+ `registered by the plugin it is connected to (${registered} registered): ${named}${rest}. `
|
|
41
|
+
+ "Calling one returns 'Unknown method'. The usual cause is a deployed plugin behind this "
|
|
42
|
+
+ "package: redeploy and rebuild it (npm run up:build, or ue-mcp deploy then a build). "
|
|
43
|
+
+ "This is read from the running binary's own handler list, so it holds whatever the build "
|
|
44
|
+
+ "timestamps say.");
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* What the binary that answered says about itself, or undefined when nothing
|
|
48
|
+
* answered or it had nothing to add.
|
|
49
|
+
*
|
|
50
|
+
* `project(get_status)` already reports `pluginBuildStale` and
|
|
51
|
+
* `bridgeApiVersion`, and both are read off the SOURCE and the header on disk.
|
|
52
|
+
* `docs/architecture.md` states that distinction and it is the useful one, so
|
|
53
|
+
* the running binary's own account lives here as one field rather than as
|
|
54
|
+
* three more siblings next to them.
|
|
55
|
+
*
|
|
56
|
+
* Undefined on a healthy connected session, so a status payload only grows
|
|
57
|
+
* when there is something to say.
|
|
58
|
+
*/
|
|
59
|
+
export function deployedPlugin(capabilities, parity) {
|
|
60
|
+
if (!capabilities)
|
|
61
|
+
return undefined;
|
|
62
|
+
const missing = parity.missing.length > 0 ? parity.missing.length : undefined;
|
|
63
|
+
// The build time is the half that catches a handler which is PRESENT and
|
|
64
|
+
// old. #1002 was a DataTable resolution fix that shipped on 2026-08-28 and
|
|
65
|
+
// was reported as broken three days later by a session whose deployed plugin
|
|
66
|
+
// predated it, and nothing in reach said so: parity sees an absent method,
|
|
67
|
+
// not a stale one.
|
|
68
|
+
const builtAt = capabilities.builtAt;
|
|
69
|
+
if (!builtAt && missing === undefined)
|
|
70
|
+
return undefined;
|
|
71
|
+
return { builtAt, missingActions: missing, warning: parity.message ?? undefined };
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* The same comparison the other way: methods the plugin has that nothing
|
|
75
|
+
* advertises.
|
|
76
|
+
*
|
|
77
|
+
* Not a defect and not reported by default. A handler can exist under an
|
|
78
|
+
* alternate spelling, or ship ahead of the TypeScript that will expose it, and
|
|
79
|
+
* `scripts/audit-handlers.mjs` is where that question is asked properly with
|
|
80
|
+
* the alternate-spelling table to hand. Here for a caller that wants the whole
|
|
81
|
+
* picture rather than only the half that breaks calls.
|
|
82
|
+
*/
|
|
83
|
+
export function unadvertisedMethods(graph, capabilities) {
|
|
84
|
+
const registered = capabilities?.actions;
|
|
85
|
+
if (!Array.isArray(registered))
|
|
86
|
+
return [];
|
|
87
|
+
const advertised = new Set();
|
|
88
|
+
for (const tool of graph) {
|
|
89
|
+
for (const spec of Object.values(tool.actions)) {
|
|
90
|
+
if (spec.kind === "bridge")
|
|
91
|
+
advertised.add(spec.bridge);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return registered.filter((m) => !advertised.has(m)).sort();
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=bridge-parity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge-parity.js","sourceRoot":"","sources":["../src/bridge-parity.ts"],"names":[],"mappings":"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"}
|
package/dist/bridge-timeouts.js
CHANGED
|
@@ -70,6 +70,7 @@ export const REGISTERED_HANDLER_TIMEOUT_SECONDS = {
|
|
|
70
70
|
fix_asset_hygiene: 300,
|
|
71
71
|
fixup_redirectors: 300,
|
|
72
72
|
generate_mesh_collision: 300,
|
|
73
|
+
get_blueprint_connections: 600,
|
|
73
74
|
get_landscape_height_region: 120,
|
|
74
75
|
get_landscape_holes: 120,
|
|
75
76
|
get_landscape_layer_weight_region: 120,
|
|
@@ -91,6 +92,7 @@ export const REGISTERED_HANDLER_TIMEOUT_SECONDS = {
|
|
|
91
92
|
sculpt_landscape: 120,
|
|
92
93
|
sculpt_landscape_region: 300,
|
|
93
94
|
search_blueprint_call_sites: 600,
|
|
95
|
+
search_blueprint_nodes: 600,
|
|
94
96
|
set_actor_hlod_layer: 300,
|
|
95
97
|
set_component_materials: 300,
|
|
96
98
|
set_landscape_height_region: 300,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bridge-timeouts.js","sourceRoot":"","sources":["../src/bridge-timeouts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bridge-timeouts.js","sourceRoot":"","sources":["../src/bridge-timeouts.ts"],"names":[],"mappings":"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"}
|
package/dist/client-quirks.d.ts
CHANGED
|
@@ -14,3 +14,12 @@ export interface ClientInfo {
|
|
|
14
14
|
version?: string;
|
|
15
15
|
}
|
|
16
16
|
export declare function progressRenderingNote(client: ClientInfo | undefined): string | null;
|
|
17
|
+
/**
|
|
18
|
+
* Whether the elicitation form has to be preceded by handing the dialog over.
|
|
19
|
+
*
|
|
20
|
+
* `UE_MCP_DIALOG_RELAY=off` turns it off whatever the client is, so a client
|
|
21
|
+
* whose rendering is fine does not have to wait for a release to say so, and
|
|
22
|
+
* `=on` forces it back on. Anything else, including unset, leaves the decision
|
|
23
|
+
* to the client.
|
|
24
|
+
*/
|
|
25
|
+
export declare function elicitationNeedsRelay(client: ClientInfo | undefined): boolean;
|
package/dist/client-quirks.js
CHANGED
|
@@ -67,4 +67,46 @@ export function progressRenderingNote(client) {
|
|
|
67
67
|
"timeline above is what you would have watched live. Upgrading Claude Code " +
|
|
68
68
|
"restores the live view.");
|
|
69
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Clients that render a whole elicitation message, so the dialog does not need
|
|
72
|
+
* handing over on a call of its own first.
|
|
73
|
+
*
|
|
74
|
+
* The relay costs a round trip. It is worth it against a client that draws the
|
|
75
|
+
* opening line or two of an elicitation and collapses the rest behind "(+N
|
|
76
|
+
* more lines)", because there the person is otherwise choosing between buttons
|
|
77
|
+
* for a question they cannot read. Against a client that draws the lot it buys
|
|
78
|
+
* nothing and delays the form.
|
|
79
|
+
*
|
|
80
|
+
* The DEFAULT IS TO RELAY, and an unknown client relays. The two failure modes
|
|
81
|
+
* are not equal: relaying needlessly costs one call, and not relaying against a
|
|
82
|
+
* client that truncates puts a question in front of someone with the question
|
|
83
|
+
* missing. A client earns its way onto this list by being checked, not by being
|
|
84
|
+
* absent from the other one.
|
|
85
|
+
*
|
|
86
|
+
* Names are matched against the `clientInfo.name` a client sends at
|
|
87
|
+
* initialize, lowercased. Each entry needs verifying against the real string
|
|
88
|
+
* that client sends rather than the name it goes by in conversation.
|
|
89
|
+
*/
|
|
90
|
+
const RENDERS_WHOLE_ELICITATION = [
|
|
91
|
+
"pi-coding-agent",
|
|
92
|
+
];
|
|
93
|
+
/**
|
|
94
|
+
* Whether the elicitation form has to be preceded by handing the dialog over.
|
|
95
|
+
*
|
|
96
|
+
* `UE_MCP_DIALOG_RELAY=off` turns it off whatever the client is, so a client
|
|
97
|
+
* whose rendering is fine does not have to wait for a release to say so, and
|
|
98
|
+
* `=on` forces it back on. Anything else, including unset, leaves the decision
|
|
99
|
+
* to the client.
|
|
100
|
+
*/
|
|
101
|
+
export function elicitationNeedsRelay(client) {
|
|
102
|
+
const override = (process.env.UE_MCP_DIALOG_RELAY ?? "").trim().toLowerCase();
|
|
103
|
+
if (override === "off" || override === "0" || override === "false")
|
|
104
|
+
return false;
|
|
105
|
+
if (override === "on" || override === "1" || override === "true")
|
|
106
|
+
return true;
|
|
107
|
+
if (!client)
|
|
108
|
+
return true;
|
|
109
|
+
const name = client.name.toLowerCase();
|
|
110
|
+
return !RENDERS_WHOLE_ELICITATION.some((known) => name.includes(known));
|
|
111
|
+
}
|
|
70
112
|
//# sourceMappingURL=client-quirks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-quirks.js","sourceRoot":"","sources":["../src/client-quirks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,+DAA+D;AAC/D,SAAS,YAAY,CAAC,OAA2B;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,OAAO,OAAO;SACX,KAAK,CAAC,GAAG,CAAC;SACV,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,OAAO,CAAC,OAA2B,EAAE,MAAgB;IAC5D,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,0BAA0B,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAC/C,MAAM,6BAA6B,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAElD,MAAM,UAAU,qBAAqB,CAAC,MAA8B;IAClE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACvC,MAAM,YAAY,GAAG,IAAI,KAAK,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC5E,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,0BAA0B,CAAC;QAAE,OAAO,IAAI,CAAC;IACtE,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,6BAA6B,CAAC;QAAE,OAAO,IAAI,CAAC;IAExE,OAAO,CACL,qEAAqE,MAAM,CAAC,OAAO,IAAI,SAAS,GAAG;QACnG,sEAAsE;QACtE,+EAA+E;QAC/E,0EAA0E;QAC1E,4EAA4E;QAC5E,yBAAyB,CAC1B,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"client-quirks.js","sourceRoot":"","sources":["../src/client-quirks.ts"],"names":[],"mappings":"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"}
|
package/dist/dialog-guard.d.ts
CHANGED
|
@@ -39,6 +39,15 @@ export interface BlockingDialog {
|
|
|
39
39
|
}>;
|
|
40
40
|
}
|
|
41
41
|
export declare function isModalSafeMethod(method: string): boolean;
|
|
42
|
+
/**
|
|
43
|
+
* A dialog's message flattened onto one line, for a client that shows one.
|
|
44
|
+
*
|
|
45
|
+
* Unreal's own prompts are laid out over many lines (the shutdown Save Content
|
|
46
|
+
* prompt lists a package per line), and a renderer that keeps two of them shows
|
|
47
|
+
* two package names and hides the question. Flattened, the same budget carries
|
|
48
|
+
* the question itself.
|
|
49
|
+
*/
|
|
50
|
+
export declare function oneLine(text: string, limit?: number): string;
|
|
42
51
|
/** True for the refusal the plugin's own gate emits. */
|
|
43
52
|
export declare function isDialogRefusal(v: unknown): boolean;
|
|
44
53
|
/** A button press, and whether the editor confirmed it landed. */
|
|
@@ -46,6 +55,16 @@ export interface DialogPress {
|
|
|
46
55
|
button: string;
|
|
47
56
|
confirmed: boolean;
|
|
48
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Where interactive has got to with one dialog.
|
|
60
|
+
*
|
|
61
|
+
* relay the whole dialog has just been handed back, nothing asked yet
|
|
62
|
+
* asking the caller has had it, so the form is up or has been
|
|
63
|
+
*
|
|
64
|
+
* Reported as `dialogPhase` so a caller can tell "you have not seen this yet"
|
|
65
|
+
* from "the person is looking at it", which are otherwise the same refusal.
|
|
66
|
+
*/
|
|
67
|
+
export type DialogPhase = "relay" | "asking";
|
|
49
68
|
/** What a caller must do about this call. */
|
|
50
69
|
export type GuardDecision = {
|
|
51
70
|
allow: true;
|
|
@@ -92,6 +111,16 @@ export declare class DialogGuard {
|
|
|
92
111
|
private pressed;
|
|
93
112
|
/** Identity of the dialog the last press was aimed at. */
|
|
94
113
|
private lastAsked;
|
|
114
|
+
/**
|
|
115
|
+
* Every dialog whose full text has already gone back to a caller.
|
|
116
|
+
*
|
|
117
|
+
* A SET, not the one slot `lastAsked` uses, because two dialogs can be in
|
|
118
|
+
* play at once (parallel callers, or a prompt raised behind another) and one
|
|
119
|
+
* slot thrashes between them: telling the caller about the second forgets the
|
|
120
|
+
* first, so the first is relayed a second time and its form never goes up.
|
|
121
|
+
* Bounded by the same clean screen that resets everything else.
|
|
122
|
+
*/
|
|
123
|
+
private told;
|
|
95
124
|
/** The ask in flight, so parallel calls share it instead of each asking. */
|
|
96
125
|
private asking;
|
|
97
126
|
/** Which dialog that in-flight ask is about. */
|
|
@@ -120,17 +149,34 @@ export declare class DialogGuard {
|
|
|
120
149
|
*/
|
|
121
150
|
clear(): void;
|
|
122
151
|
/**
|
|
123
|
-
*
|
|
152
|
+
* Forget what has been said about a dialog, so the next one starts over.
|
|
124
153
|
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
154
|
+
* Both records are per-dialog and both are reset together: told-but-not-asked
|
|
155
|
+
* is a real state (the caller has the text and has not retried yet), and
|
|
156
|
+
* clearing one without the other either asks about a dialog nobody has read
|
|
157
|
+
* or re-reads one already answered.
|
|
129
158
|
*
|
|
130
|
-
*
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
159
|
+
* Only ever called where the screen is PROVEN clear, alongside `clear`.
|
|
160
|
+
*/
|
|
161
|
+
private forgetDialogRecords;
|
|
162
|
+
/**
|
|
163
|
+
* Whether the AGENT gets to answer the dialog in this mode.
|
|
164
|
+
*
|
|
165
|
+
* The one place that rule lives, and it settles two things that used to be
|
|
166
|
+
* settled separately: whether a refusal advertises the calls that press the
|
|
167
|
+
* buttons, and whether a press arriving as a tool call is accepted. They are
|
|
168
|
+
* the same question. Advertising without enforcing is how an agent came to
|
|
169
|
+
* answer a modal under interactive, which is the one outcome that mode
|
|
170
|
+
* exists to prevent.
|
|
171
|
+
*
|
|
172
|
+
* `auto` is the only mode whose contract hands the choice to the agent.
|
|
173
|
+
* interactive puts the question to the person over an elicitation form and
|
|
174
|
+
* presses only what they pick; defer waits for them at the editor's own
|
|
175
|
+
* window. In neither is a button the agent chose an acceptable answer, so
|
|
176
|
+
* neither names the press calls and neither accepts one.
|
|
177
|
+
*
|
|
178
|
+
* canElicit is still read, because interactive with nobody to ask is defer
|
|
179
|
+
* (see effectiveMode) rather than a quiet promotion to auto.
|
|
134
180
|
*/
|
|
135
181
|
static handsOverPressCalls(mode: DialogMode, canElicit?: boolean): boolean;
|
|
136
182
|
/**
|
|
@@ -157,15 +203,20 @@ export declare class DialogGuard {
|
|
|
157
203
|
canElicit?: boolean;
|
|
158
204
|
}): Promise<GuardDecision>;
|
|
159
205
|
/**
|
|
160
|
-
*
|
|
206
|
+
* Whether this call has a person on it who can be shown a form.
|
|
207
|
+
*
|
|
208
|
+
* Both halves matter: the route has to carry somebody (an HTTP request does
|
|
209
|
+
* not) and the client has to have advertised elicitation. Computed once here
|
|
210
|
+
* so the gate and the refusal cannot answer it differently.
|
|
211
|
+
*/
|
|
212
|
+
private canAsk;
|
|
213
|
+
/**
|
|
214
|
+
* Whether this client's rendering makes the handover worth a call.
|
|
161
215
|
*
|
|
162
|
-
*
|
|
163
|
-
*
|
|
164
|
-
* status thread keeps publishing holds the latch fresh indefinitely, so
|
|
165
|
-
* gating these refused the only way back forever. They still report the
|
|
166
|
-
* dialog through the same stamp every allowed read carries.
|
|
216
|
+
* Asked of the live elicit function rather than stored, because the client is
|
|
217
|
+
* only knowable once one has connected and this guard outlives connections.
|
|
167
218
|
*/
|
|
168
|
-
|
|
219
|
+
private needsRelay;
|
|
169
220
|
/**
|
|
170
221
|
* The decision about a dialog the caller ALREADY has, with no probe.
|
|
171
222
|
*
|
|
@@ -199,7 +250,7 @@ export declare class DialogGuard {
|
|
|
199
250
|
/** The one refusal shape, whatever the route and whatever the mode. */
|
|
200
251
|
refusal(subject: string, dialog: BlockingDialog, opts?: {
|
|
201
252
|
canElicit?: boolean;
|
|
202
|
-
}): Record<string, unknown>;
|
|
253
|
+
}, phase?: DialogPhase): Record<string, unknown>;
|
|
203
254
|
/**
|
|
204
255
|
* The refusal shape. ONE definition, so every route hands a caller the same
|
|
205
256
|
* fields to branch on.
|
|
@@ -210,7 +261,7 @@ export declare class DialogGuard {
|
|
|
210
261
|
* `dialogTitle`, `dialogMessage` or `error`, so a client reading those got
|
|
211
262
|
* undefined depending on which route refused it.
|
|
212
263
|
*/
|
|
213
|
-
static describeRefusal(subject: string, dialog: BlockingDialog, resolvedMode: DialogMode, canElicit?: boolean): Record<string, unknown>;
|
|
264
|
+
static describeRefusal(subject: string, dialog: BlockingDialog, resolvedMode: DialogMode, canElicit?: boolean, phase?: DialogPhase): Record<string, unknown>;
|
|
214
265
|
/**
|
|
215
266
|
* Learn from a bridge reply.
|
|
216
267
|
*
|
|
@@ -266,7 +317,7 @@ export declare function withoutDialogActuation<T extends IBridge>(session: Edito
|
|
|
266
317
|
* cannot carry the fields: an array is `typeof "object"`, so it took the
|
|
267
318
|
* properties and then lost them silently in JSON.stringify.
|
|
268
319
|
*/
|
|
269
|
-
export declare function stampBlockedEditor(data: unknown, dialog: BlockingDialog | null): unknown;
|
|
320
|
+
export declare function stampBlockedEditor(data: unknown, dialog: BlockingDialog | null, mode?: DialogMode): unknown;
|
|
270
321
|
/**
|
|
271
322
|
* The guard for a session, created from the session itself if it has none.
|
|
272
323
|
*
|