unity-open-mcp 1.3.0 → 1.5.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.
- package/README.md +5 -4
- package/dist/cli/args.d.ts +1 -1
- package/dist/cli/args.js +1 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/help-text.js +30 -18
- package/dist/cli/help-text.js.map +1 -1
- package/dist/cli/setup-command.d.ts +28 -0
- package/dist/cli/setup-command.js +306 -54
- package/dist/cli/setup-command.js.map +1 -1
- package/dist/compressible-router.d.ts +4 -1
- package/dist/compressible-router.js +27 -11
- package/dist/compressible-router.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/live-client.d.ts +7 -60
- package/dist/live-client.js +26 -84
- package/dist/live-client.js.map +1 -1
- package/dist/offline/api.d.ts +2 -0
- package/dist/offline/api.js +4 -2
- package/dist/offline/api.js.map +1 -1
- package/dist/offline/model.js +1 -1
- package/dist/offline/model.js.map +1 -1
- package/dist/offline/parse.d.ts +1 -1
- package/dist/offline/parse.js +20 -8
- package/dist/offline/parse.js.map +1 -1
- package/dist/project-path.d.ts +16 -3
- package/dist/project-path.js +19 -7
- package/dist/project-path.js.map +1 -1
- package/dist/routers.js +2 -1
- package/dist/routers.js.map +1 -1
- package/dist/setup/codex-toml.d.ts +23 -0
- package/dist/setup/codex-toml.js +514 -0
- package/dist/setup/codex-toml.js.map +1 -0
- package/dist/setup/portable-config.d.ts +0 -1
- package/dist/setup/portable-config.js +7 -15
- package/dist/setup/portable-config.js.map +1 -1
- package/dist/skill/SKILL.md +2 -0
- package/dist/skill/client-paths.js +2 -4
- package/dist/skill/client-paths.js.map +1 -1
- package/dist/skill/references/yaml-and-offline-work.md +1 -1
- package/dist/tool-router.js +14 -5
- package/dist/tool-router.js.map +1 -1
- package/package.json +1 -1
|
@@ -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 {
|
|
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
|
-
|
|
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
|
|
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
|
|
42
|
-
const
|
|
43
|
-
const entry =
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
155
|
-
|
|
156
|
-
|
|
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 (
|
|
159
|
-
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
if (
|
|
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: ${
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
215
|
-
|
|
216
|
-
//
|
|
217
|
-
|
|
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
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
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,
|
|
293
|
-
|
|
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
|
-
|
|
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}/)` : ""}
|
|
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:",
|
|
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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"}
|
|
@@ -13,7 +13,10 @@ export declare class AssetModelCache {
|
|
|
13
13
|
* re-parses.
|
|
14
14
|
*/
|
|
15
15
|
get(key: string, mtimeMs: number | null): AssetModel | null;
|
|
16
|
-
|
|
16
|
+
/** Re-resolve referenced GUIDs so moved, deleted, and restored dependencies
|
|
17
|
+
* cannot leave a cached model stale while the asset itself is unchanged. */
|
|
18
|
+
getFresh(key: string, mtimeMs: number | null, projectRoot: string, assetPath: string): Promise<AssetModel | null>;
|
|
19
|
+
set(key: string, model: AssetModel, mtimeMs: number | null, dependencies?: Array<[string, string | null]>): void;
|
|
17
20
|
clear(): void;
|
|
18
21
|
get size(): number;
|
|
19
22
|
}
|