unity-mcp-cli 0.53.1 → 0.55.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.
Files changed (40) hide show
  1. package/README.md +168 -114
  2. package/dist/commands/configure.js +3 -0
  3. package/dist/commands/configure.js.map +1 -1
  4. package/dist/commands/create-project.js +6 -3
  5. package/dist/commands/create-project.js.map +1 -1
  6. package/dist/commands/install-plugin.js +14 -3
  7. package/dist/commands/install-plugin.js.map +1 -1
  8. package/dist/commands/install-unity.js +27 -14
  9. package/dist/commands/install-unity.js.map +1 -1
  10. package/dist/commands/open.js +75 -7
  11. package/dist/commands/open.js.map +1 -1
  12. package/dist/commands/remove-plugin.js +2 -0
  13. package/dist/commands/remove-plugin.js.map +1 -1
  14. package/dist/commands/run-tool.d.ts +2 -0
  15. package/dist/commands/run-tool.js +180 -0
  16. package/dist/commands/run-tool.js.map +1 -0
  17. package/dist/index.js +15 -6
  18. package/dist/index.js.map +1 -1
  19. package/dist/utils/config.d.ts +17 -1
  20. package/dist/utils/config.js +26 -0
  21. package/dist/utils/config.js.map +1 -1
  22. package/dist/utils/manifest.d.ts +6 -3
  23. package/dist/utils/manifest.js +30 -27
  24. package/dist/utils/manifest.js.map +1 -1
  25. package/dist/utils/ui.d.ts +23 -3
  26. package/dist/utils/ui.js +170 -18
  27. package/dist/utils/ui.js.map +1 -1
  28. package/dist/utils/unity-editor.d.ts +5 -0
  29. package/dist/utils/unity-editor.js +42 -2
  30. package/dist/utils/unity-editor.js.map +1 -1
  31. package/dist/utils/unity-hub.d.ts +29 -1
  32. package/dist/utils/unity-hub.js +260 -17
  33. package/dist/utils/unity-hub.js.map +1 -1
  34. package/docs/README.es.md +128 -113
  35. package/docs/README.ja.md +128 -113
  36. package/docs/README.zh-CN.md +128 -113
  37. package/package.json +2 -5
  38. package/dist/commands/connect.d.ts +0 -2
  39. package/dist/commands/connect.js +0 -87
  40. package/dist/commands/connect.js.map +0 -1
@@ -1,11 +1,12 @@
1
1
  import * as fs from 'fs';
2
2
  import * as path from 'path';
3
3
  import * as os from 'os';
4
- import { execFileSync, execSync } from 'child_process';
4
+ import { execFileSync, execSync, spawn } from 'child_process';
5
5
  import { platform } from 'os';
6
6
  import { get as httpsGet } from 'https';
7
7
  import { get as httpGet } from 'http';
8
8
  import * as ui from './ui.js';
9
+ import { verbose } from './ui.js';
9
10
  const UNITY_HUB_DOWNLOAD_URLS = {
10
11
  win32: 'https://public-cdn.cloud.unity3d.com/hub/prod/UnityHubSetup.exe',
11
12
  darwin: 'https://public-cdn.cloud.unity3d.com/hub/prod/UnityHubSetup.dmg',
@@ -30,10 +31,13 @@ export function findUnityHub() {
30
31
  break;
31
32
  }
32
33
  for (const candidate of candidates) {
34
+ verbose(`Checking Unity Hub candidate: ${candidate}`);
33
35
  if (candidate && fs.existsSync(candidate)) {
36
+ verbose(`Found Unity Hub at: ${candidate}`);
34
37
  return candidate;
35
38
  }
36
39
  }
40
+ verbose('Unity Hub not found in any candidate location');
37
41
  return null;
38
42
  }
