ue-mcp 1.0.20 → 1.0.22

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.
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Server-side redaction of personal/project identifiers from feedback bodies
3
+ * before they hit the elicitation prompt or the GitHub POST. Applied
4
+ * unconditionally; the agent has no surface to bypass it and the user never
5
+ * sees the pre-scrubbed bytes outside the in-process call stack.
6
+ *
7
+ * Threat model: feedback issues post to a public tracker. The body the agent
8
+ * assembled may contain absolute paths, the OS username, the project name,
9
+ * etc. None of those carry signal a reader needs to understand the issue,
10
+ * and all of them carry privacy/confidentiality risk (NDA projects, machine
11
+ * fingerprinting, doxxing).
12
+ *
13
+ * What gets redacted:
14
+ *
15
+ * - The absolute project root path → REDACTED_PROJECT_ROOT
16
+ * - The OS home directory path → REDACTED_HOME
17
+ * - The project name as a whole word → REDACTED_PROJECT
18
+ * - The OS username as a whole word → REDACTED_USER
19
+ *
20
+ * Project/username matches use `\b` word boundaries (case-insensitive) so
21
+ * "david" inside paths or sentences matches but "davidson" does not. Class,
22
+ * component, and actor names are NOT redacted — the user can use the
23
+ * "Revise first" path on the approval prompt to request specific further
24
+ * redactions.
25
+ */
26
+ export interface PrivacyScrubContext {
27
+ /** Absolute path to the .uproject's containing directory. */
28
+ projectRoot?: string;
29
+ /** Project name without the .uproject extension. */
30
+ projectName?: string;
31
+ /** OS username. Defaults to os.userInfo().username; tests pass an explicit value. */
32
+ username?: string;
33
+ /** OS home directory. Defaults to os.homedir(); tests pass an explicit value. */
34
+ homeDir?: string;
35
+ }
36
+ export interface PrivacyScrubResult {
37
+ text: string;
38
+ hits: Array<{
39
+ rule: string;
40
+ count: number;
41
+ }>;
42
+ }
43
+ export declare function privacyScrub(input: string, ctx?: PrivacyScrubContext): PrivacyScrubResult;
@@ -0,0 +1,59 @@
1
+ import * as os from "node:os";
2
+ // Names shorter than this are not redacted as whole-word matches because the
3
+ // false-positive surface explodes. Project name "AI" would otherwise nuke
4
+ // every occurrence of "ai" in the body.
5
+ const MIN_WORD_LEN = 3;
6
+ function escapeRegex(s) {
7
+ return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
8
+ }
9
+ export function privacyScrub(input, ctx = {}) {
10
+ let text = input;
11
+ const hits = [];
12
+ function record(rule, count) {
13
+ if (count > 0)
14
+ hits.push({ rule, count });
15
+ }
16
+ // Replace an absolute path under multiple separator conventions in one
17
+ // call. Source text may use \, /, or mixed paths depending on whether it
18
+ // came from execute_python output, JSON config, or a console log.
19
+ function replacePath(rawPath, replacement, rule) {
20
+ if (!rawPath || rawPath.length < MIN_WORD_LEN)
21
+ return;
22
+ const variants = new Set([
23
+ rawPath,
24
+ rawPath.replace(/\\/g, "/"),
25
+ rawPath.replace(/\//g, "\\"),
26
+ ]);
27
+ let total = 0;
28
+ for (const v of variants) {
29
+ const re = new RegExp(escapeRegex(v), "gi");
30
+ text = text.replace(re, () => {
31
+ total++;
32
+ return replacement;
33
+ });
34
+ }
35
+ record(rule, total);
36
+ }
37
+ function replaceWord(word, replacement, rule) {
38
+ if (!word || word.length < MIN_WORD_LEN)
39
+ return;
40
+ const re = new RegExp(`\\b${escapeRegex(word)}\\b`, "gi");
41
+ let count = 0;
42
+ text = text.replace(re, () => {
43
+ count++;
44
+ return replacement;
45
+ });
46
+ record(rule, count);
47
+ }
48
+ // ORDER MATTERS: replace longest/most-specific patterns first so the
49
+ // word-boundary passes don't fragment a string the path pass would
50
+ // otherwise have matched cleanly.
51
+ const home = ctx.homeDir ?? os.homedir();
52
+ const user = ctx.username ?? os.userInfo().username;
53
+ replacePath(ctx.projectRoot, "REDACTED_PROJECT_ROOT", "project-root-path");
54
+ replacePath(home, "REDACTED_HOME", "home-path");
55
+ replaceWord(ctx.projectName, "REDACTED_PROJECT", "project-name");
56
+ replaceWord(user, "REDACTED_USER", "username");
57
+ return { text, hits };
58
+ }
59
+ //# sourceMappingURL=privacy-scrub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy-scrub.js","sourceRoot":"","sources":["../src/privacy-scrub.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AA4C9B,6EAA6E;AAC7E,0EAA0E;AAC1E,wCAAwC;AACxC,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,SAAS,WAAW,CAAC,CAAS;IAC5B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,KAAa,EACb,MAA2B,EAAE;IAE7B,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,MAAM,IAAI,GAA2C,EAAE,CAAC;IAExD,SAAS,MAAM,CAAC,IAAY,EAAE,KAAa;QACzC,IAAI,KAAK,GAAG,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,uEAAuE;IACvE,yEAAyE;IACzE,kEAAkE;IAClE,SAAS,WAAW,CAAC,OAA2B,EAAE,WAAmB,EAAE,IAAY;QACjF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,YAAY;YAAE,OAAO;QACtD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS;YAC/B,OAAO;YACP,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;SAC7B,CAAC,CAAC;QACH,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC5C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE;gBAC3B,KAAK,EAAE,CAAC;gBACR,OAAO,WAAW,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC;QACD,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,SAAS,WAAW,CAAC,IAAwB,EAAE,WAAmB,EAAE,IAAY;QAC9E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,YAAY;YAAE,OAAO;QAChD,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC1D,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE;YAC3B,KAAK,EAAE,CAAC;YACR,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,qEAAqE;IACrE,mEAAmE;IACnE,kCAAkC;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IACzC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;IAEpD,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,uBAAuB,EAAE,mBAAmB,CAAC,CAAC;IAC3E,WAAW,CAAC,IAAI,EAAa,eAAe,EAAU,WAAW,CAAC,CAAC;IACnE,WAAW,CAAC,GAAG,CAAC,WAAW,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC;IACjE,WAAW,CAAC,IAAI,EAAa,eAAe,EAAK,UAAU,CAAC,CAAC;IAE7D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC"}
@@ -26,6 +26,6 @@
26
26
  "statetree": 35,
27
27
  "plugins": 2
28
28
  },
