unity-open-mcp 1.3.0 → 1.4.0

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.
@@ -1,17 +1,35 @@
1
1
  import { copySkillReferences } from "../skill/copy-references.js";
2
+ import { existsSync, readdirSync } from "node:fs";
2
3
  import { readFile, mkdir, writeFile } from "node:fs/promises";
4
+ import { homedir } from "node:os";
3
5
  import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";
4
6
  import { fileURLToPath } from "node:url";
5
7
  import { clientSkillRelativePath, knownClientKeys, resolveTemplateSkillPath, } from "../skill/client-paths.js";
6
8
  import { PROJECT_PATH_ENV_VAR } from "../constants.js";
7
9
  import { validateUnityProjectRoot } from "../project-path.js";
8
10
  import { isRecord } from "./json-guards.js";
9
- import { catalogIdForSetupClient, portableEnv, portableServerArgs, portableSupportFor, renderWrapperScript, wrapperRelativePath, } from "../setup/portable-config.js";
11
+ import { CodexTomlError, mergeCodexServer, renderCodexServer } from "../setup/codex-toml.js";
12
+ import { portableEnv, portableServerArgs, portableSupportFor, renderWrapperScript, wrapperRelativePath, } from "../setup/portable-config.js";
10
13
  const BRIDGE_PACKAGE = "com.alexeyperov.unity-open-mcp-bridge";
11
14
  const VERIFY_PACKAGE = "com.alexeyperov.unity-open-mcp-verify";
12
15
  const REPOSITORY_URL = "https://github.com/AlexeyPerov/unity-open-mcp.git";
13
16
  const SERVER_KEY = "unity-open-mcp";