39
43
  /**
@@ -78,10 +82,10 @@ export async function installUnityHub() {
78
82
  await downloadFile(url, installerPath);
79
83
  }
80
84
  catch (err) {
81
- spinner.fail('Failed to download Unity Hub installer');
85
+ spinner.error('Failed to download Unity Hub installer');
82
86
  throw err;
83
87
  }
84
- spinner.succeed('Unity Hub installer downloaded');
88
+ spinner.success('Unity Hub installer downloaded');
85
89
  ui.info('Installing Unity Hub silently (may require administrator privileges)...');
86
90
  try {
87
91
  execFileSync(installerPath, ['/S'], { timeout: 300000, stdio: 'inherit' });
@@ -105,10 +109,10 @@ export async function installUnityHub() {
105
109
  await downloadFile(url, dmgPath);
106
110
  }
107
111
  catch (err) {
108
- spinner.fail('Failed to download Unity Hub installer');
112
+ spinner.error('Failed to download Unity Hub installer');
109
113
  throw err;
110
114
  }
111
- spinner.succeed('Unity Hub installer downloaded');
115
+ spinner.success('Unity Hub installer downloaded');
112
116
  const installSpinner = ui.startSpinner('Installing Unity Hub...');
113
117
  try {
114
118
  const mountOutput = execSync(`hdiutil attach -nobrowse -noverify "${dmgPath}"`, { encoding: 'utf-8' });
@@ -122,10 +126,10 @@ export async function installUnityHub() {
122
126
  finally {
123
127
  execSync(`hdiutil detach "${mountPoint}" -quiet`, { stdio: 'ignore' });
124
128
  }
125
- installSpinner.succeed('Unity Hub installed');
129
+ installSpinner.success('Unity Hub installed');
126
130
  }
127
131
  catch (err) {
128
- installSpinner.fail('Unity Hub installation failed');
132
+ installSpinner.error('Unity Hub installation failed');
129
133
  throw err;
130
134
  }
131
135
  finally {
@@ -149,11 +153,11 @@ export async function installUnityHub() {
149
153
  await downloadFile(url, appImagePath);
150
154
  }
151
155
  catch (err) {
152
- spinner.fail('Failed to download Unity Hub AppImage');
156
+ spinner.error('Failed to download Unity Hub AppImage');
153
157
  throw err;
154
158
  }
155
159
  fs.chmodSync(appImagePath, 0o755);
156
- spinner.succeed(`Unity Hub installed at: ${appImagePath}`);
160
+ spinner.success(`Unity Hub installed at: ${appImagePath}`);
157
161
  return appImagePath;
158
162
  }
159
163
  default:
@@ -174,10 +178,11 @@ export async function ensureUnityHub() {
174
178
  * List installed Unity editors via Unity Hub CLI.
175
179
  */
176
180
  export function listInstalledEditors(hubPath) {
181
+ const spinner = ui.startSpinner('Listing installed editors...');
177
182
  try {
178
183
  const output = execFileSync(hubPath, ['--', '--headless', 'editors', '--installed'], {
179
184
  encoding: 'utf-8',
180
- timeout: 30000,
185
+ timeout: 120000,
181
186
  });
182
187
  const editors = [];
183
188
  for (const line of output.split('\n')) {
@@ -190,10 +195,11 @@ export function listInstalledEditors(hubPath) {
190
195
  editors.push({ version: match[1], path: match[2].trim() });
191
196
  }
192
197
  }
198
+ spinner.success(`Found ${editors.length} installed editor${editors.length !== 1 ? 's' : ''}`);
193
199
  return editors;
194
200
  }
195
201
  catch (err) {
196
- ui.warn(`Failed to list installed editors: ${err.message}`);
202
+ spinner.error(`Failed to list installed editors: ${err.message}`);
197
203
  return [];
198
204
  }
199
205
  }
@@ -232,16 +238,253 @@ export function findHighestEditor(editors) {
232
238
  return editors.reduce((highest, current) => compareUnityVersions(current.version, highest.version) > 0 ? current : highest);
233
239
  }
234
240
  /**
235
- * Install a Unity editor version via Unity Hub CLI.
241
+ * List available Unity editor releases from Unity Hub CLI.
236
242
  */