29
- "generatedAt": "2026-05-21T01:09:32.635Z",
30
- "version": "1.0.20"
29
+ "generatedAt": "2026-05-21T02:09:30.844Z",
30
+ "version": "1.0.22"
31
31
  }
@@ -4,6 +4,7 @@ import { submitFeedback } from "../github-app.js";
4
4
  import { readUserAuth } from "../auth.js";
5
5
  import { getWorkarounds, clearWorkarounds } from "../workaround-tracker.js";
6
6
  import { scrubSecrets } from "../secret-scrub.js";
7
+ import { privacyScrub } from "../privacy-scrub.js";
7
8
  import { warn } from "../log.js";
8
9
  const PLACEHOLDER_TITLE_RE = /^(noop|nop|test|tests?|testing|x|y|z|todo|tbd|tba|ignore|ignored|stop|dummy|temp|tmp|placeholder|accidental|oops|cleanup|n\/?a|none|null|undefined|na|misc|\.+|-+)$/i;
9
10
  const PLACEHOLDER_PHRASE_RE = /\b(ignore (previous|accidental|placeholder)|accidental (feedback|submission|tool call|placeholder)|placeholder feedback|stop accidental|cleanup needed|test submission)\b/i;
@@ -97,7 +98,7 @@ function inferLabels(title, summary, idealTool) {
97
98
  labels.add("enhancement");
98
99
  return [...labels];
99
100
  }