14
- const CONFIG_CLIENTS = ["cursor", "claude", "opencode", "agents"];
17
+ /**
18
+ * Clients `setup` can write a config for. The skill key follows
19
+ * `mcpClientMapping` in skills/client-paths.json (Codex installs into the
20
+ * shared `.agents/skills`); a unit test keeps the two in step.
21
+ */
22
+ export const SETUP_CLIENTS = [
23
+ { id: "cursor", configPath: ".cursor/mcp.json", format: "mcpServers", skillKey: "cursor", catalogId: "cursor" },
24
+ { id: "claude", configPath: ".mcp.json", format: "mcpServers", skillKey: "claude", catalogId: "claude-code" },
25
+ { id: "zcode", configPath: ".zcode/config.json", format: "zcode", skillKey: "agents", catalogId: "zcode" },
26
+ { id: "vscode", configPath: ".vscode/mcp.json", format: "vscode", skillKey: "github", catalogId: "vscode-copilot" },
27
+ { id: "codex", configPath: ".codex/config.toml", format: "codex", skillKey: "agents", catalogId: "codex" },
28
+ { id: "opencode", configPath: "opencode.json", format: "opencode", skillKey: "opencode", catalogId: "opencode" },
29
+ { id: "agents", configPath: ".mcp.json", format: "mcpServers", skillKey: "agents", catalogId: "agents" },
30
+ ];
31
+ /** How many folders above the workspace setup looks for a repository root. */
32
+ const REPO_DETECT_DEPTH = 4;
15
33
  class SetupError extends Error {
16
34
  code;
17
35
  exitCode;
@@ -23,11 +41,16 @@ class SetupError extends Error {
23
41
  }
24
42
  export async function runSetupCommand(opts) {
25
43
  try {
26
- const project = await validateProject(opts.projectPath);
44
+ const cwd = opts.cwd ?? process.cwd();
27
45
  const client = validateClient(opts.client);
46
+ const { project, source } = resolveSetupProject(opts, cwd);
28
47
  const pins = packagePins(opts.version);
29
- const placement = resolvePlacement(project, client, opts);
48
+ const placement = resolvePlacement(project, client, opts, cwd);
30
49
  const warnings = [...placement.warnings];
50
+ const envProject = (opts.env ?? process.env)[PROJECT_PATH_ENV_VAR]?.trim();
51
+ if (envProject && !samePath(resolve(cwd, envProject), project)) {
52
+ warnings.push(`${PROJECT_PATH_ENV_VAR} is set to ${envProject} in this shell; setup ignores it and configures ${project}.`);
53
+ }
31
54
  const manifestPath = join(project, "Packages", "manifest.json");
32
55
  const manifest = await readJsonObject(manifestPath, false);
33
56
  const dependencies = manifest.dependencies;
@@ -38,9 +61,9 @@ export async function runSetupCommand(opts) {
38
61
  dependencies[VERIFY_PACKAGE] = pins.verify;
39
62
  // Client config and the agent skill live where the AI client is opened —
40
63
  // the workspace root, which equals the Unity root for a plain layout.
41
- const configPath = configPathFor(placement.workspace, client);
42
- const config = await readJsonObject(configPath, true);
43
- const entry = mergeClientConfig(config, client, project, pins.npm, placement);
64
+ const clientConfig = await planClientConfig(client, project, pins.npm, placement);
65
+ const configPath = clientConfig.path;
66
+ const entry = clientConfig.entry;
44
67
  const wrapperPath = placement.emitWrapper
45
68
  ? join(placement.workspace, ...wrapperRelativePath(placement.layout).split("/"))
46
69
  : null;
@@ -54,7 +77,7 @@ export async function runSetupCommand(opts) {
54
77
  let skillBytes = null;
55
78
  let skillPath = null;
56
79
  if (!opts.skipSkill) {
57
- skillPath = join(placement.workspace, clientSkillRelativePath(client));
80
+ skillPath = join(placement.workspace, clientSkillRelativePath(client.skillKey));
58
81
  const source = opts.skillSourcePath ?? resolveBundledSkillPath();
59
82
  if (!source) {
60
83
  throw new SetupError("skill_not_bundled", "The packaged core skill could not be located. Reinstall unity-open-mcp and retry.", 1);
@@ -68,7 +91,7 @@ export async function runSetupCommand(opts) {
68
91
  }
69
92
  if (!opts.dryRun) {
70
93
  await writeJson(manifestPath, manifest);
71
- await writeJson(configPath, config);
94
+ await writeText(configPath, clientConfig.body);
72
95
  if (skillBytes && skillPath) {
73
96
  try {
74
97
  await mkdir(dirname(skillPath), { recursive: true });
@@ -92,7 +115,8 @@ export async function runSetupCommand(opts) {
92
115
  const report = {
93
116
  version: opts.version,
94
117
  project,
95
- client,
118
+ projectSource: source,
119
+ client: client.id,
96
120
  dryRun: opts.dryRun,
97
121
  workspace: placement.workspace,
98
122
  layout: placement.layout,
@@ -127,6 +151,9 @@ export async function runSetupCommand(opts) {
127
151
  userAction: [
128
152
  `Open Unity with ${project} and wait for compilation to finish.`,
129
153
  "Restart the MCP / AI client so it reloads the updated configuration.",
154
+ ...(client.format === "codex"
155
+ ? [`Trust ${placement.workspace} in Codex — it reads .codex/config.toml only for a trusted project.`]
156
+ : []),
130
157
  ],
131
158
  };
132
159
  return { exitCode: 0, json: report, human: formatSetupReport(report) };
@@ -151,42 +178,111 @@ export async function runSetupCommand(opts) {
151
178
  };
152
179
  }
153
180
  }
154
- async function validateProject(input) {
155
- if (!input) {
156
- throw new SetupError("missing_project", "setup requires --project <absolute Unity project path>.", 2);
181
+ /**
182
+ * The Unity project this run configures. First match wins:
183
+ *
184
+ * 1. `--project <path>` — absolute, or relative to the working directory.
185
+ * 2. `--workspace <path>` (+ `--unity-subpath <rel>`) — the Unity folder
186
+ * under an explicit repository root.
187
+ * 3. `--unity-subpath <rel>` — a monorepo, run from the repository root.
188
+ * 4. the working directory itself.
189
+ *
190
+ * `UNITY_PROJECT_PATH` is deliberately not an input: an agent's shell can
191
+ * carry a stale value from another project, and setup writes files.
192
+ */
193
+ function resolveSetupProject(opts, cwd) {
194
+ const subpath = normalizeSubpath(opts.unitySubpath);
195
+ const flag = opts.projectPath?.trim();
196
+ const workspace = opts.workspacePath?.trim();
197
+ let project;
198
+ let source;
199
+ if (flag) {
200
+ project = resolve(cwd, flag);
201
+ source = "flag";
202
+ }
203
+ else if (workspace) {
204
+ project = resolve(cwd, workspace, ...subpath.split("/").filter(Boolean));
205
+ source = "workspace";
157
206
  }
158
- if (!isAbsolute(input)) {
159
- throw new SetupError("project_not_absolute", `--project must be absolute (received '${input}').`, 2);
207
+ else if (subpath) {
208
+ project = resolve(cwd, ...subpath.split("/"));
209
+ source = "cwd+subpath";
210
+ }
211
+ else {
212
+ project = resolve(cwd);
213
+ source = "cwd";
160
214
  }
161
- const project = resolve(input);
162
215
  const validation = validateUnityProjectRoot(project);
163
216
  if (!validation.valid) {
164
- throw new SetupError("not_unity_project", `${project} is not a Unity project root: missing ${validation.missing.map((m) => `${m}/`).join(", ")}.`, 2);
217
+ const missing = validation.missing.map((m) => `${m}/`).join(", ");
218
+ throw new SetupError("not_unity_project", `${project} is not a Unity project root: missing ${missing}. ${notUnityProjectHint(project, source)}`, 2);
219
+ }
220
+ return { project, source };
221
+ }
222
+ /** Point at a Unity project just below the folder that missed, when there is one. */
223
+ function notUnityProjectHint(searched, source) {
224
+ const found = findUnityProjectsBelow(searched, 2);
225
+ if (found.length > 0) {
226
+ const shown = found.slice(0, 3);
227
+ if (source === "cwd") {
228
+ return `Found a Unity project at ${shown.map((rel) => `${rel}/`).join(", ")} — run again with --unity-subpath ${quoteArg(shown[0])}.`;
229
+ }
230
+ return `Found a Unity project at ${shown.map((rel) => join(searched, rel)).join(", ")} — pass that folder instead.`;
165
231
  }
166
- return project;
232
+ return source === "flag"
233
+ ? "Pass the folder that contains Assets/, Packages/, and ProjectSettings/."
234
+ : "Run setup in the folder that contains Assets/, Packages/, and ProjectSettings/, or pass --project <path>.";
235
+ }
236
+ /** Folders that never hold a Unity project worth suggesting. */
237
+ const SEARCH_PRUNED = new Set([
238
+ "node_modules", "Library", "Temp", "Logs", "Build", "Builds", "obj", "bin", "dist",
239
+ ]);
240
+ /** Unity roots up to `depth` levels below `root`, as POSIX relative paths. */
241
+ function findUnityProjectsBelow(root, depth) {
242
+ const found = [];
243
+ const walk = (dir, rel, level) => {
244
+ if (level > depth)
245
+ return;
246
+ let entries;
247
+ try {
248
+ entries = readdirSync(dir, { withFileTypes: true });
249
+ }
250
+ catch {
251
+ return;
252
+ }
253
+ for (const e of entries) {
254
+ if (!e.isDirectory() || e.name.startsWith(".") || SEARCH_PRUNED.has(e.name))
255
+ continue;
256
+ const child = join(dir, e.name);
257
+ const childRel = rel ? `${rel}/${e.name}` : e.name;
258
+ if (validateUnityProjectRoot(child).valid)
259
+ found.push(childRel);
260
+ else
261
+ walk(child, childRel, level + 1);
262
+ }
263
+ };
264
+ walk(root, "", 1);
265
+ return found.sort();
167
266
  }
168
267
  function validateClient(input) {
169
- const known = knownClientKeys();
268
+ const known = SETUP_CLIENTS.map((c) => c.id);
170
269
  if (!input) {
171
270
  throw new SetupError("missing_client", `setup requires --client <id>. Known ids: ${known.join(", ")}.`, 2);
172
271
  }
173
- if (!known.includes(input)) {
174
- throw new SetupError("unknown_client", `Unknown client '${input}'. Known ids: ${known.join(", ")}.`, 2);
175
- }
176
- if (!CONFIG_CLIENTS.includes(input)) {
177
- throw new SetupError("unsupported_client_config", `Client '${input}' has a skill path but no setup config writer. Configure MCP manually; skill-only is not enough. Setup config writers: ${CONFIG_CLIENTS.join(", ")}.`, 2);
272
+ const spec = SETUP_CLIENTS.find((c) => c.id === input);
273
+ if (spec)
274
+ return spec;
275
+ if (knownClientKeys().includes(input)) {
276
+ throw new SetupError("unsupported_client_config", `Client '${input}' has a skill path but no setup config writer. Configure MCP manually; skill-only is not enough. Setup config writers: ${known.join(", ")}.`, 2);
178
277
  }
179
- return input;
278
+ throw new SetupError("unknown_client", `Unknown client '${input}'. Known ids: ${known.join(", ")}.`, 2);
180
279
  }
181
- function resolvePlacement(project, client, opts) {
280
+ function resolvePlacement(project, client, opts, cwd) {
182
281
  const warnings = [];
183
282
  const requestedSubpath = normalizeSubpath(opts.unitySubpath);
184
283
  let workspace;
185
- if (opts.workspacePath) {
186
- if (!isAbsolute(opts.workspacePath)) {
187
- throw new SetupError("workspace_not_absolute", `--workspace must be absolute (received '${opts.workspacePath}').`, 2);
188
- }
189
- workspace = resolve(opts.workspacePath);
284
+ if (opts.workspacePath?.trim()) {
285
+ workspace = resolve(cwd, opts.workspacePath.trim());
190
286
  }
191
287
  else if (requestedSubpath) {
192
288
  // Derive the workspace by stripping the subpath off the Unity root, so
@@ -211,18 +307,38 @@ function resolvePlacement(project, client, opts) {
211
307
  if (layout === "unity-root" && unitySubpath) {
212
308
  throw new SetupError("layout_conflict", `--layout unity-root conflicts with a Unity project at '${unitySubpath}' below the workspace; use --layout monorepo.`, 2);
213
309
  }
214
- const support = portableSupportFor(catalogIdForSetupClient(client));
215
- // Portable by default exactly where the absolute path is the real problem:
216
- // a monorepo whose config file is not inside the Unity project.
217
- let portable = opts.portable ?? layout === "monorepo";
310
+ const support = portableSupportFor(client.catalogId);
311
+ const repoRoot = findRepoRoot(workspace, opts.homeDir ?? homedir());
312
+ // Portable by default wherever the config is likely to be committed: a
313
+ // monorepo, or a workspace that is itself a repository root — the same
314
+ // default the bridge window and the Hub wizard use.
315
+ let portable = opts.portable ?? (layout === "monorepo" || repoRoot === workspace);
218
316
  if (portable && support?.strategy === "absolute") {
219
- warnings.push(`Client '${client}' has no portable configuration form; writing the absolute path.`);
317
+ warnings.push(`Client '${client.id}' has no portable configuration form; writing the absolute path.`);
220
318
  portable = false;
221
319
  }
222
320
  if (portable && !support) {
223
- warnings.push(`Client '${client}' is not in the portable-config catalog; writing the absolute path.`);
321
+ warnings.push(`Client '${client.id}' is not in the portable-config catalog; writing the absolute path.`);
224
322
  portable = false;
225
323
  }
324
+ if (portable && support?.strategy === "wrapper" && (opts.platform ?? process.platform) === "win32") {
325
+ if (opts.portable === undefined) {
326
+ warnings.push(`The portable ${client.id} entry runs a bash wrapper script, which Windows cannot start without Git Bash or WSL; writing the absolute path. Pass --portable to write the wrapper anyway.`);
327
+ portable = false;
328
+ }
329
+ else {
330
+ warnings.push(`The ${client.id} wrapper is a bash script: on Windows it needs Git Bash or WSL on PATH.`);
331
+ }
332
+ }
333
+ // The Unity project sits inside a repository whose root is above the
334
+ // workspace: an AI client opened on that root never reads this config.
335
+ if (repoRoot && repoRoot !== workspace && !opts.workspacePath?.trim()) {
336
+ const rel = relativeSubpath(repoRoot, project);
337
+ if (rel) {
338
+ warnings.push(`${project} is inside the repository ${repoRoot}. An AI client opened on ${repoRoot} does not read ${join(workspace, ...client.configPath.split("/"))}. ` +
339
+ `To configure the repository instead, run from ${repoRoot}: npx -y unity-open-mcp@${opts.version} setup --client ${client.id} --unity-subpath ${quoteArg(rel)}`);
340
+ }
341
+ }
226
342
  const strategy = portable && support ? support.strategy : "absolute";
227
343
  const emitWrapper = (portable && strategy === "wrapper") || opts.wrapper === true;
228
344
  return {
@@ -269,17 +385,69 @@ export function packagePins(version) {
269
385
  verify: `${REPOSITORY_URL}?path=packages/verify#verify-v${version}`,
270
386
  };
271
387
  }
272
- function configPathFor(workspace, client) {
273
- switch (client) {
274
- case "cursor":
275
- return join(workspace, ".cursor", "mcp.json");
276
- case "claude":
277
- return join(workspace, ".mcp.json");
278
- case "opencode":
279
- return join(workspace, "opencode.json");
280
- case "agents":
281
- return join(workspace, ".mcp.json");
388
+ /**
389
+ * Nearest folder at or above `start` (up to {@link REPO_DETECT_DEPTH} levels)
390
+ * that holds a `.git` entry, stopping before the home directory — a dotfiles
391
+ * repository in `$HOME` must not make every project look committed.
392
+ */
393
+ function findRepoRoot(start, home) {
394
+ const boundary = home ? resolve(home) : "";
395
+ let dir = resolve(start);
396
+ for (let level = 0; level <= REPO_DETECT_DEPTH; level++) {
397
+ if (boundary && samePath(dir, boundary))
398
+ return undefined;
399
+ if (existsSync(join(dir, ".git")))
400
+ return dir;
401
+ const parent = dirname(dir);
402
+ if (parent === dir)
403
+ return undefined;
404
+ dir = parent;
405
+ }
406
+ return undefined;
407
+ }
408
+ async function planClientConfig(client, project, npmPin, placement) {
409
+ const path = join(placement.workspace, ...client.configPath.split("/"));
410
+ const launch = launchFields(project, npmPin, placement);
411
+ if (client.format === "codex") {
412
+ const codexEntry = {
413
+ command: launch.command,
414
+ args: launch.args,
415
+ env: launch.env,
416
+ removeEnv: launch.env[PROJECT_PATH_ENV_VAR] === undefined ? [PROJECT_PATH_ENV_VAR] : [],
417
+ };
418
+ const raw = (await readTextIfExists(path)) ?? "";
419
+ let body;
420
+ try {
421
+ body = mergeCodexServer(raw, SERVER_KEY, codexEntry);
422
+ }
423
+ catch (error) {
424
+ if (!(error instanceof CodexTomlError))
425
+ throw error;
426
+ throw new SetupError(error.code, `${path}: ${error.message} Add this entry by hand:\n${renderCodexServer(SERVER_KEY, codexEntry)}`, 1);
427
+ }
428
+ return {
429
+ path,
430
+ entry: { enabled: true, command: launch.command, args: launch.args, env: launch.env },
431
+ body,
432
+ };
433
+ }
434
+ const raw = await readTextIfExists(path);
435
+ let config = {};
436
+ if (raw !== undefined) {
437
+ try {
438
+ config = parseJsonObject(raw);
439
+ }
440
+ catch (error) {
441
+ if (isJsonc(raw)) {
442
+ const snippet = {};
443
+ mergeClientConfig(snippet, client, launch);
444
+ throw new SetupError("jsonc_config", `${path} has comments or trailing commas. setup rewrites the file as plain JSON and would drop them, so it leaves the file unchanged. Add this entry by hand:\n${JSON.stringify(snippet, null, 2)}`, 1);
445
+ }
446
+ throw new SetupError("invalid_json", `${path} is not valid JSON: ${error instanceof Error ? error.message : String(error)}`, 1);
447
+ }
282
448
  }
449
+ const entry = mergeClientConfig(config, client, launch);
450
+ return { path, entry, body: `${JSON.stringify(config, null, 2)}\n` };
283
451
  }
284
452
  /**
285
453
  * Merge the `unity-open-mcp` entry into an existing client config, preserving
@@ -289,9 +457,8 @@ function configPathFor(workspace, client) {
289
457
  * earlier absolute run (and vice versa), because leaving a stale machine path
290
458
  * behind would silently keep winning over `--project-from-cwd`.
291
459
  */
292
- function mergeClientConfig(config, client, project, npmPin, placement) {
293
- const launch = launchFields(project, npmPin, placement);
294
- if (client === "opencode") {
460
+ function mergeClientConfig(config, client, launch) {
461
+ if (client.format === "opencode") {
295
462
  const mcp = ensureObject(config, "mcp");
296
463
  const previous = isRecord(mcp[SERVER_KEY]) ? mcp[SERVER_KEY] : {};
297
464
  const previousEnvironment = isRecord(previous.environment)
@@ -307,10 +474,16 @@ function mergeClientConfig(config, client, project, npmPin, placement) {
307
474
  mcp[SERVER_KEY] = entry;
308
475
  return entry;
309
476
  }
310
- const servers = ensureObject(config, "mcpServers");
477
+ // VS Code (and Visual Studio) read `servers`, ZCode `mcp.servers`; both
478
+ // carry an explicit transport.
479
+ const typed = client.format === "vscode" || client.format === "zcode";
480
+ const servers = client.format === "zcode"
481
+ ? ensureObject(ensureObject(config, "mcp"), "servers")
482
+ : ensureObject(config, client.format === "vscode" ? "servers" : "mcpServers");
311
483
  const previous = isRecord(servers[SERVER_KEY]) ? servers[SERVER_KEY] : {};
312
484
  const previousEnv = isRecord(previous.env) ? previous.env : {};
313
485
  const entry = {
486
+ ...(typed ? { type: "stdio" } : {}),
314
487
  ...previous,
315
488
  command: launch.command,
316
489
  args: launch.args,
@@ -394,6 +567,84 @@ async function writeJson(path, value) {
394
567
  throw ioError(`Could not write ${path}`, error);
395
568
  }
396
569
  }
570
+ async function writeText(path, body) {
571
+ try {
572
+ await mkdir(dirname(path), { recursive: true });
573
+ await writeFile(path, body, "utf8");
574
+ }
575
+ catch (error) {
576
+ throw ioError(`Could not write ${path}`, error);
577
+ }
578
+ }
579
+ async function readTextIfExists(path) {
580
+ try {
581
+ return await readFile(path, "utf8");
582
+ }
583
+ catch (error) {
584
+ if (isNodeError(error) && error.code === "ENOENT")
585
+ return undefined;
586
+ throw ioError(`Could not read ${path}`, error);
587
+ }
588
+ }
589
+ function parseJsonObject(raw) {
590
+ const parsed = JSON.parse(raw);
591
+ if (!isRecord(parsed))
592
+ throw new Error("top level must be a JSON object");
593
+ return parsed;
594
+ }
595
+ /**
596
+ * True when `raw` only parses once comments and trailing commas are removed —
597
+ * the JSONC dialect VS Code allows in `.vscode/mcp.json`.
598
+ */
599
+ function isJsonc(raw) {
600
+ let out = "";
601
+ let inString = false;
602
+ for (let i = 0; i < raw.length; i++) {
603
+ const ch = raw[i];
604
+ if (inString) {
605
+ out += ch;
606
+ if (ch === "\\")
607
+ out += raw[++i] ?? "";
608
+ else if (ch === '"')
609
+ inString = false;
610
+ }
611
+ else if (ch === '"') {
612
+ inString = true;
613
+ out += ch;
614
+ }
615
+ else if (raw.startsWith("//", i)) {
616
+ while (i < raw.length && raw[i] !== "\n")
617
+ i++;
618
+ out += "\n";
619
+ }
620
+ else if (raw.startsWith("/*", i)) {
621
+ const close = raw.indexOf("*/", i + 2);
622
+ i = close < 0 ? raw.length : close + 1;
623
+ }
624
+ else {
625
+ out += ch;
626
+ }
627
+ }
628
+ try {
629
+ parseJsonObject(out.replace(/,(\s*[}\]])/g, "$1"));
630
+ return true;
631
+ }
632
+ catch {
633
+ return false;
634
+ }
635
+ }
636
+ /** Path equality after resolution; case folds on Windows and macOS. */
637
+ function samePath(a, b) {
638
+ const norm = (p) => {
639
+ const r = resolve(p);
640
+ return process.platform === "win32" || process.platform === "darwin" ? r.toLowerCase() : r;
641
+ };
642
+ return norm(a) === norm(b);
643
+ }
644
+ /** Shell-quote an argument that contains whitespace. */
645
+ function quoteArg(value) {
646
+ return /\s/.test(value) ? `"${value}"` : value;
647
+ }
397
648
  function resolveBundledSkillPath() {
398
649
  const moduleDir = dirname(fileURLToPath(import.meta.url));
399
650
  // Published package: dist/cli/setup-command.js -> dist/skill/SKILL.md.
@@ -409,7 +660,7 @@ function formatSetupReport(report) {
409
660
  const lines = [
410
661
  mode,
411
662
  `VERSION: ${report.version}`,
412
- `Project: ${report.project}`,
663
+ `Project: ${report.project} (from ${report.projectSource})`,
413
664
  `Client: ${report.client}`,
414
665
  `UPM bridge: ${report.manifest.dependencies[BRIDGE_PACKAGE]}`,
415
666
  `UPM verify: ${report.manifest.dependencies[VERIFY_PACKAGE]}`,
@@ -418,13 +669,14 @@ function formatSetupReport(report) {
418
669
  "Domain packages: not installed",
419
670
  ];
420
671
  if (report.layout === "monorepo" || report.portable) {
421
- lines.push(`Workspace: ${report.workspace}`, `Layout: ${report.layout}${report.unitySubpath ? ` (Unity at ${report.unitySubpath}/)` : ""}`, `Config: ${report.portable ? `portable — safe to commit (${report.configStrategy})` : "absolute path"}`);
672
+ lines.push(`Workspace: ${report.workspace}`, `Layout: ${report.layout}${report.unitySubpath ? ` (Unity at ${report.unitySubpath}/)` : ""}`);
422
673
  }
674
+ lines.push(`Config: ${report.portable ? `portable — safe to commit (${report.configStrategy})` : "absolute path — this machine only"}`);
423
675
  if (report.wrapper.path)
424
676
  lines.push(`Wrapper: ${report.wrapper.path}`);
425
677
  for (const warning of report.warnings)
426
678
  lines.push(`Warning: ${warning}`);
427
- lines.push("", "USER ACTION:", `1. ${report.userAction[0]}`, `2. ${report.userAction[1]}`);
679
+ lines.push("", "USER ACTION:", ...report.userAction.map((action, i) => `${i + 1}. ${action}`));
428
680
  return lines.join("\n");
429
681
  }
430
682
  function countLines(bytes) {
@@ -1 +1 @@
1
- {"version":3,"file":"setup-command.js","sourceRoot":"","sources":["../../src/cli/setup-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup-command.js","sourceRoot":"","sources":["../../src/cli/setup-command.ts"],"names":[],"mappings":"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"}
@@ -94,7 +94,7 @@ export declare const COMPILE_STATE_HEADER = "X-Unity-Open-MCP-Compile-State";
94
94
  * verify packages. Mirrors the C# `BridgeConstants.NpmPackage`. Kept in
95
95
  * sync by `scripts/sync-version.mjs`.
96
96
  */
97
- export declare const NPM_PACKAGE = "unity-open-mcp@1.3.0";
97
+ export declare const NPM_PACKAGE = "unity-open-mcp@1.4.0";
98
98
  /**
99
99
  * Build the bridge base URL for a given port. Centralizes the loopback +
100
100
  * scheme so every caller produces the same string.
package/dist/constants.js CHANGED
@@ -105,7 +105,7 @@ export const COMPILE_STATE_HEADER = "X-Unity-Open-MCP-Compile-State";
105
105
  * verify packages. Mirrors the C# `BridgeConstants.NpmPackage`. Kept in
106
106
  * sync by `scripts/sync-version.mjs`.
107
107
  */
108
- export const NPM_PACKAGE = "unity-open-mcp@1.3.0";
108
+ export const NPM_PACKAGE = "unity-open-mcp@1.4.0";
109
109
  /**
110
110
  * Build the bridge base URL for a given port. Centralizes the loopback +
111
111
  * scheme so every caller produces the same string.
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ import { KNOWN_COMMANDS } from "./cli/args.js";
17
17
  import { runCli } from "./cli/cli.js";
18
18
  import { readPackageVersion } from "./package-version.js";
19
19
  import { PROJECT_PATH_ENV_VAR } from "./constants.js";
20
- import { notUnityProjectMessage, parseServerFlags, ProjectPathError, resolveProjectPath, validateUnityProjectRoot, } from "./project-path.js";
20
+ import { isUnityProjectRoot, notUnityProjectMessage, parseServerFlags, ProjectPathError, resolveProjectPath, validateUnityProjectRoot, } from "./project-path.js";
21
21
  // Read the version from package.json at runtime so `npm version` (and the
22
22
  // maintainer-panel version-bump in the Hub) keep the reported server + CLI
23
23
  // version in sync without editing this source file.
@@ -82,6 +82,7 @@ function resolveStdioProjectPath(flags) {
82
82
  cwd: process.cwd(),
83
83
  projectFromCwd: flags.projectFromCwd,
84
84
  unitySubpath: flags.unitySubpath,
85
+ isUnityRoot: isUnityProjectRoot,
85
86
  });
86
87
  }
87
88
  catch (err) {