ue-mcp 1.3.1 → 1.3.3

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 CHANGED
@@ -177,7 +177,7 @@ Details: [Guards](https://ue-mcp.com/docs/plugins-guards/) and [Handler Conventi
177
177
 
178
178
  | | |
179
179
  |---|---|
180
- | **Unreal Engine** | 5.4-5.8 (Windows), 5.6+ (Linux and macOS). Compiled and verified on 5.7 and 5.8; 5.4 to 5.6 are version-gated in source but not built here. `epic` category needs 5.8+. |
180
+ | **Unreal Engine** | 5.4-5.8 (Windows), 5.6+ (Linux and macOS). `epic` category needs 5.8+. |
181
181
  | **Node.js** | 18 or newer |
182
182
  | **UE plugins** | `PythonScriptPlugin` (ships with the engine); `init` enables the rest for you |
183
183
  | **C++ toolchain** | Required - the bridge is a C++ plugin and compiles on first editor launch. On Windows that means Visual Studio with the C++ workload; on macOS, Xcode command line tools. |
@@ -0,0 +1,73 @@
1
+ /**
2
+ * The server half of the dialog gate.
3
+ *
4
+ * The plugin refuses every non-modal-safe bridge method while a modal is up
5
+ * (BridgeServer.cpp), which covers anything that needs the editor. It cannot
6
+ * cover what never reaches it: the offline actions served from this process,
7
+ * and the handful the bridge answers without the game thread. Those kept
8
+ * working while Unreal sat on a modal, so an agent could carry on reading
9
+ * config and searching the tool graph and never notice the editor was stuck.
10
+ *
11
+ * This closes that. One latch per session, set the moment any bridge call
12
+ * comes back refused, and every tool call is turned away until the dialog is
13
+ * gone. The probe that clears it is `list_dialogs`, which is modal-safe by
14
+ * construction, so the check works while the game thread is parked.
15
+ */
16
+ import type { EditorSession } from "./session.js";
17
+ import type { ElicitFn } from "./types.js";
18
+ import type { DialogMode } from "./user-state.js";
19
+ export interface BlockingDialogInfo {
20
+ dialogTitle: string;
21
+ dialogMessage: string;
22
+ buttons: string[];
23
+ choices: Array<{
24
+ buttonLabel: string;
25
+ respondWith: string;
26
+ }>;
27
+ }
28
+ /** True for the refusal shape the plugin's gate returns. */
29
+ export declare function isDialogRefusal(v: unknown): v is BlockingDialogInfo & {
30
+ dialogBlocking: true;
31
+ };
32
+ /** Remember that this editor is sitting on a modal. */
33
+ export declare function noteDialogBlocking(session: EditorSession, info: BlockingDialogInfo): void;
34
+ /** Forget it, once the dialog is gone. */
35
+ export declare function clearDialogBlocking(session: EditorSession): void;
36
+ export declare function latchedDialog(session: EditorSession): BlockingDialogInfo | undefined;
37
+ /**
38
+ * The refusal a gated call gets, in the same shape the plugin emits so a
39
+ * caller has one thing to branch on wherever the refusal came from.
40
+ */
41
+ export declare function buildRefusal(taskName: string, info: BlockingDialogInfo, mode?: DialogMode): Record<string, unknown>;
42
+ /**
43
+ * Whether this call is gated, re-probing the editor so a dialog answered by
44
+ * hand in the editor window does not leave the latch stuck on.
45
+ *
46
+ * `probe` runs `list_dialogs`. A probe that throws leaves the latch alone and
47
+ * lets the call through: the editor being unreachable is a different failure,
48
+ * and reporting it as a dialog would be a lie.
49
+ */
50
+ export interface GateOptions {
51
+ /** How this machine wants a blocking dialog handled. */
52
+ mode: DialogMode;
53
+ /** Reads the live dialog list. Modal-safe, so it answers while parked. */
54
+ probe: () => Promise<unknown>;
55
+ /** Presses one button by label. */
56
+ press: (buttonLabel: string) => Promise<unknown>;
57
+ /** Present when the connected client advertised elicitation. */
58
+ elicit?: ElicitFn;
59
+ }
60
+ export declare function gateForDialog(session: EditorSession, taskName: string, opts: GateOptions): Promise<Record<string, unknown> | null>;
61
+ /**
62
+ * Turn the plugin's own refusal into the one this machine's mode calls for.
63
+ *
64
+ * The plugin gate fires first for anything needing the editor and knows
65
+ * nothing about the mode, so without this the first blocked call would get its
66
+ * wording and the next, caught by the latch, would get the mode's. Same
67
+ * decision either way.
68
+ *
69
+ * Returns the refusal to send back, or null when the person answered the
70
+ * dialog through the elicitation form, in which case the editor is free again
71
+ * and the caller is told to retry.
72
+ */
73
+ export declare function reshapeDialogRefusal(session: EditorSession, taskName: string, info: BlockingDialogInfo, opts: GateOptions): Promise<Record<string, unknown> | null>;
@@ -0,0 +1,197 @@
1
+ /** Actions that must stay reachable, or the dialog could never be answered. */
2
+ const ALWAYS_ALLOWED = new Set([
3
+ "editor.list_dialogs",
4
+ "editor.respond_to_dialog",
5
+ "editor.get_dialog_policy",
6
+ "editor.set_dialog_policy",
7
+ "editor.clear_dialog_policy",
8
+ // Reading engine state is how a caller works out what is going on, and it is
9
+ // served without the game thread, so it answers while a modal is up.
10
+ "editor.get_engine_state",
11
+ "project.get_status",
12
+ ]);
13
+ /** True for the refusal shape the plugin's gate returns. */
14
+ export function isDialogRefusal(v) {
15
+ return (typeof v === "object"
16
+ && v !== null
17
+ && v.dialogBlocking === true);
18
+ }
19
+ const latched = new WeakMap();
20
+ /** Remember that this editor is sitting on a modal. */
21
+ export function noteDialogBlocking(session, info) {
22
+ latched.set(session, {
23
+ dialogTitle: info.dialogTitle ?? "",
24
+ dialogMessage: info.dialogMessage ?? "",
25
+ buttons: Array.isArray(info.buttons) ? info.buttons : [],
26
+ choices: Array.isArray(info.choices) ? info.choices : [],
27
+ });
28
+ }
29
+ /** Forget it, once the dialog is gone. */
30
+ export function clearDialogBlocking(session) {
31
+ latched.delete(session);
32
+ }
33
+ export function latchedDialog(session) {
34
+ return latched.get(session);
35
+ }
36
+ /**
37
+ * The refusal a gated call gets, in the same shape the plugin emits so a
38
+ * caller has one thing to branch on wherever the refusal came from.
39
+ */
40
+ export function buildRefusal(taskName, info, mode = "auto") {
41
+ const common = {
42
+ success: false,
43
+ dialogBlocking: true,
44
+ refusedMethod: taskName,
45
+ dialogMode: mode,
46
+ dialogTitle: info.dialogTitle,
47
+ dialogMessage: info.dialogMessage,
48
+ buttons: info.buttons,
49
+ };
50
+ const preamble = `A modal dialog is blocking the editor, so '${taskName}' was refused without running. `
51
+ + "Unreal cannot execute anything else until the dialog is answered. ";
52
+ if (mode === "defer") {
53
+ return {
54
+ ...common,
55
+ error: preamble
56
+ + "Dialog mode is defer, so this reports the dialog for recognition rather than "
57
+ + "actuation: answer it in the Unreal Editor window. To answer it from here instead, "
58
+ + "read it with editor(list_dialogs) and press with editor(respond_to_dialog), which "
59
+ + "is a decision you make rather than one this payload makes for you.",
60
+ };
61
+ }
62
+ return {
63
+ ...common,
64
+ choices: info.choices,
65
+ error: preamble
66
+ + "Read it in dialogMessage, choose a button, and press it with the call beside it in "
67
+ + "choices. Every other action returns this same refusal until then.",
68
+ };
69
+ }
70
+ export async function gateForDialog(session, taskName, opts) {
71
+ if (ALWAYS_ALLOWED.has(taskName))
72
+ return null;
73
+ if (!latched.has(session))
74
+ return null;
75
+ let live;
76
+ try {
77
+ live = await opts.probe();
78
+ }
79
+ catch {
80
+ return null;
81
+ }
82
+ const refreshed = readDialog(live);
83
+ if (!refreshed) {
84
+ clearDialogBlocking(session);
85
+ return null;
86
+ }
87
+ noteDialogBlocking(session, refreshed);
88
+ // interactive: the dialog is a question, so it goes to the person, and only
89
+ // the button THEY pick is pressed. Answering it clears the way, so the call
90
+ // that tripped the gate goes on to run rather than making them ask twice.
91
+ if (opts.mode === "interactive" && opts.elicit) {
92
+ const pressed = await askUser(refreshed, opts);
93
+ if (pressed) {
94
+ clearDialogBlocking(session);
95
+ return null;
96
+ }
97
+ }
98
+ // defer reports the dialog for recognition rather than actuation, so the
99
+ // press calls are withheld, here as in stop_editor, or defer would differ
100
+ // from auto in wording only.
101
+ return buildRefusal(taskName, refreshed, opts.mode);
102
+ }
103
+ /** The dialog the probe found, or null when the editor reports none. */
104
+ function readDialog(live) {
105
+ const dialogs = live?.dialogs;
106
+ const first = Array.isArray(dialogs) ? dialogs[0] : undefined;
107
+ if (!first)
108
+ return null;
109
+ const d = first;
110
+ return {
111
+ dialogTitle: typeof d.title === "string" ? d.title : "",
112
+ dialogMessage: typeof d.message === "string" ? d.message : "",
113
+ buttons: Array.isArray(d.buttons) ? d.buttons : [],
114
+ choices: Array.isArray(d.choices)
115
+ ? d.choices
116
+ : [],
117
+ };
118
+ }
119
+ /**
120
+ * Put the dialog to the person and press what they choose.
121
+ *
122
+ * Returns the label pressed, or null when nothing was. Declining, leaving it
123
+ * open, a client with no elicitation UI, or a press the editor refused all come
124
+ * back null, and the caller then reports the dialog rather than pretending it
125
+ * is gone.
126
+ */
127
+ async function askUser(dialog, opts) {
128
+ if (!opts.elicit || dialog.buttons.length === 0)
129
+ return null;
130
+ const LEAVE_OPEN = "Leave the dialog open";
131
+ let answer;
132
+ try {
133
+ answer = await opts.elicit({
134
+ message: [
135
+ "Unreal Editor is blocked on a modal dialog and is waiting for an answer.",
136
+ "Nothing else can run until it is answered.",
137
+ "",
138
+ "Title: " + dialog.dialogTitle,
139
+ dialog.dialogMessage === "" ? "(no message text)" : dialog.dialogMessage,
140
+ "",
141
+ "Choose the button to press. Nothing is pressed unless you choose it.",
142
+ ].join("\n"),
143
+ requestedSchema: {
144
+ type: "object",
145
+ properties: {
146
+ button: {
147
+ type: "string",
148
+ title: "Button",
149
+ description: "The dialog's own buttons, in the order it lays them out.",
150
+ enum: [...dialog.buttons, LEAVE_OPEN],
151
+ },
152
+ },
153
+ required: ["button"],
154
+ },
155
+ });
156
+ }
157
+ catch {
158
+ return null;
159
+ }
160
+ if (answer.action !== "accept")
161
+ return null;
162
+ const chosen = answer.content?.button;
163
+ if (typeof chosen !== "string" || chosen === LEAVE_OPEN)
164
+ return null;
165
+ if (!dialog.buttons.includes(chosen))
166
+ return null;
167
+ try {
168
+ await opts.press(chosen);
169
+ }
170
+ catch {
171
+ return null;
172
+ }
173
+ return chosen;
174
+ }
175
+ /**
176
+ * Turn the plugin's own refusal into the one this machine's mode calls for.
177
+ *
178
+ * The plugin gate fires first for anything needing the editor and knows
179
+ * nothing about the mode, so without this the first blocked call would get its
180
+ * wording and the next, caught by the latch, would get the mode's. Same
181
+ * decision either way.
182
+ *
183
+ * Returns the refusal to send back, or null when the person answered the
184
+ * dialog through the elicitation form, in which case the editor is free again
185
+ * and the caller is told to retry.
186
+ */
187
+ export async function reshapeDialogRefusal(session, taskName, info, opts) {
188
+ if (opts.mode === "interactive" && opts.elicit) {
189
+ const pressed = await askUser(info, opts);
190
+ if (pressed) {
191
+ clearDialogBlocking(session);
192
+ return null;
193
+ }
194
+ }
195
+ return buildRefusal(taskName, info, opts.mode);
196
+ }
197
+ //# sourceMappingURL=dialog-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-gate.js","sourceRoot":"","sources":["../src/dialog-gate.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,16 @@ export declare class GuardedBridge implements IBridge {
13
13
  /** The session this pipeline belongs to, so guards can see which editor
14
14
  * they are guarding rather than assuming the process has only one. */
15
15
  session?: EditorSession | undefined);