100
- function assemblePayload(title, summary, pythonWorkaround, idealTool) {
101
+ function assemblePayload(title, summary, pythonWorkaround, idealTool, privacy) {
101
102
  const sections = ["## Summary", summary];
102
103
  if (idealTool) {
103
104
  sections.push("", "## Ideal Tool/Action", idealTool);
@@ -114,18 +115,42 @@ function assemblePayload(title, summary, pythonWorkaround, idealTool) {
114
115
  }
115
116
  sections.push("", "---", "*Submitted via ue-mcp agent feedback*");
116
117
  const rawBody = sections.join("\n");
117
- const scrubbedBody = scrubSecrets(rawBody);
118
- const scrubbedTitle = scrubSecrets(title);
119
- const scrubHits = scrubbedBody.hits.reduce((n, h) => n + h.count, 0) +
120
- scrubbedTitle.hits.reduce((n, h) => n + h.count, 0);
118
+ // Two-pass scrub. Order matters:
119
+ // 1. Secret-shaped strings (PEMs, API tokens, JWTs, env-style secrets).
120
+ // 2. Personal/project identifiers (project root path, home dir, project
121
+ // name, OS username). Applied second so a path that contained a
122
+ // secret-shaped substring has the secret redacted before we drop the
123
+ // surrounding path bytes.
124
+ // The agent has no surface to bypass either pass — both are applied here
125
+ // server-side before the body ever appears on the elicitation prompt or
126
+ // crosses the GitHub API boundary.
127
+ const secretsBody = scrubSecrets(rawBody);
128
+ const privacyBody = privacyScrub(secretsBody.text, {
129
+ projectRoot: privacy.projectRoot,
130
+ projectName: privacy.projectName,
131
+ });
132
+ const secretsTitle = scrubSecrets(title);
133
+ const privacyTitle = privacyScrub(secretsTitle.text, {
134
+ projectRoot: privacy.projectRoot,
135
+ projectName: privacy.projectName,
136
+ });
137
+ const allHits = [
138
+ ...secretsBody.hits,
139
+ ...privacyBody.hits,
140
+ ...secretsTitle.hits,
141
+ ...privacyTitle.hits,
142
+ ];
143
+ const scrubHits = allHits.reduce((n, h) => n + h.count, 0);
121
144
  if (scrubHits > 0) {
122
- const allHits = [...scrubbedBody.hits, ...scrubbedTitle.hits];
123
- warn("feedback", `redacted ${scrubHits} secret-shaped strings before approval prompt: ${allHits.map((h) => `${h.rule}=${h.count}`).join(", ")}`);
145
+ warn("feedback", `redacted ${scrubHits} string(s) before approval prompt: ${allHits.map((h) => `${h.rule}=${h.count}`).join(", ")}`);
124
146
  }
125
147
  return {
126
- title: scrubbedTitle.text,
127
- body: scrubbedBody.text,
128
- labels: inferLabels(scrubbedTitle.text, summary, idealTool),
148
+ title: privacyTitle.text,
149
+ body: privacyBody.text,
150
+ // Inferred labels look at the (already-scrubbed) title + the
151
+ // user-supplied summary. summary feeds keyword detection (blueprint,
152
+ // niagara, etc.) which is structural classification, not user identity.
153
+ labels: inferLabels(privacyTitle.text, summary, idealTool),
129
154
  scrubHits,
130
155
  };
131
156
  }
@@ -197,7 +222,10 @@ export const feedbackTool = categoryTool("feedback", "Submit feedback to improve
197
222
  context: { code: "elicitation_unsupported" },
198
223
  });
199
224
  }
