unity-mcp-cli 0.53.1 → 0.54.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 +55 -63
- package/dist/commands/configure.js +3 -0
- package/dist/commands/configure.js.map +1 -1
- package/dist/commands/create-project.js +6 -3
- package/dist/commands/create-project.js.map +1 -1
- package/dist/commands/install-plugin.js +14 -3
- package/dist/commands/install-plugin.js.map +1 -1
- package/dist/commands/install-unity.js +27 -14
- package/dist/commands/install-unity.js.map +1 -1
- package/dist/commands/open.js +75 -7
- package/dist/commands/open.js.map +1 -1
- package/dist/commands/remove-plugin.js +2 -0
- package/dist/commands/remove-plugin.js.map +1 -1
- package/dist/index.js +13 -6
- package/dist/index.js.map +1 -1
- package/dist/utils/manifest.d.ts +6 -3
- package/dist/utils/manifest.js +30 -27
- package/dist/utils/manifest.js.map +1 -1
- package/dist/utils/ui.d.ts +23 -3
- package/dist/utils/ui.js +170 -18
- package/dist/utils/ui.js.map +1 -1
- package/dist/utils/unity-editor.d.ts +5 -0
- package/dist/utils/unity-editor.js +42 -2
- package/dist/utils/unity-editor.js.map +1 -1
- package/dist/utils/unity-hub.d.ts +29 -1
- package/dist/utils/unity-hub.js +260 -17
- package/dist/utils/unity-hub.js.map +1 -1
- package/docs/README.es.md +4 -4
- package/docs/README.ja.md +4 -4
- package/docs/README.zh-CN.md +4 -4
- package/package.json +2 -5
- package/dist/commands/connect.d.ts +0 -2
- package/dist/commands/connect.js +0 -87
- package/dist/commands/connect.js.map +0 -1
package/dist/utils/manifest.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Resolve the latest plugin version
|
|
2
|
+
* Resolve the latest plugin version from the OpenUPM registry.
|
|
3
|
+
* Throws an error with actionable suggestions if the network request fails.
|
|
3
4
|
*/
|
|
4
5
|
export declare function resolveLatestVersion(): Promise<string>;
|
|
5
6
|
/**
|
|
@@ -12,9 +13,11 @@ export declare function shouldUpdateVersion(currentVersion: string, newVersion:
|
|
|
12
13
|
* Add Unity-MCP plugin to a Unity project's Packages/manifest.json.
|
|
13
14
|
* Ports the C# Installer.Manifest.cs logic:
|
|
14
15
|
* - Adds OpenUPM scoped registry with required scopes
|
|
15
|
-
* - Adds/updates the plugin dependency
|
|
16
|
+
* - Adds/updates the plugin dependency
|
|
17
|
+
* - When force is false (auto-resolved version): never downgrades
|
|
18
|
+
* - When force is true (user-specified --plugin-version): allows downgrade
|
|
16
19
|
*/
|
|
17
|
-
export declare function addPluginToManifest(projectPath: string, version: string): void;
|
|
20
|
+
export declare function addPluginToManifest(projectPath: string, version: string, force?: boolean): void;
|
|
18
21
|
/**
|
|
19
22
|
* Remove Unity-MCP plugin from a Unity project's Packages/manifest.json.
|
|
20
23
|
* Only removes the plugin dependency — scoped registries and scopes are
|
package/dist/utils/manifest.js
CHANGED
|
@@ -12,38 +12,39 @@ const REQUIRED_SCOPES = [
|
|
|
12
12
|
'org.nuget.system',
|
|
13
13
|
'org.nuget.r3',
|
|
14
14
|
];
|
|
15
|
-
// Hardcoded fallback version (updated on each release)
|
|
16
|
-
const FALLBACK_VERSION = '0.53.1';
|
|
17
15
|
/**
|
|
18
|
-
* Resolve the latest plugin version
|
|
16
|
+
* Resolve the latest plugin version from the OpenUPM registry.
|
|
17
|
+
* Throws an error with actionable suggestions if the network request fails.
|
|
19
18
|
*/
|
|
20
19
|
export async function resolveLatestVersion() {
|
|
20
|
+
const controller = new AbortController();
|
|
21
|
+
const timeout = setTimeout(() => controller.abort(), 5000);
|
|
21
22
|
try {
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
if (
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if (latest) {
|
|
33
|
-
ui.info(`Resolved latest version from OpenUPM: ${latest}`);
|
|
34
|
-
return latest;
|
|
35
|
-
}
|
|
23
|
+
const res = await fetch(`https://package.openupm.com/${PACKAGE_ID}`, {
|
|
24
|
+
signal: controller.signal,
|
|
25
|
+
headers: { Accept: 'application/json' },
|
|
26
|
+
});
|
|
27
|
+
if (res.ok) {
|
|
28
|
+
const data = (await res.json());
|
|
29
|
+
const latest = data?.['dist-tags']?.latest;
|
|
30
|
+
if (latest) {
|
|
31
|
+
ui.info(`Resolved latest version from OpenUPM: ${latest}`);
|
|
32
|
+
return latest;
|
|
36
33
|
}
|
|
37
34
|
}
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
throw new Error(`OpenUPM returned status ${res.status}. ` +
|
|
36
|
+
'Check your network connection and retry, or specify a version manually with --plugin-version <version>');
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
if (err instanceof Error && err.message.includes('--plugin-version')) {
|
|
40
|
+
throw err;
|
|
40
41
|
}
|
|
42
|
+
throw new Error('Failed to resolve latest plugin version from OpenUPM. ' +
|
|
43
|
+
'Check your network connection and retry, or specify a version manually with --plugin-version <version>');
|
|
41
44
|
}
|
|
42
|
-
|
|
43
|
-
|
|
45
|
+
finally {
|
|
46
|
+
clearTimeout(timeout);
|
|
44
47
|
}
|
|
45
|
-
ui.warn(`Using fallback version: ${FALLBACK_VERSION}`);
|
|
46
|
-
return FALLBACK_VERSION;
|
|
47
48
|
}
|
|
48
49
|
/**
|
|
49
50
|
* Determines if the version should be updated.
|
|
@@ -79,9 +80,11 @@ export function shouldUpdateVersion(currentVersion, newVersion) {
|
|
|
79
80
|
* Add Unity-MCP plugin to a Unity project's Packages/manifest.json.
|
|
80
81
|
* Ports the C# Installer.Manifest.cs logic:
|
|
81
82
|
* - Adds OpenUPM scoped registry with required scopes
|
|
82
|
-
* - Adds/updates the plugin dependency
|
|
83
|
+
* - Adds/updates the plugin dependency
|
|
84
|
+
* - When force is false (auto-resolved version): never downgrades
|
|
85
|
+
* - When force is true (user-specified --plugin-version): allows downgrade
|
|
83
86
|
*/
|
|
84
|
-
export function addPluginToManifest(projectPath, version) {
|
|
87
|
+
export function addPluginToManifest(projectPath, version, force = false) {
|
|
85
88
|
const manifestPath = path.join(projectPath, 'Packages', 'manifest.json');
|
|
86
89
|
if (!fs.existsSync(manifestPath)) {
|
|
87
90
|
throw new Error(`manifest.json not found at: ${manifestPath}`);
|
|
@@ -122,12 +125,12 @@ export function addPluginToManifest(projectPath, version) {
|
|
|
122
125
|
modified = true;
|
|
123
126
|
}
|
|
124
127
|
const currentVersion = manifest.dependencies[PACKAGE_ID];
|
|
125
|
-
if (!currentVersion || shouldUpdateVersion(currentVersion, version)) {
|
|
128
|
+
if (!currentVersion || force || shouldUpdateVersion(currentVersion, version)) {
|
|
126
129
|
manifest.dependencies[PACKAGE_ID] = version;
|
|
127
130
|
modified = true;
|
|
128
131
|
}
|
|
129
132
|
else {
|
|
130
|
-
ui.info(`Plugin already at version ${currentVersion} (>= ${version}). Skipping version update.`);
|
|
133
|
+
ui.info(`Plugin already at version ${currentVersion} (>= ${version}). Skipping version update. Use --plugin-version to force a specific version.`);
|
|
131
134
|
}
|
|
132
135
|
// --- Write back
|
|
133
136
|
if (modified) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/utils/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,MAAM,UAAU,GAAG,0BAA0B,CAAC;AAC9C,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAC5C,MAAM,YAAY,GAAG,6BAA6B,CAAC;AACnD,MAAM,eAAe,GAAG;IACtB,gBAAgB;IAChB,kBAAkB;IAClB,0BAA0B;IAC1B,qBAAqB;IACrB,kBAAkB;IAClB,cAAc;CACf,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/utils/manifest.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/ui.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type Spinner } from 'yocto-spinner';
|
|
2
2
|
import type { Command } from 'commander';
|
|
3
|
+
export declare function setVerbose(enabled: boolean): void;
|
|
4
|
+
export declare function verbose(msg: string): void;
|
|
3
5
|
/**
|
|
4
6
|
* Apply styled help formatting to a Commander command.
|
|
5
7
|
* Call this on every Command instance (root and subcommands)
|
|
@@ -10,18 +12,22 @@ import type { Command } from 'commander';
|
|
|
10
12
|
export declare function configureStyledHelp(cmd: Command, appVersion?: string): Command;
|
|
11
13
|
/**
|
|
12
14
|
* Print a success message with a green checkmark.
|
|
15
|
+
* In non-TTY mode, uses plain text prefix.
|
|
13
16
|
*/
|
|
14
17
|
export declare function success(msg: string): void;
|
|
15
18
|
/**
|
|
16
19
|
* Print an error message with a red cross to stderr.
|
|
20
|
+
* In non-TTY mode, uses plain text prefix.
|
|
17
21
|
*/
|
|
18
22
|
export declare function error(msg: string): void;
|
|
19
23
|
/**
|
|
20
24
|
* Print an info message with a blue info symbol.
|
|
25
|
+
* In non-TTY mode, uses plain text prefix.
|
|
21
26
|
*/
|
|
22
27
|
export declare function info(msg: string): void;
|
|
23
28
|
/**
|
|
24
29
|
* Print a warning message with a yellow warning symbol.
|
|
30
|
+
* In non-TTY mode, uses plain text prefix.
|
|
25
31
|
*/
|
|
26
32
|
export declare function warn(msg: string): void;
|
|
27
33
|
/**
|
|
@@ -33,9 +39,14 @@ export declare function heading(msg: string): void;
|
|
|
33
39
|
*/
|
|
34
40
|
export declare function label(key: string, value: string): void;
|
|
35
41
|
/**
|
|
36
|
-
* Start
|
|
42
|
+
* Start a spinner with the given text. Returns a wrapped spinner instance
|
|
43
|
+
* whose success/error/warning/info methods add an extra space after the symbol
|
|
44
|
+
* for consistent formatting.
|
|
45
|
+
*
|
|
46
|
+
* In non-TTY environments (CI pipelines, piped output), returns a no-op
|
|
47
|
+
* spinner that outputs plain text without ANSI escape codes.
|
|
37
48
|
*/
|
|
38
|
-
export declare function startSpinner(text: string):
|
|
49
|
+
export declare function startSpinner(text: string): Spinner;
|
|
39
50
|
/**
|
|
40
51
|
* Format a status badge (enabled/disabled).
|
|
41
52
|
*/
|
|
@@ -48,3 +59,12 @@ export declare function featureRow(name: string, enabled: boolean): void;
|
|
|
48
59
|
* Print a divider line.
|
|
49
60
|
*/
|
|
50
61
|
export declare function divider(): void;
|
|
62
|
+
/**
|
|
63
|
+
* A progress bar that overwrites itself on the same line.
|
|
64
|
+
*/
|
|
65
|
+
export interface ProgressBar {
|
|
66
|
+
update(percent: number, status: string): void;
|
|
67
|
+
complete(msg: string): void;
|
|
68
|
+
fail(msg: string): void;
|
|
69
|
+
}
|
|
70
|
+
export declare function createProgressBar(): ProgressBar;
|
package/dist/utils/ui.js
CHANGED
|
@@ -1,6 +1,49 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
|
-
import
|
|
3
|
-
|
|
2
|
+
import yoctoSpinner from 'yocto-spinner';
|
|
3
|
+
// --- Verbose mode ---
|
|
4
|
+
let verboseEnabled = false;
|
|
5
|
+
export function setVerbose(enabled) {
|
|
6
|
+
verboseEnabled = enabled;
|
|
7
|
+
}
|
|
8
|
+
export function verbose(msg) {
|
|
9
|
+
if (verboseEnabled) {
|
|
10
|
+
if (isTTY()) {
|
|
11
|
+
console.log(chalk.dim(`[verbose] ${msg}`));
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
console.log(`[verbose] ${msg}`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
// --- TTY detection ---
|
|
19
|
+
function isTTY() {
|
|
20
|
+
return !!process.stdout.isTTY;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Draw a Unicode rounded box around text with cyan borders.
|
|
24
|
+
*/
|
|
25
|
+
function drawBox(text) {
|
|
26
|
+
const lines = text.split('\n');
|
|
27
|
+
const padding = 2;
|
|
28
|
+
const maxLen = Math.max(...lines.map(l => stripAnsi(l).length));
|
|
29
|
+
const innerWidth = maxLen + padding * 2;
|
|
30
|
+
const pad = ' '.repeat(padding);
|
|
31
|
+
const top = chalk.cyan('╭' + '─'.repeat(innerWidth) + '╮');
|
|
32
|
+
const bottom = chalk.cyan('╰' + '─'.repeat(innerWidth) + '╯');
|
|
33
|
+
const middle = lines.map(l => {
|
|
34
|
+
const visible = stripAnsi(l).length;
|
|
35
|
+
const right = ' '.repeat(maxLen - visible);
|
|
36
|
+
return chalk.cyan('│') + pad + l + right + pad + chalk.cyan('│');
|
|
37
|
+
});
|
|
38
|
+
return [top, ...middle, bottom].join('\n');
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Strip ANSI escape codes from a string.
|
|
42
|
+
*/
|
|
43
|
+
function stripAnsi(str) {
|
|
44
|
+
// eslint-disable-next-line no-control-regex
|
|
45
|
+
return str.replace(/\x1B\[[0-9;]*m/g, '');
|
|
46
|
+
}
|
|
4
47
|
/**
|
|
5
48
|
* Apply styled help formatting to a Commander command.
|
|
6
49
|
* Call this on every Command instance (root and subcommands)
|
|
@@ -15,18 +58,10 @@ export function configureStyledHelp(cmd, appVersion) {
|
|
|
15
58
|
const lines = [];
|
|
16
59
|
// Banner for root, styled title for subcommands
|
|
17
60
|
if (isRoot && appVersion) {
|
|
18
|
-
lines.push(
|
|
19
|
-
padding: { top: 0, bottom: 0, left: 2, right: 2 },
|
|
20
|
-
borderColor: 'cyan',
|
|
21
|
-
borderStyle: 'round',
|
|
22
|
-
}));
|
|
61
|
+
lines.push(drawBox(`${chalk.bold.cyan('Unity-MCP CLI')} ${chalk.dim(`v${appVersion}`)}\n${chalk.dim('Bridge LLMs with Unity via Model Context Protocol')}`));
|
|
23
62
|
}
|
|
24
63
|
else {
|
|
25
|
-
lines.push(
|
|
26
|
-
padding: { top: 0, bottom: 0, left: 2, right: 2 },
|
|
27
|
-
borderColor: 'cyan',
|
|
28
|
-
borderStyle: 'round',
|
|
29
|
-
}));
|
|
64
|
+
lines.push(drawBox(`${chalk.bold.cyan(target.name())} ${chalk.dim('\u2014')} ${target.description()}`));
|
|
30
65
|
}
|
|
31
66
|
lines.push('');
|
|
32
67
|
// Usage
|
|
@@ -73,27 +108,51 @@ export function configureStyledHelp(cmd, appVersion) {
|
|
|
73
108
|
}
|
|
74
109
|
/**
|
|
75
110
|
* Print a success message with a green checkmark.
|
|
111
|
+
* In non-TTY mode, uses plain text prefix.
|
|
76
112
|
*/
|
|
77
113
|
export function success(msg) {
|
|
78
|
-
|
|
114
|
+
if (isTTY()) {
|
|
115
|
+
console.log(`${chalk.green('\u2714')} ${msg}`);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
console.log(`SUCCESS: ${msg}`);
|
|
119
|
+
}
|
|
79
120
|
}
|
|
80
121
|
/**
|
|
81
122
|
* Print an error message with a red cross to stderr.
|
|
123
|
+
* In non-TTY mode, uses plain text prefix.
|
|
82
124
|
*/
|
|
83
125
|
export function error(msg) {
|
|
84
|
-
|
|
126
|
+
if (isTTY()) {
|
|
127
|
+
console.error(`${chalk.red('\u2716')} ${chalk.red(msg)}`);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
console.error(`ERROR: ${msg}`);
|
|
131
|
+
}
|
|
85
132
|
}
|
|
86
133
|
/**
|
|
87
134
|
* Print an info message with a blue info symbol.
|
|
135
|
+
* In non-TTY mode, uses plain text prefix.
|
|
88
136
|
*/
|
|
89
137
|
export function info(msg) {
|
|
90
|
-
|
|
138
|
+
if (isTTY()) {
|
|
139
|
+
console.log(`${chalk.blue('\u2139')} ${msg}`);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
console.log(`INFO: ${msg}`);
|
|
143
|
+
}
|
|
91
144
|
}
|
|
92
145
|
/**
|
|
93
146
|
* Print a warning message with a yellow warning symbol.
|
|
147
|
+
* In non-TTY mode, uses plain text prefix.
|
|
94
148
|
*/
|
|
95
149
|
export function warn(msg) {
|
|
96
|
-
|
|
150
|
+
if (isTTY()) {
|
|
151
|
+
console.log(`${chalk.yellow('\u26A0')} ${chalk.yellow(msg)}`);
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
console.log(`WARN: ${msg}`);
|
|
155
|
+
}
|
|
97
156
|
}
|
|
98
157
|
/**
|
|
99
158
|
* Print a bold cyan section heading.
|
|
@@ -108,10 +167,53 @@ export function label(key, value) {
|
|
|
108
167
|
console.log(` ${chalk.bold(key + ':')} ${value}`);
|
|
109
168
|
}
|
|
110
169
|
/**
|
|
111
|
-
*
|
|
170
|
+
* Create a no-op spinner for non-TTY environments.
|
|
171
|
+
* Methods are safe to call but produce no ANSI output.
|
|
172
|
+
*/
|
|
173
|
+
function createNoOpSpinner(text) {
|
|
174
|
+
console.log(text);
|
|
175
|
+
const self = {
|
|
176
|
+
start: () => self,
|
|
177
|
+
stop: () => self,
|
|
178
|
+
success: (msg) => { if (msg)
|
|
179
|
+
console.log(`SUCCESS: ${msg}`); return self; },
|
|
180
|
+
error: (msg) => { if (msg)
|
|
181
|
+
console.error(`ERROR: ${msg}`); return self; },
|
|
182
|
+
warning: (msg) => { if (msg)
|
|
183
|
+
console.log(`WARN: ${msg}`); return self; },
|
|
184
|
+
info: (msg) => { if (msg)
|
|
185
|
+
console.log(`INFO: ${msg}`); return self; },
|
|
186
|
+
clear: () => self,
|
|
187
|
+
get text() { return text; },
|
|
188
|
+
set text(value) { text = value; },
|
|
189
|
+
get isSpinning() { return false; },
|
|
190
|
+
get color() { return 'cyan'; },
|
|
191
|
+
set color(_) { },
|
|
192
|
+
};
|
|
193
|
+
return self;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Start a spinner with the given text. Returns a wrapped spinner instance
|
|
197
|
+
* whose success/error/warning/info methods add an extra space after the symbol
|
|
198
|
+
* for consistent formatting.
|
|
199
|
+
*
|
|
200
|
+
* In non-TTY environments (CI pipelines, piped output), returns a no-op
|
|
201
|
+
* spinner that outputs plain text without ANSI escape codes.
|
|
112
202
|
*/
|
|
113
203
|
export function startSpinner(text) {
|
|
114
|
-
|
|
204
|
+
if (!isTTY()) {
|
|
205
|
+
return createNoOpSpinner(text);
|
|
206
|
+
}
|
|
207
|
+
const spinner = yoctoSpinner({ text, color: 'cyan' }).start();
|
|
208
|
+
const origSuccess = spinner.success.bind(spinner);
|
|
209
|
+
const origError = spinner.error.bind(spinner);
|
|
210
|
+
const origWarning = spinner.warning.bind(spinner);
|
|
211
|
+
const origInfo = spinner.info.bind(spinner);
|
|
212
|
+
spinner.success = (msg) => origSuccess(msg ? ` ${msg}` : undefined);
|
|
213
|
+
spinner.error = (msg) => origError(msg ? ` ${msg}` : undefined);
|
|
214
|
+
spinner.warning = (msg) => origWarning(msg ? ` ${msg}` : undefined);
|
|
215
|
+
spinner.info = (msg) => origInfo(msg ? ` ${msg}` : undefined);
|
|
216
|
+
return spinner;
|
|
115
217
|
}
|
|
116
218
|
/**
|
|
117
219
|
* Format a status badge (enabled/disabled).
|
|
@@ -133,4 +235,54 @@ export function featureRow(name, enabled) {
|
|
|
133
235
|
export function divider() {
|
|
134
236
|
console.log(chalk.dim('\u2500'.repeat(50)));
|
|
135
237
|
}
|
|
238
|
+
export function createProgressBar() {
|
|
239
|
+
if (!isTTY()) {
|
|
240
|
+
// Plain text progress for non-interactive environments
|
|
241
|
+
return {
|
|
242
|
+
update(percent, status) {
|
|
243
|
+
const clamped = Math.min(100, Math.max(0, percent));
|
|
244
|
+
console.log(`[${clamped.toFixed(0)}%] ${status}`);
|
|
245
|
+
},
|
|
246
|
+
complete(msg) {
|
|
247
|
+
console.log(`SUCCESS: ${msg}`);
|
|
248
|
+
},
|
|
249
|
+
fail(msg) {
|
|
250
|
+
console.error(`ERROR: ${msg}`);
|
|
251
|
+
},
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
const barWidth = 30;
|
|
255
|
+
let lastLine = '';
|
|
256
|
+
function render(percent, status) {
|
|
257
|
+
const clamped = Math.min(100, Math.max(0, percent));
|
|
258
|
+
const filled = Math.round((clamped / 100) * barWidth);
|
|
259
|
+
const empty = barWidth - filled;
|
|
260
|
+
const bar = chalk.cyan('\u2588').repeat(filled) + chalk.dim('\u2591').repeat(empty);
|
|
261
|
+
const pct = `${clamped.toFixed(1)}%`.padStart(6);
|
|
262
|
+
return ` ${bar} ${chalk.bold(pct)} ${chalk.dim(status)}`;
|
|
263
|
+
}
|
|
264
|
+
return {
|
|
265
|
+
update(percent, status) {
|
|
266
|
+
if (lastLine) {
|
|
267
|
+
process.stderr.write('\r\x1b[K');
|
|
268
|
+
}
|
|
269
|
+
lastLine = render(percent, status);
|
|
270
|
+
process.stderr.write(lastLine);
|
|
271
|
+
},
|
|
272
|
+
complete(msg) {
|
|
273
|
+
if (lastLine) {
|
|
274
|
+
process.stderr.write('\r\x1b[K');
|
|
275
|
+
}
|
|
276
|
+
console.log(`${chalk.green('\u2714')} ${msg}`);
|
|
277
|
+
lastLine = '';
|
|
278
|
+
},
|
|
279
|
+
fail(msg) {
|
|
280
|
+
if (lastLine) {
|
|
281
|
+
process.stderr.write('\r\x1b[K');
|
|
282
|
+
}
|
|
283
|
+
console.error(`${chalk.red('\u2716')} ${chalk.red(msg)}`);
|
|
284
|
+
lastLine = '';
|
|
285
|
+
},
|
|
286
|
+
};
|
|
287
|
+
}
|
|
136
288
|
//# sourceMappingURL=ui.js.map
|
package/dist/utils/ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/utils/ui.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/utils/ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,3 +12,8 @@ export declare function findEditorPath(version?: string): Promise<string | null>
|
|
|
12
12
|
* Spawns a detached process and returns immediately.
|
|
13
13
|
*/
|
|
14
14
|
export declare function launchEditor(editorPath: string, projectPath: string, env?: Record<string, string>): void;
|
|
15
|
+
/**
|
|
16
|
+
* Print actionable help when a required Unity Editor version is not found.
|
|
17
|
+
* Lists installed editors and suggests install or override commands.
|
|
18
|
+
*/
|
|
19
|
+
export declare function printEditorNotFoundHelp(requestedVersion: string | undefined, commandName: string): void;
|
|
@@ -2,7 +2,7 @@ import * as fs from 'fs';
|
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import { spawn } from 'child_process';
|
|
4
4
|
import { platform } from 'os';
|
|
5
|
-
import { ensureUnityHub, listInstalledEditors } from './unity-hub.js';
|
|
5
|
+
import { findUnityHub, ensureUnityHub, listInstalledEditors } from './unity-hub.js';
|
|
6
6
|
import * as ui from './ui.js';
|
|
7
7
|
/**
|
|
8
8
|
* Compare two Unity version strings with numeric-aware sorting.
|
|
@@ -65,9 +65,15 @@ export function getProjectEditorVersion(projectPath) {
|
|
|
65
65
|
* Uses Unity Hub to locate installed editors. Installs Unity Hub automatically if needed.
|
|
66
66
|
*/
|
|
67
67
|
export async function findEditorPath(version) {
|
|
68
|
+
// Fast path: if we know the version, check common install locations first (instant filesystem check)
|
|
69
|
+
if (version) {
|
|
70
|
+
const fastResult = findEditorPathByCommonLocations(version);
|
|
71
|
+
if (fastResult)
|
|
72
|
+
return fastResult;
|
|
73
|
+
}
|
|
74
|
+
// Slow path: query Unity Hub CLI for installed editors
|
|
68
75
|
const hubPath = await ensureUnityHub().catch(() => null);
|
|
69
76
|
if (!hubPath) {
|
|
70
|
-
// Try common default locations
|
|
71
77
|
return findEditorPathByCommonLocations(version);
|
|
72
78
|
}
|
|
73
79
|
const editors = listInstalledEditors(hubPath);
|
|
@@ -195,4 +201,38 @@ export function launchEditor(editorPath, projectPath, env) {
|
|
|
195
201
|
});
|
|
196
202
|
child.unref();
|
|
197
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* Print actionable help when a required Unity Editor version is not found.
|
|
206
|
+
* Lists installed editors and suggests install or override commands.
|
|
207
|
+
*/
|
|
208
|
+
export function printEditorNotFoundHelp(requestedVersion, commandName) {
|
|
209
|
+
if (requestedVersion) {
|
|
210
|
+
ui.error(`Unity Editor ${requestedVersion} is not installed.`);
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
ui.error('No Unity Editor found.');
|
|
214
|
+
}
|
|
215
|
+
ui.heading('Options:');
|
|
216
|
+
if (requestedVersion) {
|
|
217
|
+
ui.info(`Install it: npx unity-mcp-cli install-unity ${requestedVersion}`);
|
|
218
|
+
}
|
|
219
|
+
ui.info('Install latest stable: npx unity-mcp-cli install-unity');
|
|
220
|
+
// Show installed editors as alternatives
|
|
221
|
+
const hubPath = findUnityHub();
|
|
222
|
+
if (hubPath) {
|
|
223
|
+
const editors = listInstalledEditors(hubPath);
|
|
224
|
+
if (editors.length > 0) {
|
|
225
|
+
ui.heading('Installed editors:');
|
|
226
|
+
for (const editor of editors) {
|
|
227
|
+
ui.label(editor.version, editor.path);
|
|
228
|
+
}
|
|
229
|
+
if (requestedVersion) {
|
|
230
|
+
const hint = commandName === 'connect'
|
|
231
|
+
? `npx unity-mcp-cli ${commandName} --unity ${editors[0].version} --path <path> --url <url>`
|
|
232
|
+
: `npx unity-mcp-cli ${commandName} <path> --unity ${editors[0].version}`;
|
|
233
|
+
ui.info(`Use a different version: ${hint}`);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
198
238
|
//# sourceMappingURL=unity-editor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unity-editor.js","sourceRoot":"","sources":["../../src/utils/unity-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,
|
|
1
|
+
{"version":3,"file":"unity-editor.js","sourceRoot":"","sources":["../../src/utils/unity-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACpF,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,CAAS,EAAE,CAAS;IAChD,MAAM,YAAY,GAAG,CAAC,CAAS,EAAuB,EAAE;QACtD,MAAM,KAAK,GAAwB,EAAE,CAAC;QACtC,KAAK,MAAM,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,2DAA2D;YAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACjD,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;oBAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAChC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC;QACnD,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC,CAAC;QAChC,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,CAAC,CAAC;QAE/B,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YACrD,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,IAAI,GAAG,KAAK,CAAC;gBAAE,OAAO,GAAG,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,uBAAuB,CAAC,WAAmB;IACzD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,CAAC,CAAC;IACpF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAgB;IACnD,qGAAqG;IACrG,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG,+BAA+B,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,UAAU;YAAE,OAAO,UAAU,CAAC;IACpC,CAAC;IAED,uDAAuD;IACvD,MAAM,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACzD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,+BAA+B,CAAC,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;QACzD,IAAI,KAAK;YAAE,OAAO,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,+DAA+D;IAC/D,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACvF,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,SAAS,+BAA+B,CAAC,OAAgB;IACvD,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IACtB,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,mBAAmB,CAAC;YACxE,IAAI,OAAO,EAAE,CAAC;gBACZ,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;YACrG,CAAC;YACD,uBAAuB;YACvB,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACvE,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACzF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;wBACzB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;oBACrE,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC1B,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,OAAO,EAAE,CAAC;gBACZ,UAAU,CAAC,IAAI,CAAC,kCAAkC,OAAO,iCAAiC,CAAC,CAAC;YAC9F,CAAC;YACD,MAAM,YAAY,GAAG,gCAAgC,CAAC;YACtD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBACzF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;wBACzB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;oBACzF,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC1B,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,OAAO,EAAE,CAAC;gBACZ,UAAU,CAAC,IAAI,CAAC,yBAAyB,OAAO,eAAe,CAAC,CAAC;gBACjE,IAAI,IAAI;oBAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;YACnG,CAAC;YACD,MAAM,aAAa,GAAG,CAAC,uBAAuB,CAAC,CAAC;YAChD,IAAI,IAAI;gBAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YACxE,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3B,IAAI,CAAC;wBACH,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wBACpF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;4BACzB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;wBAC5D,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,SAAiB;IACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IAExD,gEAAgE;IAChE,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACrD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC;IACtB,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,OAAO;YACV,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QACrD,KAAK,QAAQ;YACX,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACzE;YACE,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,UAAkB,EAClB,WAAmB,EACnB,GAA4B;IAE5B,MAAM,IAAI,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAEzD,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE;QACpC,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,QAAQ;QACf,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE;KAChC,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACrB,EAAE,CAAC,OAAO,CAAC,+BAA+B,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QACxB,EAAE,CAAC,KAAK,CAAC,kCAAkC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,gBAAoC,EAAE,WAAmB;IAC/F,IAAI,gBAAgB,EAAE,CAAC;QACrB,EAAE,CAAC,KAAK,CAAC,gBAAgB,gBAAgB,oBAAoB,CAAC,CAAC;IACjE,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACrC,CAAC;IAED,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvB,IAAI,gBAAgB,EAAE,CAAC;QACrB,EAAE,CAAC,IAAI,CAAC,gDAAgD,gBAAgB,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,EAAE,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IAEnE,yCAAyC;IACzC,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;IAC/B,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACjC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,gBAAgB,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,WAAW,KAAK,SAAS;oBACpC,CAAC,CAAC,qBAAqB,WAAW,YAAY,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,4BAA4B;oBAC5F,CAAC,CAAC,qBAAqB,WAAW,mBAAmB,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC5E,EAAE,CAAC,IAAI,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
export interface AvailableRelease {
|
|
2
|
+
version: string;
|
|
3
|
+
isStable: boolean;
|
|
4
|
+
}
|
|
1
5
|
/**
|
|
2
6
|
* Detect the Unity Hub installation path based on the current platform.
|
|
3
7
|
* Returns the path if found, or null.
|
|
@@ -24,10 +28,34 @@ export declare function listInstalledEditors(hubPath: string): InstalledEditor[]
|
|
|
24
28
|
* Find the installed editor with the highest version number.
|
|
25
29
|
*/
|
|
26
30
|
export declare function findHighestEditor(editors: InstalledEditor[]): InstalledEditor;
|
|
31
|
+
/**
|
|
32
|
+
* List available Unity editor releases from Unity Hub CLI.
|
|
33
|
+
*/
|
|
34
|
+
export declare function listAvailableReleases(hubPath: string): AvailableRelease[];
|
|
35
|
+
/**
|
|
36
|
+
* Find the latest stable (f-suffix) release from the available releases.
|
|
37
|
+
*/
|
|
38
|
+
export declare function findLatestStableRelease(releases: AvailableRelease[]): AvailableRelease | null;
|
|
39
|
+
export declare function isValidUnityVersion(version: string): boolean;
|
|
40
|
+
export declare function resolveChangeset(version: string): Promise<string | null>;
|
|
41
|
+
/**
|
|
42
|
+
* Parse Unity Hub CLI stdout and update the progress bar accordingly.
|
|
43
|
+
* Hub output lines look like:
|
|
44
|
+
* [Unity (6000.3.11f1)] downloading 50.54%
|
|
45
|
+
* [Unity (6000.3.11f1)] validating download...
|
|
46
|
+
* [Unity (6000.3.11f1)] installing...
|
|
47
|
+
* [Unity (6000.3.11f1)] installed successfully.
|
|
48
|
+
*/
|
|
49
|
+
export declare function parseHubProgress(line: string): {
|
|
50
|
+
percent: number;
|
|
51
|
+
status: string;
|
|
52
|
+
} | null;
|
|
27
53
|
/**
|
|
28
54
|
* Install a Unity editor version via Unity Hub CLI.
|
|
55
|
+
* Automatically resolves changeset for versions not in the promoted releases list.
|
|
56
|
+
* Shows a progress bar during download and status during installation.
|
|
29
57
|
*/
|
|
30
|
-
export declare function installEditor(hubPath: string, version: string): void
|
|
58
|
+
export declare function installEditor(hubPath: string, version: string, prefetchedReleases?: AvailableRelease[]): Promise<void>;
|
|
31
59
|
/**
|
|
32
60
|
* Create a new Unity project using the Unity Editor directly.
|
|
33
61
|
* Unity Hub's headless CLI does not support a 'create' command in newer versions,
|