237
- export function installEditor(hubPath, version) {
238
- ui.info(`Installing Unity Editor ${version} via Unity Hub...`);
243
+ export function listAvailableReleases(hubPath) {
244
+ const spinner = ui.startSpinner('Fetching available releases...');
239
245
  try {
240
- execFileSync(hubPath, ['--', '--headless', 'install', '--version', version], { encoding: 'utf-8', timeout: 600000, stdio: 'inherit' });
246
+ const output = execFileSync(hubPath, ['--', '--headless', 'editors', '--releases'], {
247
+ encoding: 'utf-8',
248
+ timeout: 120000,
249
+ });
250
+ const releases = [];
251
+ for (const line of output.split('\n')) {
252
+ const trimmed = line.trim();
253
+ if (!trimmed)
254
+ continue;
255
+ // Extract version from line (may also contain "installed at ..." suffix)
256
+ const match = trimmed.match(/^([\d.]+[a-zA-Z]\d+)/);
257
+ if (match) {
258
+ const version = match[1];
259
+ const isStable = /f\d+$/.test(version);
260
+ releases.push({ version, isStable });
261
+ }
262
+ }
263
+ spinner.success(`Found ${releases.length} available release${releases.length !== 1 ? 's' : ''}`);
264
+ return releases;
241
265
  }
242
266
  catch (err) {
243
- throw new Error(`Failed to install Unity Editor ${version}: ${err.message}`);
267
+ spinner.error(`Failed to fetch available releases: ${err.message}`);
268
+ return [];
269
+ }
270
+ }
271
+ /**
272
+ * Find the latest stable (f-suffix) release from the available releases.
273
+ */
274
+ export function findLatestStableRelease(releases) {
275
+ const stable = releases.filter(r => r.isStable);
276
+ if (stable.length === 0)
277
+ return null;
278
+ return stable.reduce((highest, current) => compareUnityVersions(current.version, highest.version) > 0 ? current : highest);
279
+ }
280
+ const FETCH_TIMEOUT_MS = 10000;
281
+ const FETCH_MAX_REDIRECTS = 5;
282
+ /**
283
+ * Fetch a URL and return the response body as a string.
284
+ * Supports redirect following up to FETCH_MAX_REDIRECTS deep, and enforces a
285
+ * FETCH_TIMEOUT_MS request timeout to prevent indefinite hangs.
286
+ */
287
+ function fetchUrl(url, redirectsRemaining = FETCH_MAX_REDIRECTS) {
288
+ return new Promise((resolve, reject) => {
289
+ const controller = new AbortController();
290
+ const timer = setTimeout(() => {
291
+ controller.abort();
292
+ reject(new Error(`Request timed out after ${FETCH_TIMEOUT_MS}ms: ${url}`));
293
+ }, FETCH_TIMEOUT_MS);
294
+ const doGet = url.startsWith('https') ? httpsGet : httpGet;
295
+ const req = doGet(url, { signal: controller.signal }, (response) => {
296
+ if (response.statusCode && response.statusCode >= 300 && response.statusCode < 400 && response.headers.location) {
297
+ clearTimeout(timer);
298
+ if (redirectsRemaining <= 0) {
299
+ response.resume();
300
+ reject(new Error(`Too many redirects (max ${FETCH_MAX_REDIRECTS}) fetching: ${url}`));
301
+ return;
302
+ }
303
+ response.resume();
304
+ fetchUrl(new URL(response.headers.location, url).toString(), redirectsRemaining - 1).then(resolve, reject);
305
+ return;
306
+ }
307
+ if (response.statusCode && response.statusCode !== 200) {
308
+ clearTimeout(timer);
309
+ response.resume();
310
+ reject(new Error(`HTTP ${response.statusCode}`));
311
+ return;
312
+ }
313
+ const chunks = [];
314
+ response.on('data', (chunk) => chunks.push(chunk));
315
+ response.on('end', () => { clearTimeout(timer); resolve(Buffer.concat(chunks).toString('utf-8')); });
316
+ response.on('error', (err) => { clearTimeout(timer); reject(err); });
317
+ });
318
+ req.on('error', (err) => { clearTimeout(timer); reject(err); });
319
+ });
320
+ }
321
+ /**
322
+ * Resolve the changeset hash for a Unity version by scraping the release notes page.
323
+ * Returns the changeset string, or null if not found.
324
+ */
325
+ // Unity version format: major.minor.patchSuffix (e.g. 2022.3.62f3, 6000.3.1f1)
326
+ const UNITY_VERSION_RE = /^\d+\.\d+\.\d+[a-zA-Z]\d+$/;
327
+ export function isValidUnityVersion(version) {
328
+ return UNITY_VERSION_RE.test(version);
329
+ }
330
+ export async function resolveChangeset(version) {
331
+ if (!isValidUnityVersion(version))
332
+ return null;
333
+ const url = `https://unity.com/releases/editor/whats-new/${version}`;
334
+ try {
335
+ const html = await fetchUrl(url);
336
+ // Look for unityhub://VERSION/CHANGESET pattern
337
+ const match = html.match(/unityhub:\/\/[^/]+\/([a-f0-9]{12})/);
338
+ if (match)
339
+ return match[1];
340
+ return null;
341
+ }
342
+ catch {
343
+ return null;
344
+ }
345
+ }
346
+ /**
347
+ * Parse Unity Hub CLI stdout and update the progress bar accordingly.
348
+ * Hub output lines look like:
349
+ * [Unity (6000.3.11f1)] downloading 50.54%
350
+ * [Unity (6000.3.11f1)] validating download...
351
+ * [Unity (6000.3.11f1)] installing...
352
+ * [Unity (6000.3.11f1)] installed successfully.
353
+ */
354
+ export function parseHubProgress(line) {
355
+ const trimmed = line.replace(/\x1b\[[0-9;]*[A-Za-z]/g, '').trim();
356
+ if (!trimmed || trimmed === 'Progress:' || trimmed === 'All Tasks Completed Successfully.')
357
+ return null;
358
+ // Match: [Unity (VERSION)] STATUS
359
+ const match = trimmed.match(/^\[.+?\]\s+(.+)$/);
360
+ if (!match)
361
+ return null;
362
+ const status = match[1];
363
+ // "downloading 50.54%"
364
+ const dlMatch = status.match(/^downloading\s+([\d.]+)%$/);
365
+ if (dlMatch) {
366
+ return { percent: parseFloat(dlMatch[1]), status: 'Downloading' };
367
+ }
368
+ // Map known phases to approximate progress
369
+ if (status.includes('validating download'))
370
+ return { percent: 0, status: 'Validating download' };
371
+ if (status.includes('in progress'))
372
+ return { percent: 0, status: 'Starting download' };
373
+ if (status.includes('finished downloading'))
374
+ return { percent: 100, status: 'Download complete' };
375
+ if (status.includes('queued for install'))
376
+ return { percent: 100, status: 'Queued for install' };
377
+ if (status.includes('validating installation'))
378
+ return { percent: 100, status: 'Validating installation' };
379
+ if (status.includes('installing'))
380
+ return { percent: 100, status: 'Installing' };
381
+ if (status.includes('installed successfully'))
382
+ return { percent: 100, status: 'Installed' };
383
+ return { percent: 0, status };
384
+ }
385
+ /**
386
+ * Run Unity Hub install command with a progress bar.
387
+ * Spawns the process and parses stdout to display download/install progress.
388
+ */
389
+ function runHubInstallWithProgress(hubPath, args, version) {
390
+ return new Promise((resolve, reject) => {
391
+ const progress = ui.createProgressBar();
392
+ let activeSpinner = ui.startSpinner(`Preparing Unity Editor ${version}...`);
393
+ let isDownloading = false;
394
+ const proc = spawn(hubPath, args, { stdio: ['ignore', 'pipe', 'pipe'] });
395
+ let stderr = '';
396
+ function stopActiveSpinner(msg) {
397
+ if (activeSpinner) {
398
+ activeSpinner.success(msg);
399
+ activeSpinner = null;
400
+ }
401
+ }
402
+ function startPhaseSpinner(status) {
403
+ stopActiveSpinner(activeSpinner?.text ?? '');
404
+ activeSpinner = ui.startSpinner(`${status}...`);
405
+ }
406
+ let stdoutBuffer = '';
407
+ proc.stdout.on('data', (data) => {
408
+ const text = stdoutBuffer + data.toString('utf-8');
409
+ const lines = text.split('\n');
410
+ stdoutBuffer = lines.pop() ?? '';
411
+ for (const line of lines) {
412
+ const parsed = parseHubProgress(line);
413
+ if (!parsed)
414
+ continue;
415
+ if (parsed.status === 'Downloading' || parsed.status === 'Starting download') {
416
+ if (!isDownloading) {
417
+ isDownloading = true;
418
+ stopActiveSpinner(`Downloading Unity Editor ${version}`);
419
+ }
420
+ progress.update(parsed.percent, `Downloading Unity Editor ${version}`);
421
+ }
422
+ else if (parsed.status === 'Download complete') {
423
+ if (isDownloading) {
424
+ progress.complete(`Unity Editor ${version} downloaded`);
425
+ isDownloading = false;
426
+ }
427
+ }
428
+ else if (parsed.status === 'Installed') {
429
+ stopActiveSpinner(`Unity Editor ${version} installed`);
430
+ }
431
+ else {
432
+ // Post-download phases: show as a spinner so the user sees activity
433
+ if (!isDownloading) {
434
+ startPhaseSpinner(parsed.status);
435
+ }
436
+ }
437
+ }
438
+ });
439
+ proc.stderr.on('data', (data) => { stderr += data.toString('utf-8'); });
440
+ proc.on('close', (code) => {
441
+ if (activeSpinner)
442
+ activeSpinner.stop();
443
+ if (code === 0) {
444
+ if (isDownloading) {
445
+ progress.complete(`Unity Editor ${version} downloaded`);
446
+ }
447
+ resolve();
448
+ }
449
+ else {
450
+ if (isDownloading) {
451
+ progress.fail(`Download failed for Unity Editor ${version}`);
452
+ }
453
+ reject(new Error(`Failed to install Unity Editor ${version} (exit code ${code})` +
454
+ (stderr ? `:\n${stderr.trim()}` : '')));
455
+ }
456
+ });
457
+ proc.on('error', (err) => {
458
+ if (activeSpinner)
459
+ activeSpinner.stop();
460
+ reject(new Error(`Failed to install Unity Editor ${version}: ${err.message}`));
461
+ });
462
+ });
463
+ }
464
+ /**
465
+ * Install a Unity editor version via Unity Hub CLI.
466
+ * Automatically resolves changeset for versions not in the promoted releases list.
467
+ * Shows a progress bar during download and status during installation.
468
+ */
469
+ export async function installEditor(hubPath, version, prefetchedReleases) {
470
+ // Use pre-fetched releases when available to avoid a duplicate Hub CLI call
471
+ const releases = prefetchedReleases ?? listAvailableReleases(hubPath);
472
+ const isPromoted = releases.some(r => r.version === version);
473
+ const baseArgs = ['--', '--headless', 'install', '--version', version];
474
+ if (isPromoted) {
475
+ await runHubInstallWithProgress(hubPath, baseArgs, version);
476
+ return;
477
+ }
478
+ // Version not in releases — resolve changeset
479
+ const changesetSpinner = ui.startSpinner(`Resolving changeset for ${version}...`);
480
+ const changeset = await resolveChangeset(version);
481
+ if (!changeset) {
482
+ changesetSpinner.error(`Could not resolve changeset for ${version}`);
483
+ throw new Error(`Unity Editor ${version} is not in the promoted releases list and its changeset could not be resolved. ` +
484
+ `You can provide a changeset manually: unity-hub -- --headless install --version ${version} --changeset <hash>`);
244
485
  }
486
+ changesetSpinner.success(`Resolved changeset: ${changeset}`);
487
+ await runHubInstallWithProgress(hubPath, [...baseArgs, '--changeset', changeset], version);
245
488
  }
246
489
  /**
247
490
  * Resolve the Unity Editor executable path from an editor install path.
@@ -287,7 +530,7 @@ export function createProject(hubPath, projectPath, editorVersion) {
287
530
  // Find the editor install path
288
531
  const editors = listInstalledEditors(hubPath);
289
532
  if (editors.length === 0) {
290
- throw new Error('No Unity editors installed. Install one with: unity-mcp-cli install-unity --version <version>');
533
+ throw new Error('No Unity editors installed. Install one with: unity-mcp-cli install-unity [version]');
291
534
  }
292
535
  let editor;
293
536
  if (editorVersion) {
@@ -1 +1 @@
1
- {"version":3,"file":"unity-hub.js","sourceRoot":"","sources":["../../src/utils/unity-hub.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"unity-hub.js","sourceRoot":"","sources":["../../src/utils/unity-hub.ts"],"names":[],"mappings":"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"}