200
- const payload = assemblePayload(title, summary, pythonWorkaround, idealTool);
225
+ const payload = assemblePayload(title, summary, pythonWorkaround, idealTool, {
226
+ projectRoot: ctx.project?.projectDir ?? undefined,
227
+ projectName: ctx.project?.projectName ?? undefined,
228
+ });
201
229
  // Two independent checks: (1) capture intent above, (2) validate
202
230
  // auth here. Auth validation only matters when intent is "user".
203
231
  // If validation fails, return a normal error directive — there is
@@ -237,28 +265,27 @@ export const feedbackTool = categoryTool("feedback", "Submit feedback to improve
237
265
  try {
238
266
  elicitResult = await ctx.elicit({
239
267
  message: buildApprovalMessage(payload, authorPromptLine),
268
+ // Single text field, no enum dropdown. The three outcomes are
269
+ // derived from (form action) x (revisions empty?):
270
+ //
271
+ // Decline button → declined (no post)
272
+ // Accept + empty → submit the body as shown
273
+ // Accept + text → return text to the agent for a body
274
+ // revision; nothing posts until the user
275
+ // re-approves the revised body
276
+ //
277
+ // Using an enum here makes Claude Code render the field as a
278
+ // collapsed dropdown, which buries the choices behind a click.
279
+ // A plain string field renders inline.
240
280
  requestedSchema: {
241
281
  type: "object",
242
282
  properties: {
243
- decision: {
244
- type: "string",
245
- title: "What should happen?",
246
- description: "Choose how to handle this submission. \"Revise first\" returns your notes to the agent for a body rewrite, and nothing posts until you re-approve the revision.",
247
- enum: ["submit", "revise", "decline"],
248
- enumNames: [
249
- "Submit as shown",
250
- "Revise first",
251
- "Decline (do not post)",
252
- ],
253
- default: "decline",
254
- },
255
283
  revisions: {
256
284
  type: "string",
257
- title: "Revision notes (optional)",
258
- description: "If you chose \"Revise first\", describe what the agent should change before resubmitting. Examples: redact a project path, soften a claim, drop a section.",
285
+ title: "Revisions before submit (optional)",
286
+ description: "Leave EMPTY and click Accept to submit the body above as shown. Fill in to ask the agent to change the body first nothing posts until you re-approve the revised version. Click Decline to discard the submission entirely.",
259
287
  },
260
288
  },
261
- required: ["decision"],
262
289
  },
263
290
  });
264
291
  }
@@ -275,34 +302,47 @@ export const feedbackTool = categoryTool("feedback", "Submit feedback to improve
275
302
  context: { code: "elicitation_failed" },
276
303
  });
277
304
  }
278
- const decision = typeof elicitResult.content?.decision === "string"
279
- ? elicitResult.content.decision
280
- : "";
281
305
  const revisions = typeof elicitResult.content?.revisions === "string"
282
306
  ? elicitResult.content.revisions.trim()
283
307
  : "";