16
+ /**
17
+ * Arm or clear the dialog latch from what the editor just said.
18
+ *
19
+ * Every bridge call funnels through here, so the latch is set by the first
20
+ * refusal the plugin's gate emits rather than by a poll. Anything that comes
21
+ * back normally proves the game thread is running again, which is what
22
+ * clears it: an agent that answers the dialog does not then have to tell the
23
+ * server it did.
24
+ */
25
+ private noteDialogState;
16
26
  get isConnected(): boolean;
17
27
  connect(timeoutMs?: number): Promise<void>;
18
28
  retargetProject(uprojectPath: string, configPort?: number): BridgeTarget;
@@ -13,6 +13,7 @@
13
13
  import { runGuarded } from "@db-lyon/flowkit/guard";
14
14
  import { explainEditorDownWithEvidence } from "../offline.js";
15
15
  import { makeCallContext } from "./guard.js";
16
+ import { isDialogRefusal, noteDialogBlocking, clearDialogBlocking } from "../dialog-gate.js";
16
17
  export class GuardedBridge {
17
18
  inner;
18
19
  registry;
@@ -27,6 +28,24 @@ export class GuardedBridge {
27
28
  this.resolveExistingFile = resolveExistingFile;
28
29
  this.session = session;
29
30
  }
31
+ /**
32
+ * Arm or clear the dialog latch from what the editor just said.
33
+ *
34
+ * Every bridge call funnels through here, so the latch is set by the first
35
+ * refusal the plugin's gate emits rather than by a poll. Anything that comes
36
+ * back normally proves the game thread is running again, which is what
37
+ * clears it: an agent that answers the dialog does not then have to tell the
38
+ * server it did.
39
+ */
40
+ noteDialogState(result) {
41
+ if (!this.session)
42
+ return result;
43
+ if (isDialogRefusal(result))
44
+ noteDialogBlocking(this.session, result);
45
+ else
46
+ clearDialogBlocking(this.session);
47
+ return result;
48
+ }
30
49
  get isConnected() {
31
50
  return this.inner.isConnected;
32
51
  }
@@ -45,10 +64,10 @@ export class GuardedBridge {
45
64
  // the context is not free and every bridge call lands here. Most servers run
46
65
  // with no guards at all, so skip the allocation outright.
47
66
  if (this.registry.size === 0) {
48
- return await this.inner.call(method, params, timeoutMs);
67
+ return this.noteDialogState(await this.inner.call(method, params, timeoutMs));
49
68
  }
50
69
  const ctx = makeCallContext(method, params ?? {}, timeoutMs, this.inner, this.resolveExistingFile, this.session);
51
- return await runGuarded(ctx, this.registry, () => this.inner.call(method, params, timeoutMs));
70
+ return this.noteDialogState(await runGuarded(ctx, this.registry, () => this.inner.call(method, params, timeoutMs)));
52
71
  }
53
72
  catch (e) {
54
73
  // Every route into the editor comes through here (an MCP tool call, a
@@ -1 +1 @@
1
- {"version":3,"file":"guarded-bridge.js","sourceRoot":"","sources":["../../src/flow/guarded-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAiB,eAAe,EAA4B,MAAM,YAAY,CAAC;AAItF,MAAM,OAAO,aAAa;IAEL;IACA;IACA;IAGA;IANnB,YACmB,KAAc,EACd,QAAuB,EACvB,mBAAwC;IACzD;2EACuE;IACtD,OAAuB;QALvB,UAAK,GAAL,KAAK,CAAS;QACd,aAAQ,GAAR,QAAQ,CAAe;QACvB,wBAAmB,GAAnB,mBAAmB,CAAqB;QAGxC,YAAO,GAAP,OAAO,CAAgB;IACvC,CAAC;IAEJ,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,SAAkB;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,eAAe,CAAC,YAAoB,EAAE,UAAmB;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,IAAI,CACR,MAAc,EACd,MAAgC,EAChC,SAAkB;QAElB,IAAI,CAAC;YACH,4EAA4E;YAC5E,6EAA6E;YAC7E,0DAA0D;YAC1D,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAC1D,CAAC;YAED,MAAM,GAAG,GAAG,eAAe,CACzB,MAAM,EACN,MAAM,IAAI,EAAE,EACZ,SAAS,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,OAAO,CACb,CAAC;YACF,OAAO,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;QAChG,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,sEAAsE;YACtE,oEAAoE;YACpE,+DAA+D;YAC/D,qEAAqE;YACrE,iCAAiC;YACjC,MAAM,MAAM,6BAA6B,CAAC,CAAC,EAAE;gBAC3C,MAAM;gBACN,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,WAAW;gBAC/C,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI;gBACjC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,UAAU;aAC9C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"guarded-bridge.js","sourceRoot":"","sources":["../../src/flow/guarded-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAiB,eAAe,EAA4B,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAI7F,MAAM,OAAO,aAAa;IAEL;IACA;IACA;IAGA;IANnB,YACmB,KAAc,EACd,QAAuB,EACvB,mBAAwC;IACzD;2EACuE;IACtD,OAAuB;QALvB,UAAK,GAAL,KAAK,CAAS;QACd,aAAQ,GAAR,QAAQ,CAAe;QACvB,wBAAmB,GAAnB,mBAAmB,CAAqB;QAGxC,YAAO,GAAP,OAAO,CAAgB;IACvC,CAAC;IAEJ;;;;;;;;OAQG;IACK,eAAe,CAAI,MAAS;QAClC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC;QACjC,IAAI,eAAe,CAAC,MAAM,CAAC;YAAE,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;;YACjE,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAChC,CAAC;IAED,OAAO,CAAC,SAAkB;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,eAAe,CAAC,YAAoB,EAAE,UAAmB;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,IAAI,CACR,MAAc,EACd,MAAgC,EAChC,SAAkB;QAElB,IAAI,CAAC;YACH,4EAA4E;YAC5E,6EAA6E;YAC7E,0DAA0D;YAC1D,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;YAChF,CAAC;YAED,MAAM,GAAG,GAAG,eAAe,CACzB,MAAM,EACN,MAAM,IAAI,EAAE,EACZ,SAAS,EACT,IAAI,CAAC,KAAK,EACV,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,OAAO,CACb,CAAC;YACF,OAAO,IAAI,CAAC,eAAe,CACzB,MAAM,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CACvF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,sEAAsE;YACtE,oEAAoE;YACpE,+DAA+D;YAC/D,qEAAqE;YACrE,iCAAiC;YACjC,MAAM,MAAM,6BAA6B,CAAC,CAAC,EAAE;gBAC3C,MAAM;gBACN,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,WAAW;gBAC/C,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI;gBACjC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,UAAU;aAC9C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
package/dist/index.js CHANGED
@@ -9,6 +9,8 @@ import { resolveContextStrategy, applyLeanContext, buildMicroGateway } from "./l
9
9
  import { routeEditorCall, effectiveTaskName, refuseUntargetedInRegistry, editorAttribution, } from "./editor-gate.js";
10
10
  import { injectEditorTarget, removeEditorTarget, injectMigrateTarget, removeMigrateTarget, stripEditorTarget, sessionContext, EDITOR_TARGET_PARAM, } from "./types.js";
11
11
  import { McpError, ErrorCode } from "./errors.js";
12
+ import { gateForDialog, reshapeDialogRefusal, noteDialogBlocking, isDialogRefusal, } from "./dialog-gate.js";
13
+ import { resolveDialogMode, clientAdvertisesElicitation } from "./editor-control.js";
12
14
  import { info, warn, debug } from "./log.js";
13
15
  import { startVersionCheck, consumeUpgradeNotice } from "./version-check.js";
14
16
  import { buildFlowRegistry } from "./flow/registry.js";
@@ -547,6 +549,28 @@ async function main() {
547
549
  isError: true,
548
550
  };
549
551
  }
552
+ // THE DIALOG GATE, server half. The plugin refuses anything that needs
553
+ // the editor while a modal is up; this covers what never reaches it, so
554
+ // there is no action anywhere that quietly works around a stuck editor.
555
+ //
556
+ // The dialog handling mode is resolved HERE, per call, so it governs the
557
+ // whole surface rather than the two lifecycle actions that used to be
558
+ // the only things that consulted it.
559
+ const canElicit = clientAdvertisesElicitation(ctx.elicit);
560
+ const gated = await gateForDialog(session, taskName, {
561
+ mode: resolveDialogMode({ projectDir: session.projectDir, canElicit }).mode,
562
+ probe: () => session.guarded.call("list_dialogs", {}),
563
+ press: (buttonLabel) => session.guarded.call("respond_to_dialog", { buttonLabel }),
564
+ elicit: canElicit ? ctx.elicit : undefined,
565
+ });
566
+ if (gated) {
567
+ return {
568
+ content: withUpgradeNotice([
569
+ { type: "text", text: JSON.stringify(gated, null, 2) },
570
+ ]),
571
+ isError: true,
572
+ };
573
+ }
550
574
  const { action: _, ...taskParams } = params;
551
575
  const flowCtx = {
552
576
  bridge: session.guarded,
@@ -638,6 +662,57 @@ async function main() {
638
662
  isError: true,
639
663
  };
640
664
  }
665
+ // The plugin's own gate refuses anything needing the editor, and it
666
+ // does not know this machine's dialog mode. Reshaping its refusal here
667
+ // is what stops the mode applying to some calls and not others: the
668
+ // first blocked call would otherwise get the plugin's wording and the
669
+ // next one, caught by the latch, would get the mode's.
670
+ if (isDialogRefusal(result.data)) {
671
+ const info = {
672
+ dialogTitle: String(result.data.dialogTitle ?? ""),
673
+ dialogMessage: String(result.data.dialogMessage ?? ""),
674
+ buttons: Array.isArray(result.data.buttons) ? result.data.buttons : [],
675
+ choices: Array.isArray(result.data.choices)
676
+ ? result.data.choices
677
+ : [],
678
+ };
679
+ noteDialogBlocking(session, info);
680
+ const reshaped = await reshapeDialogRefusal(session, taskName, info, {
681
+ mode: resolveDialogMode({ projectDir: session.projectDir, canElicit }).mode,
682
+ probe: () => session.guarded.call("list_dialogs", {}),
683
+ press: (buttonLabel) => session.guarded.call("respond_to_dialog", { buttonLabel }),
684
+ elicit: canElicit ? ctx.elicit : undefined,
685
+ });
686
+ if (reshaped) {
687
+ return {
688
+ content: withUpgradeNotice([
689
+ { type: "text", text: JSON.stringify(reshaped, null, 2) },
690
+ ...attribution(session),
691
+ ]),
692
+ isError: true,
693
+ };
694
+ }
695
+ // Answered through the elicitation form, so the dialog is gone and
696
+ // the caller is told to make the call again rather than being handed
697
+ // a refusal that is no longer true.
698
+ return {
699
+ content: withUpgradeNotice([
700
+ {
701
+ type: "text",
702
+ text: JSON.stringify({
703
+ success: false,
704
+ dialogAnswered: true,
705
+ dialogTitle: info.dialogTitle,
706
+ retry: taskName,
707
+ note: "The blocking dialog was answered by the user, so the editor is running "
708
+ + `again. '${taskName}' did not run; call it again.`,
709
+ }, null, 2),
710
+ },
711
+ ...attribution(session),
712
+ ]),
713
+ isError: true,
714
+ };
715
+ }
641
716
  const stringify = (v) => typeof v === "string" ? v : JSON.stringify(v, null, 2);
642
717
  // Preserve directive responses (execute_python workaround tracking).
643
718
  // Emit three blocks: (1) prose directive, (2) machine-readable JSON
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAsB,MAAM,cAAc,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACtI,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAChG,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,GAElB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,mBAAmB,GAOpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,WAAW,EAAqB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,0BAA0B,EAAoB,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,oBAAoB,GAErB,MAAM,sBAAsB,CAAC;AAI9B,SAAS,iBAAiB,CAAC,OAAoB;IAC7C,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAClF,CAAC;AAED;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,CAAU;IACnC,IAAI,CAAC,CAAC,CAAC,YAAY,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACtD,OAAO,CAAC;YACN,IAAI,EAAE,MAAe;YACrB,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;SACxE,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,oBAAoB,CAAC,KAG7B;IACC,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC;IAC1C,2EAA2E;IAC3E,2EAA2E;IAC3E,yDAAyD;IACzD,MAAM,IAAI,GAAG,KAAK,EAAE,gBAEP,CAAC;IAEd,2EAA2E;IAC3E,qEAAqE;IACrE,wEAAwE;IACxE,kEAAkE;IAClE,uCAAuC;IACvC,KAAK,CAAC,UAAU,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,oEAAoE,CAAC,CAAC,CAAC,0BAA0B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE3J,IAAI,KAAK,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IAExE,OAAO,CAAC,MAAsB,EAAQ,EAAE;QACtC,4EAA4E;QAC5E,KAAK,OAAO,CAAC,OAAO,CAClB,IAAI,CAAC;YACH,MAAM,EAAE,wBAAwB;YAChC,MAAM,EAAE;gBACN,aAAa,EAAE,KAAK;gBACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9D,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB;SACF,CAAC,CACH,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,wEAAwE;IACxE,sEAAsE;IACtE,6CAA6C;IAC7C,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,aAAa,CAAC,CAAC;IAEpD,4EAA4E;IAC5E,sDAAsD;IACtD,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;IAC9D,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAE/B,oEAAoE;IACpE,qEAAqE;IACrE,0BAA0B;IAC1B,EAAE;IACF,yEAAyE;IACzE,uEAAuE;IACvE,2EAA2E;IAC3E,2EAA2E;IAC3E,6CAA6C;IAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAE5E,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;YACxD,OAAO,CAAC,KAAK,CACX,4BAA4B,OAAO,CAAC,OAAO,CAAC,WAAW,YAAY,OAAO,CAAC,OAAO,CAAC,iBAAiB,IAAI,SAAS,GAAG;gBAClH,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,OAAO,CAAC,IAAI,aAAa,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAChG,CAAC;YAEF,iEAAiE;YACjE,qEAAqE;YACrE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,CAAC,KAAK,CAAC,YAAY,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAEnD,uEAAuE;YACvE,oEAAoE;YACpE,qEAAqE;YACrE,oDAAoD;YACpD,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACpE,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACzC,OAAO,CAAC,KAAK,CAAC,qBAAqB,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1D,CAAC;YAED,yEAAyE;YACzE,oEAAoE;YACpE,qEAAqE;YACrE,sDAAsD;YACtD,KAAK,MAAM,IAAI,IAAI,wBAAwB,CAAC,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBAC/F,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,0CAA0C,GAAG,MAAM,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzG,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,wEAAwE;IACxE,KAAK,MAAM,IAAI,IAAI,qBAAqB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;QAC7E,OAAO,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,uEAAuE;IACvE,sEAAsE;IACtE,2EAA2E;IAC3E,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC;QAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAE/C,4EAA4E;IAC5E,sEAAsE;IACtE,4EAA4E;IAC5E,iBAAiB;IACjB,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAE9B,oEAAoE;IACpE,6EAA6E;IAC7E,0EAA0E;IAC1E,6EAA6E;IAC7E,0EAA0E;IAC1E,4EAA4E;IAC5E,oDAAoD;IACpD,MAAM,QAAQ,GAAqB,EAAE,CAAC;IACtC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA8B,CAAC;IACzD,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAC7E,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;IAC1C,MAAM,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC;IACxD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,IAAI,SAAS,CAAC;IAClD,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;IAE9C,oEAAoE;IACpE,4EAA4E;IAC5E,2EAA2E;IAC3E,6EAA6E;IAC7E,wEAAwE;IACxE,4EAA4E;IAC5E,oDAAoD;IACpD,2EAA2E;IAC3E,+CAA+C;IAC/C,EAAE;IACF,2EAA2E;IAC3E,2EAA2E;IAC3E,4DAA4D;IAC5D,MAAM,eAAe,GAAG,sBAAsB,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjF,MAAM,UAAU,GAAG,QAAQ;SACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC;SACpC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,eAAe,CAAC;SACrG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,KAAK,CACX,8BAA8B,eAAe,iBAAiB,OAAO,CAAC,IAAI,qCAAqC;YAC7G,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAC5E,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;IAE9C,2EAA2E;IAC3E,uDAAuD;IACvD,MAAM,KAAK,GAAG,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IACvC,MAAM,oBAAoB,GAAG,CAAC,IAAiB,EAAQ,EAAE;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACrF,IAAI,eAAe,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,eAAe,GAAG,CAAC,OAAO,CAAC,CAAC;YACjC,mEAAmE;YACnE,IAAI,CAAC,aAAa,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,eAAe,KAAK,MAAM,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACzC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;YAC9B,oFAAoF;YACpF,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3G,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAC/B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAErD,2EAA2E;IAC3E,2EAA2E;IAC3E,6EAA6E;IAC7E,2EAA2E;IAC3E,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,eAAe,GAAc,QAAQ,CAAC,IAAI,GAAG,CAAC;QAClD,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;QACpF,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC;IAEhC,uEAAuE;IACvE,6EAA6E;IAC7E,2EAA2E;IAC3E,8CAA8C;IAC9C,EAAE;IACF,6EAA6E;IAC7E,8EAA8E;IAC9E,sDAAsD;IACtD,IAAI,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,oBAAoB,GAAG,GAAS,EAAE;QACtC,aAAa,GAAG,YAAY,CAC1B,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAChF,CAAC;QACF,gBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC,CAAC;IACF,gBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;IAChD,IAAI,eAAe,KAAK,MAAM,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,8BAA8B,eAAe,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,sEAAsE;IACtE,uEAAuE;IACvE,sEAAsE;IACtE,6EAA6E;IAC7E,wDAAwD;IACxD,MAAM,QAAQ,GAAG,CAAC,UAA0B,EAAiD,EAAE;QAC7F,uEAAuE;QACvE,oEAAoE;QACpE,oEAAoE;QACpE,yDAAyD;QACzD,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE;gBAC7D,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ;gBAC/B,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ;aAChC,CAAC,CAAC,MAAM,CAAC;YACV,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrD,IAAI;gBACJ,WAAW,EAAG,GAAgC,CAAC,WAAW;aAC3D,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,UAA0B,EAAgB,EAAE;QAC9D,MAAM,MAAM,GAAG,UAAU,IAAI,OAAO,CAAC;QACrC,mEAAmE;QACnE,yEAAyE;QACzE,uCAAuC;QACvC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAChF,CAAC,CAAC;IAEF,wEAAwE;IACxE,2EAA2E;IAC3E,+DAA+D;IAC/D,MAAM,WAAW,GAAG,CAAC,GAAc,EAAwB,EAAE;QAC3D,MAAM,MAAM,GAAa,KAAK,EAAE,MAAM,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAChD,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;gBACvB,kEAAkE;gBAClE,oDAAoD;gBACpD,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,cAAc,EACxB,+NAA+N,CAChO,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACpD,OAAO,MAAuC,CAAC;QACjD,CAAC,CAAC;QACF,sEAAsE;QACtE,2EAA2E;QAC3E,0EAA0E;QAC1E,yEAAyE;QACzE,4EAA4E;QAC5E,oEAAoE;QACpE,MAAM,CAAC,2BAA2B,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,WAAW,CAAC;QAC7F,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,2EAA2E;IAC3E,6EAA6E;IAC7E,uEAAuE;IACvE,sEAAsE;IACtE,0BAA0B;IAC1B,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IACtC,MAAM,YAAY,GAAG,CAAC,aAA4B,OAAO,EAAa,EAAE;QACtE,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxC,wEAAwE;QACxE,0EAA0E;QAC1E,0EAA0E;QAC1E,0EAA0E;QAC1E,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,SAAS,EACnB,WAAW,UAAU,CAAC,IAAI,+EAA+E;kBACvG,kGAAkG,CACrG,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC;IACF,MAAM,GAAG,GAAgB;QACvB,MAAM,EAAE,aAAa;QACrB,OAAO;QACP,OAAO,EAAE,OAAO;QAChB,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,YAAY;KACb,CAAC;IAEF,4EAA4E;IAC5E,iEAAiE;IACjE,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChE,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,2CAA2C,UAAU,CAAC,UAAU,IAAI,CAAC,CAAC;IACtF,CAAC;IAED,mEAAmE;IACnE,2EAA2E;IAC3E,0EAA0E;IAC1E,iEAAiE;IACjE,MAAM,gBAAgB,GAAG,CAAC,IAAiB,EAAQ,EAAE;QACnD,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9D,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;YAC/D,eAAe,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;QACD,KAAK,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE,CAAC;YACzE,eAAe,CAAC,iBAAiB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;IAClC,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAS,CAAC;IACvC,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC;IAEnD,+EAA+E;IAC/E,yEAAyE;IACzE,mFAAmF;IACnF,0EAA0E;IAC1E,8EAA8E;IAC9E,+CAA+C;IAC/C,MAAM,iBAAiB,GAAG,CAAC,IAAiB,EAAQ,EAAE;QACpD,MAAM,QAAQ,GAAgB;YAC5B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO;YACpC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO;YACrC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;YAC7B,QAAQ;YACR,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAC9C,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;YAClD,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;SAC/E,CAAC;QACF,KAAK,MAAM,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1F,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAElD;;;;;;;;;;;;;;;OAeG;IACH,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuC,CAAC;IACpE,MAAM,iBAAiB,GAAG,KAAK,EAAE,OAAsB,EAAwB,EAAE;QAC/E,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC9B,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,KAAK,GAAG,CAAC,KAAK,IAAI,EAAE;YACxB,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAChE,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC3B,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,yEAAyE;YACzE,2DAA2D;YAC3D,oBAAoB,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAEjD,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,4EAA4E;IAC5E,0BAA0B;IAC1B,QAAQ,CAAC,cAAc,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE;QAC1C,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC;IACF,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;YAAE,SAAS;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,IAAI,CACF,OAAO,EACP,GAAG,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,4BAA4B,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAChH,CAAC;IACJ,CAAC;IAED,mEAAmE;IACnE,wEAAwE;IACxE,kEAAkE;IAClE,mDAAmD;IACnD,0EAA0E;IAC1E,yEAAyE;IACzE,kEAAkE;IAClE,MAAM,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrE,MAAM,gBAAgB,GAAG,eAAe,KAAK,OAAO;QAClD,CAAC,CAAC,yBAAyB;QAC3B,CAAC,CAAC,eAAe,KAAK,MAAM;YAC1B,CAAC,CAAC,wBAAwB;YAC1B,CAAC,CAAC,mBAAmB,CAAC;IAC1B,MAAM,aAAa,GAAG,cAAc;QAClC,CAAC,CAAC,GAAG,gBAAgB,iCAAiC,cAAc,EAAE;QACtE,CAAC,CAAC,gBAAgB,CAAC;IACrB,6EAA6E;IAC7E,8EAA8E;IAC9E,2EAA2E;IAC3E,2EAA2E;IAC3E,MAAM,YAAY,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,YAAY;QAC/B,CAAC,CAAC,GAAG,aAAa,qCAAqC,YAAY,EAAE;QACrE,CAAC,CAAC,aAAa,CAAC;IAClB,uEAAuE;IACvE,0DAA0D;IAC1D,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC;QAC1C,CAAC,CAAC,GAAG,YAAY,OAAO,uBAAuB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;QAC3G,CAAC,CAAC,YAAY,CAAC;IAEjB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,IAAI,EAAE,QAAQ;QACd,sEAAsE;QACtE,sEAAsE;QACtE,uEAAuE;QACvE,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,EAAE;QACD,YAAY,EAAE,kBAAkB;KACjC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAEjC,MAAM,KAAK,GAAG,eAAe,CAAC;IAE9B,oEAAoE;IACpE,4EAA4E;IAC5E,2EAA2E;IAC3E,mEAAmE;IACnE,4EAA4E;IAC5E,+CAA+C;IAC/C,MAAM,eAAe,GAAG,IAAI,GAAG,EAA0C,CAAC;IAC1E,MAAM,UAAU,GAAc,CAAC,GAAG,KAAK,CAAC,CAAC;IACzC,IAAI,kBAAkB,GAAG,EAAE,CAAC;IAC5B,MAAM,mBAAmB,GAAG,GAAS,EAAE;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,IAAI,SAAS,KAAK,kBAAkB;YAAE,OAAO;QAC7C,kBAAkB,GAAG,SAAS,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAChD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM;oBAAE,OAAO,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;gBACrF,uEAAuE;gBACvE,uEAAuE;gBACvE,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBACrD,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,MAAM;oBAAE,OAAO,CAAC,KAAK,CAAC,YAAY,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;YACnG,CAAC;iBAAM,CAAC;gBACN,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBACzB,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YACD,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,YAAY;gBAAE,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAChB,IAAa,EACb,MAA+B,EACnB,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEzD;;;;OAIG;IACH,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,QAAiB,EAAiB,EAAE,CAC5E,0BAA0B,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE3D,+EAA+E;IAC/E,MAAM,WAAW,GAAG,CAAC,OAAsB,EAAe,EAAE;QAC1D,MAAM,IAAI,GAAG,iBAAiB,CAC5B,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAChE,QAAQ,CAAC,IAAI,CACd,CAAC;QACF,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,CAAC,CAAC;IAEF,uEAAuE;IACvE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAA8B,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;QACtB,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;YAC9F,IAAI,MAAkB,CAAC;YACvB,IAAI,CAAC;gBACH,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvD,OAAO;oBACL,OAAO,EAAE,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,sBAAsB,GAAG,EAAE,EAAE,CAAC,CAAC;oBAC1F,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAgB,CAAC;YACvC,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC;YAE1C,oEAAoE;YACpE,uEAAuE;YACvE,mCAAmC;YACnC,MAAM,UAAU,GAAG,cAAc,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YACpF,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,iBAAiB,CAAC;wBACzB,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,2BAA2B,UAAU,EAAE,EAAE;qBACzE,CAAC;oBACF,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;YAC5C,MAAM,OAAO,GAAgB;gBAC3B,MAAM,EAAE,OAAO,CAAC,OAAO;gBACvB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,OAAO;gBACP,QAAQ;gBACR,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACjC,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;gBACrC,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,IAAI,OAAO,CAAC;gBACjE,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,UAAU,EAAE,oBAAoB,CAAC,KAAK,CAAC;gBACvC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE;aACzC,CAAC;YAEF,yEAAyE;YACzE,qEAAqE;YACrE,uEAAuE;YACvE,sEAAsE;YACtE,EAAE;YACF,sEAAsE;YACtE,yEAAyE;YACzE,wDAAwD;YACxD,IAAI,WAAwB,CAAC;YAC7B,IAAI,CAAC;gBACH,WAAW,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO;oBACL,OAAO,EAAE,iBAAiB,CAAC;wBACzB;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EACF,kCAAkC,OAAO,CAAC,IAAI,wDAAwD;gCACtG,kGAAkG;gCAClG,sEAAsE;gCACtE,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;yBAClD;qBACF,CAAC;oBACF,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YACD,MAAM,eAAe,GAAG,WAAW,CAAC,QAAQ,IAAI,QAAQ,CAAC;YACzD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC;gBAC/B,CAAC,CAAC,oBAAoB,CAClB,aAAa,EACb,QAAQ,EACR,OAAO,CAAC,IAAI,EACZ,eAAe,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACpD;gBACH,CAAC,CAAC,IAAI,CAAC;YACT,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO;oBACL,OAAO,EAAE,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,sBAAsB,OAAO,EAAE,EAAE,CAAC,CAAC;oBAC9F,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,yEAAyE;YACzE,EAAE;YACF,sEAAsE;YACtE,uEAAuE;YACvE,yEAAyE;YACzE,yEAAyE;YACzE,qEAAqE;YACrE,sEAAsE;YACtE,uEAAuE;YACvE,eAAe;YACf,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC5C,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAChD,OAAO;oBACL,OAAO,EAAE,iBAAiB,CAAC;wBACzB;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,sCAAsC,MAAM,SAAS,IAAI,CAAC,IAAI,IAAI;kCACpE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;kCAC3D,IAAI,SAAS,CAAC,MAAM,oEAAoE,IAAI,CAAC,IAAI,IAAI;kCACrG,2FAA2F;yBAChG;qBACF,CAAC;oBACF,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;gBACzE,qEAAqE;gBACrE,kEAAkE;gBAClE,MAAM,MAAM,GAAG,MAAM,cAAc,CACjC,OAAO,CAAC,MAAM,EACd,UAAU,EACV,QAAQ,EACR,UAAU,EACV,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,EAChB,OAAO,CAAC,WAAW,CACpB,CAAC;gBAEF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,QAAQ,QAAQ,SAAS,CAAC;oBAC/D,OAAO;wBACL,OAAO,EAAE,iBAAiB,CAAC;4BACzB,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,wBAAwB,GAAG,EAAE,EAAE;4BAC9D,GAAG,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC;4BAClC,GAAG,WAAW,CAAC,OAAO,CAAC;yBACxB,CAAC;wBACF,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;gBAED,MAAM,SAAS,GAAG,CAAC,CAAU,EAAE,EAAE,CAC/B,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAEzD,qEAAqE;gBACrE,oEAAoE;gBACpE,mEAAmE;gBACnE,qEAAqE;gBACrE,iBAAiB;gBACjB,IAAI,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAA0C;wBACpD,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,SAAmB,EAAE;qBACjE,CAAC;oBACF,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;wBACxB,MAAM,CAAC,IAAI,CAAC;4BACV,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;yBACjE,CAAC,CAAC;oBACL,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC5E,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9E,CAAC;gBAED,OAAO;oBACL,OAAO,EAAE,iBAAiB,CAAC;wBACzB,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;wBACvD,GAAG,WAAW,CAAC,OAAO,CAAC;qBACxB,CAAC;iBACH,CAAC;YACJ,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvD,MAAM,IAAI,GAAG,CAAC,YAAY,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBACxD,OAAO;oBACL,OAAO,EAAE,iBAAiB,CAAC;wBACzB,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,IAAI,MAAM,GAAG,EAAE,EAAE;wBAC1D,GAAG,iBAAiB,CAAC,CAAC,CAAC;wBACvB,GAAG,WAAW,CAAC,OAAO,CAAC;qBACxB,CAAC;oBACF,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QACH,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC/C,CAAC;IAED,mEAAmE;IACnE,mBAAmB;IACnB,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,EAAE,SAAS,EAAE;QACzD,KAAK,EAAE,UAAU,CAAC,QAAQ;QAC1B,KAAK,EAAE,UAAU,CAAC,QAAQ;KAC3B,CAAC,CAAC;IACH,OAAO,CAAC,KAAK,CAAC,gCAAgC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,aAAa,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,iBAAiB,CAAC,CAAC;IAEtK,8EAA8E;IAC9E,uEAAuE;IACvE,6EAA6E;IAC7E,2EAA2E;IAC3E,yBAAyB;IACzB,EAAE;IACF,yEAAyE;IACzE,4EAA4E;IAC5E,8EAA8E;IAC9E,iEAAiE;IACjE,MAAM,OAAO,GAAG,CAAC,MAA+B,EAAe,EAAE;QAC/D,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC;QAChC,IAAI,CAAC,OAAO;YAAE,OAAO,WAAW,CAAC;QACjC,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACtB,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,SAAS,EACnB,WAAW,OAAO,CAAC,IAAI,qFAAqF;YAC1G,kEAAkE;YAClE,6CAA6C,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,KAAK,CACtF,CAAC;IACJ,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,CAAC,MAAoB,EAAc,EAAE;QAC3D,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE;YACxD,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ;YAC/B,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ;SAChC,CAAC,CAAC,MAAM,CAAC;IACZ,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,cAAc,CAC7B,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,IAAI,QAAQ,EAChD,eAAe,CAChB,CAAC;IACF,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1B,MAAM,SAAS,GAA8B,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5D,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;IAC1B,CAAC;IACD,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;QACvG,IAAI,CAAC;YACH,uEAAuE;YACvE,sEAAsE;YACtE,mEAAmE;YACnE,wCAAwC;YACxC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,QAAQ;gBACrE,CAAC,CAAE,SAAS,CAAC,MAAkC;gBAC/C,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,MAAM,GAAG,QAAQ,CAAC,mBAAmB;gBACzC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,MAAM,EAAE,CAAC,mBAAmB,CAAC;gBACjE,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,OAAO,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC1F,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;YAEtD,uEAAuE;YACvE,wDAAwD;YACxD,MAAM,UAAU,GAAG,cAAc,CAC/B,GAAG,QAAQ,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,EACjD,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,CACnD,CAAC;YACF,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,UAAU,EAAE,EAAE,CAAC,CAAC;oBACrF,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;YAC5E,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACnF,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACpG,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3G,CAAC;IACH,CAAC,CAAC,CAAC;IACH,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAErD,6EAA6E;IAC7E,iCAAiC;IACjC,QAAQ,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC,mBAAmB,EAAE,CAAC;IACtD,mBAAmB,EAAE,CAAC;IAEtB,mEAAmE;IACnE,sFAAsF;IACtF,8EAA8E;IAC9E,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACjC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;gBAC9B,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;aAC/B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,kEAAkE;IAClE,0EAA0E;IAC1E,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC;QAC/E,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,+BAA+B,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,2CAA2C,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC;IACrC,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,iBAAiB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IACpF,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC;QACzC,CAAC,CAAC,KAAK,iBAAiB,IAAI,aAAa,CAAC,MAAM,YAAY;QAC5D,CAAC,CAAC,EAAE,CAAC;IACP,OAAO,CAAC,KAAK,CAAC,uBAAuB,KAAK,CAAC,MAAM,GAAG,CAAC,WAAW,SAAS,uBAAuB,UAAU,EAAE,CAAC,CAAC;IAE9G,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAgBD;;;;;GAKG;AACH,KAAK,UAAU,gBAAgB,CAC7B,OAAsB,EACtB,cAAsB,EACtB,KAAc;IAEd,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,IAAI,SAAS,CAAC;IAClD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,WAAW,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAExD,oEAAoE;IACpE,sEAAsE;IACtE,yEAAyE;IACzE,uEAAuE;IACvE,sDAAsD;IACtD,MAAM,aAAa,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,MAAM,WAAW,CAClC,YAAY,CAAC,SAAS,CAAC,EACvB,aAAa,EACb,SAAS,EACT,cAAc,EACd,OAAO,CAAC,MAAM,CAAC,YAAY,CAC5B,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;IAE/B,oEAAoE;IACpE,sEAAsE;IACtE,yEAAyE;IACzE,wEAAwE;IACxE,0EAA0E;IAC1E,2EAA2E;IAC3E,oEAAoE;IACpE,cAAc;IACd,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;IACnD,IAAI,SAAS,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAChC,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,qGAAqG,CAAC,CAAC;IACxI,CAAC;SAAM,CAAC;QACN,IAAI,CAAC;YACH,sEAAsE;YACtE,uEAAuE;YACvE,sEAAsE;YACtE,sEAAsE;YACtE,uEAAuE;YACvE,WAAW;YACX,IAAI,OAAO,GAAuB,IAAI,CAAC;YACvC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACxB,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACvB,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,CAAgB,CAAC;gBACpG,IAAI,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;oBAC9B,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;oBAChE,MAAM,GAAG,aAAa,CAAC;gBACzB,CAAC;YACH,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAC/B,OAAO,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;gBACtC,IAAI,OAAO,EAAE,QAAQ,EAAE,MAAM;oBAAE,MAAM,GAAG,eAAe,CAAC;YAC1D,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAC/B,OAAO,GAAG,gBAAgB,EAAE,CAAC;gBAC7B,IAAI,OAAO,EAAE,QAAQ,EAAE,MAAM;oBAAE,MAAM,GAAG,gBAAgB,CAAC;YAC3D,CAAC;YACD,IAAI,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;gBAC9B,MAAM,QAAQ,GAAG,0BAA0B,CAAC,KAAK,EAAE,OAAO,EAAE;oBAC1D,iBAAiB,EAAE,SAAS,CAAC,OAAO;iBACrC,CAAC,CAAC;gBACH,IAAI,QAAQ,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC5F,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,sBAAsB,MAAM,eAAe,QAAQ,CAAC,QAAQ,WAAW,OAAO,GAAG,CAAC,CAAC;oBAClH,IAAI,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;wBACtC,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,+BAA+B,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACzG,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,oCAAoC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3G,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP,OAAO;YACP,KAAK;YACL,QAAQ,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;YAC/C,aAAa,EAAE,UAAU,CAAC,OAAO;YACjC,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;SACpD;QACD,UAAU;QACV,SAAS;QACT,eAAe,EAAE,KAAK;QACtB,aAAa,EAAE,KAAK;KACrB,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,SAA6B;IACvD,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAiC,CAAC;QAC5F,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,CAAC;QACnD,MAAM,GAAG,GAAkB,EAAE,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjG,MAAM,CAAC,GAAG,KAA4C,CAAC;gBACvD,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;iBAC/D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,QAAQ,EAAE,8CAA+C,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACrF,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,mBAA6C;IACxE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACpE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACjC,KAAK,CAAC,IAAI,CAAC,MAAM,QAAQ,KAAK,CAAC,CAAC;QAChC,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAAC,QAA0B;IACzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YACxC,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YACnE,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC5B,KAAK,CAAC,IAAI,CACR,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,gDAAgD,GAAG,CAAC,YAAY,IAAI,gBAAgB,EAAE,CACjH,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,gBAAgB,GAAG,CAAC,QAAQ,CAAC,MAAM,mBAAmB,CAAC,CAAC;gBAC7F,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ;oBAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;IACvF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,YAAY,CAAC,GAAiB,EAAE,OAAuB;IAC9D,MAAM,eAAe,GAAG,GAAG,CAAC,kBAAkB;QAC5C,CAAC,CAAC,iBAAiB,CAAC,OAAO,EAAE,GAAG,CAAC,kBAAkB,CAAC;QACpD,CAAC,CAAC,SAAS,CAAC;IACd,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;QACtC,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;QAC1C,eAAe;QACf,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,YAAY,EAAE,GAAG,CAAC,YAAY;KAC/B,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAuB,EAAE,IAAY;IAC9D,IAAI,CAAC,OAAO,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAEnE,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,OAAO,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,oBAAoB;AACpB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/B,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,WAAW,CAAC,CAAC;AACtB,CAAC;KAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,aAAa,CAAC,CAAC;AACxB,CAAC;KAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC;AACtD,CAAC;KAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC5B,CAAC;KAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;IAC7B,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAC9B,CAAC;KAAM,IAAI,MAAM,KAAK,iBAAiB,EAAE,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,sBAAsB,CAAC,CAAC;AACjC,CAAC;KAAM,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;IAC7B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,wEAAwE;IACxE,0EAA0E;IAC1E,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACvE,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;IAC9B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7D,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9D,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,mBAAmB,CAAC,CAAC;AAC9B,CAAC;KAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC5B,CAAC;KAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;IAChC,MAAM,CAAC,cAAc,CAAC,CAAC;AACzB,CAAC;KAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;IAC9B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC3B,CAAC;KAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC5B,CAAC;KAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;IAChC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1B,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAC7B,CAAC;KAAM,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;IAC7E,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;KAAM,CAAC;IACN,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,6 @@
31
31
  },
32
32
  "nativeToolsets": 52,
33
33
  "nativeToolActions": 830,
34
- "generatedAt": "2026-09-05T14:42:16.456Z",
35
- "version": "1.3.1"
34
+ "generatedAt": "2026-09-05T19:45:19.441Z",
35
+ "version": "1.3.3"
36
36
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ue-mcp",
3
- "version": "1.3.1",
3
+ "version": "1.3.3",
4
4
  "description": "Unreal Engine MCP server - 24 tools, 1090+ actions for AI-driven editor control",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1407,6 +1407,54 @@ FString FMCPBridgeServer::CreateJsonRpcError(const TSharedPtr<FJsonObject>& Requ
1407
1407
  return OutputString;
1408
1408
  }
1409
1409
 
1410
+ /**
1411
+ * The one answer every non-modal-safe method gets while a dialog is up.
1412
+ *
1413
+ * Shaped so a caller does not have to parse prose to act: `dialogBlocking` is
1414
+ * the flag to branch on, `buttons` is the dialog's own order, and `choices`
1415
+ * pairs each label with the literal call that presses it. Nothing here ranks
1416
+ * the buttons or hints at one, because the gate does not know which is right
1417
+ * and guessing is what this whole mechanism exists to stop.
1418
+ */
1419
+ TSharedPtr<FJsonObject> FMCPBridgeServer::BuildDialogGateRefusal(
1420
+ const FString& Method, const FString& Title, const FString& Message, const TArray<FString>& Buttons)
1421
+ {
1422
+ TSharedPtr<FJsonObject> Out = MakeShared<FJsonObject>();
1423
+ Out->SetBoolField(TEXT("success"), false);
1424
+ Out->SetBoolField(TEXT("dialogBlocking"), true);
1425
+ Out->SetStringField(TEXT("refusedMethod"), Method);
1426
+ Out->SetStringField(TEXT("dialogTitle"), Title);
1427
+ Out->SetStringField(TEXT("dialogMessage"), Message);
1428
+
1429
+ TArray<TSharedPtr<FJsonValue>> ButtonValues;
1430
+ TArray<TSharedPtr<FJsonValue>> Choices;
1431
+ for (const FString& Label : Buttons)
1432
+ {
1433
+ ButtonValues.Add(MakeShared<FJsonValueString>(Label));
1434
+
1435
+ TSharedPtr<FJsonObject> Choice = MakeShared<FJsonObject>();
1436
+ Choice->SetStringField(TEXT("buttonLabel"), Label);
1437
+ // Single quotes around the label would break on "Don't Save", which is
1438
+ // a real button on the prompt this fires for most often.
1439
+ Choice->SetStringField(
1440
+ TEXT("respondWith"),
1441
+ FString::Printf(TEXT("editor(action='respond_to_dialog', buttonLabel=\"%s\")"), *Label));
1442
+ Choices.Add(MakeShared<FJsonValueObject>(Choice));
1443
+ }
1444
+ Out->SetArrayField(TEXT("buttons"), ButtonValues);
1445
+ Out->SetArrayField(TEXT("choices"), Choices);
1446
+
1447
+ Out->SetStringField(
1448
+ TEXT("error"),
1449
+ FString::Printf(
1450
+ TEXT("A modal dialog is blocking the editor, so '%s' was refused without running. ")
1451
+ TEXT("Unreal cannot execute anything else until the dialog is answered. ")
1452
+ TEXT("Read it in dialogMessage, choose a button, and press it with the call beside it in choices. ")
1453
+ TEXT("Every other action returns this same refusal until then."),
1454
+ *Method));
1455
+ return Out;
1456
+ }
1457
+
1410
1458
  TSharedPtr<FJsonObject> FMCPBridgeServer::BuildCapabilitiesPayload()
1411
1459
  {
1412
1460
  TSharedPtr<FJsonObject> Payload = MakeShared<FJsonObject>();
@@ -1582,6 +1630,36 @@ FString FMCPBridgeServer::ProcessMessage(const FString& Message)
1582
1630
  };
1583
1631
  const bool bModalSafe = ModalSafeMethods.Contains(Method);
1584
1632
 
1633
+ // THE DIALOG GATE.
1634
+ //
1635
+ // Every bridge method arrives here, so this is the one place that can make
1636
+ // the guarantee: while a modal is up, nothing else runs. Any tool, any
1637
+ // flow, any action, whatever raised the dialog.
1638
+ //
1639
+ // Before this, a call landing during a modal was queued behind a game
1640
+ // thread parked in the modal loop and died on the 30 second timeout, and
1641
+ // the caller got a timeout that reads like the editor is slow. Nothing
1642
+ // obliged the caller to notice the dialog at all, so an agent could
1643
+ // timeout, retry, and time out again forever while the answer sat one
1644
+ // respond_to_dialog away.
1645
+ //
1646
+ // Refusing immediately is what makes it deterministic. The refusal names
1647
+ // the dialog, quotes it whole, lists its buttons in the dialog's own order
1648
+ // and hands back the exact call for each, and it is the identical answer
1649
+ // on every method, so the only way forward is through the dialog.
1650
+ if (!bModalSafe)
1651
+ {
1652
+ FString ModalTitle, ModalMessage;
1653
+ TArray<FString> ModalButtons;
1654
+ if (FMCPEngineStatus::Get().GetActiveModal(ModalTitle, ModalMessage, ModalButtons))
1655
+ {
1656
+ return CreateJsonRpcResponse(
1657
+ Request,
1658
+ MakeShared<FJsonValueObject>(
1659
+ BuildDialogGateRefusal(Method, ModalTitle, ModalMessage, ModalButtons)));
1660
+ }
1661
+ }
1662
+
1585
1663
  FMCPEngineStatus::Get().NoteHandlerBegin(Method);
1586
1664
  TSharedPtr<FJsonValue> Result = GameThreadExecutor.ExecuteOnGameThread(
1587
1665
  Handler,
@@ -249,6 +249,10 @@ public:
249
249
  * timestamp, this instance's identity, and the action list the running
250
250
  * binary actually registered.
251
251
  */
252
+ /** The refusal every non-modal-safe method gets while a modal is up. */
253
+ TSharedPtr<FJsonObject> BuildDialogGateRefusal(
254
+ const FString& Method, const FString& Title, const FString& Message, const TArray<FString>& Buttons);
255
+
252
256
  TSharedPtr<FJsonObject> BuildCapabilitiesPayload();
253
257
 
254
258
  // ── Framing ──────────────────────────────────────────────────────────────
@@ -404,6 +404,19 @@ void FMCPEngineStatus::CaptureNow()
404
404
  }
405
405
  }
406
406
 
407
+ bool FMCPEngineStatus::GetActiveModal(FString& OutTitle, FString& OutMessage, TArray<FString>& OutButtons) const
408
+ {
409
+ FScopeLock Lock(&Mutex);
410
+ if (!bModalActive)
411
+ {
412
+ return false;
413
+ }
414
+ OutTitle = ModalTitle;
415
+ OutMessage = ModalMessage;
416
+ OutButtons = ModalButtons;
417
+ return true;
418
+ }
419
+
407
420
  TSharedPtr<FJsonObject> FMCPEngineStatus::Snapshot() const
408
421
  {
409
422
  TSharedPtr<FJsonObject> Out = MakeShared<FJsonObject>();
@@ -60,6 +60,16 @@ public:
60
60
  /** Thread-safe. Never touches the game thread. */
61
61
  TSharedPtr<FJsonObject> Snapshot() const;
62
62
 
63
+ /**
64
+ * The modal blocking the editor right now, read off the snapshot rather
65
+ * than by walking Slate, so it is safe on the socket thread. The snapshot
66
+ * is refreshed from the modal-loop tick, which is the one tick that keeps
67
+ * firing while a modal is up, so this is current rather than stale.
68
+ *
69
+ * Returns false and leaves the outputs alone when nothing is modal.
70
+ */
71
+ bool GetActiveModal(FString& OutTitle, FString& OutMessage, TArray<FString>& OutButtons) const;
72
+
63
73
  /** Coarse lifecycle label ("config init", "modules loaded", "ready"). */
64
74
  void SetPhase(const FString& InPhase);
65
75
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "FileVersion": 3,
3
3
  "Version": 1,
4
- "VersionName": "1.3.1",
4
+ "VersionName": "1.3.3",
5
5
  "FriendlyName": "UE MCP Bridge",
6
6
  "Description": "C++ WebSocket bridge for UE-MCP, providing 1029+ editor actions over the MCP protocol",
7
7
  "Category": "Developer Tools",