284
- // Anything other than action="accept" + decision="submit" stops here.
285
- // Outcomes:
286
- // accept + submit fall through to the GitHub POST below
287
- // accept + revise → bounce revisions back to the agent for a rewrite
288
- // accept + decline → declined (explicit in-form choice)
289
- // decline / cancel → declined (form-level button)
290
- if (elicitResult.action === "accept" && decision === "revise") {
291
- // The user approved in principle but wants the body rewritten
292
- // before anything posts. Hand the notes (or a request for them)
293
- // back to the agent; agent revises the params and calls
294
- // feedback(submit) again to surface a fresh approval prompt.
295
- const guidanceBlock = revisions
296
- ? `User's revision notes:\n${revisions}`
297
- : `The user did not provide specific revision notes. Ask the user in your next message what they want changed, then revise accordingly.`;
308
+ // Three outcomes from (action, revisions):
309
+ // action !== "accept" → declined (user hit the form's Decline)
310
+ // accept + revisions bounce revisions back to the agent
311
+ // accept + no revisions submit the body as shown
312
+ if (elicitResult.action !== "accept") {
313
+ const reasonCode = elicitResult.action === "decline"
314
+ ? "user_declined_form"
315
+ : elicitResult.action === "cancel"
316
+ ? "user_cancelled"
317
+ : "user_did_not_approve";
318
+ return directive([
319
+ `[FEEDBACK NOT SUBMITTED - USER DECLINED]`,
320
+ `Reason: ${reasonCode} (action="${elicitResult.action}")`,
321
+ ``,
322
+ `The user reviewed the prompt and clicked Decline. Do not retry.`,
323
+ `Resume the user's task.`,
324
+ ].join("\n"), { submitted: false, code: reasonCode, action: elicitResult.action }, {
325
+ kind: "feedback.declined",
326
+ requiredActions: ["do_not_retry_feedback_submit", "resume_user_task"],
327
+ context: { code: reasonCode, action: elicitResult.action },
328
+ });
329
+ }
330
+ if (revisions) {
331
+ // The user accepted the principle but wants the body rewritten
332
+ // before anything posts. Hand the notes back to the agent; agent
333
+ // revises the params and calls feedback(submit) again to surface
334
+ // a fresh approval prompt for the revised body.
298
335
  return directive([
299
336
  `[FEEDBACK NEEDS REVISION BEFORE SUBMIT]`,
300
337
  ``,
301
- `The user reviewed the body and chose "Revise first". Nothing has`,
302
- `been posted. ${guidanceBlock}`,
338
+ `The user approved in principle but filled in the revisions field.`,
339
+ `Nothing has been posted. Revision notes from the user:`,
340
+ ``,
341
+ revisions,
303
342
  ``,
304
- `When you re-call feedback(submit), the user will see a fresh`,
305
- `approval prompt for the revised body.`,
343
+ `Revise the title/summary/pythonWorkaround/idealTool to address`,
344
+ `these notes and call feedback(submit) again. The user will see`,
345
+ `a fresh approval prompt for the revised body.`,
306
346
  ].join("\n"), {
307
347
  submitted: false,
308
348
  code: "revisions_requested",
@@ -316,27 +356,6 @@ export const feedbackTool = categoryTool("feedback", "Submit feedback to improve
316
356
  context: { revisions },
317
357
  });
318
358
  }
319
- const submitted = elicitResult.action === "accept" && decision === "submit";
320
- if (!submitted) {
321
- const reasonCode = elicitResult.action === "decline"
322
- ? "user_declined_form"
323
- : elicitResult.action === "cancel"
324
- ? "user_cancelled"
325
- : decision === "decline"
326
- ? "user_declined_in_form"
327
- : "user_did_not_approve";
328
- return directive([
329
- `[FEEDBACK NOT SUBMITTED - USER DID NOT APPROVE]`,
330
- `Reason: ${reasonCode} (action="${elicitResult.action}", decision="${decision}")`,
331
- ``,
332
- `The user reviewed the prompt and chose not to submit. Do not retry.`,
333
- `Resume the user's task.`,
334
- ].join("\n"), { submitted: false, code: reasonCode, action: elicitResult.action, decision }, {
335
- kind: "feedback.declined",
336
- requiredActions: ["do_not_retry_feedback_submit", "resume_user_task"],
337
- context: { code: reasonCode, action: elicitResult.action },
338
- });
339
- }
340
359
  // ── Submit ──────────────────────────────────────────────────
341
360
  // The exact bytes the user saw in the elicitation prompt are the
342
361
  // exact bytes we POST, and the authorship we promised at the prompt
@@ -1 +1 @@
1
- {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/tools/feedback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/tools/feedback.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ue-mcp",
3
- "version": "1.0.20",
3
+ "version": "1.0.22",
4
4
  "description": "Unreal Engine MCP server - 21 tools, 524+ actions for AI-driven editor control",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",