unity-mcp-cli 0.66.0 → 0.67.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/CHANGELOG.md +60 -0
- package/README.md +73 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +11 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/bootstrap-local.d.ts +17 -0
- package/dist/commands/bootstrap-local.js +83 -0
- package/dist/commands/bootstrap-local.js.map +1 -0
- package/dist/commands/close.d.ts +56 -0
- package/dist/commands/close.js +186 -0
- package/dist/commands/close.js.map +1 -0
- package/dist/commands/configure.js +37 -45
- package/dist/commands/configure.js.map +1 -1
- package/dist/commands/install-plugin.js +41 -23
- package/dist/commands/install-plugin.js.map +1 -1
- package/dist/commands/remove-plugin.js +21 -9
- package/dist/commands/remove-plugin.js.map +1 -1
- package/dist/commands/setup-mcp.js +32 -81
- package/dist/commands/setup-mcp.js.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/configure.d.ts +10 -0
- package/dist/lib/configure.js +85 -0
- package/dist/lib/configure.js.map +1 -0
- package/dist/lib/install-plugin.d.ts +8 -0
- package/dist/lib/install-plugin.js +68 -0
- package/dist/lib/install-plugin.js.map +1 -0
- package/dist/lib/logger.d.ts +7 -0
- package/dist/lib/logger.js +18 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/progress.d.ts +7 -0
- package/dist/lib/progress.js +16 -0
- package/dist/lib/progress.js.map +1 -0
- package/dist/lib/remove-plugin.d.ts +7 -0
- package/dist/lib/remove-plugin.js +51 -0
- package/dist/lib/remove-plugin.js.map +1 -0
- package/dist/lib/setup-mcp.d.ts +12 -0
- package/dist/lib/setup-mcp.js +141 -0
- package/dist/lib/setup-mcp.js.map +1 -0
- package/dist/lib/types.d.ts +132 -0
- package/dist/lib/types.js +8 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/validation.d.ts +37 -0
- package/dist/lib/validation.js +50 -0
- package/dist/lib/validation.js.map +1 -0
- package/dist/lib.d.ts +5 -0
- package/dist/lib.js +18 -0
- package/dist/lib.js.map +1 -0
- package/dist/utils/manifest.d.ts +31 -3
- package/dist/utils/manifest.js +27 -11
- package/dist/utils/manifest.js.map +1 -1
- package/dist/utils/unity-shutdown.d.ts +87 -0
- package/dist/utils/unity-shutdown.js +241 -0
- package/dist/utils/unity-shutdown.js.map +1 -0
- package/package.json +20 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/commands/configure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/commands/configure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,WAAW,CAClB,MAA4B,EAC5B,OAA6B,EAC7B,SAA8B,EAC9B,UAA+B;IAE/B,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IACvE,OAAO;QACL,WAAW,EAAE,MAAM;QACnB,YAAY,EAAE,OAAO;QACrB,SAAS;QACT,UAAU;KACX,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC,WAAW,CAAC;KACrD,WAAW,CAAC,8EAA8E,CAAC;KAC3F,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;KAC/C,MAAM,CAAC,eAAe,EAAE,2BAA2B,CAAC;KACpD,MAAM,CAAC,wBAAwB,EAAE,yCAAyC,EAAE,mBAAmB,CAAC;KAChG,MAAM,CAAC,yBAAyB,EAAE,0CAA0C,EAAE,mBAAmB,CAAC;KAClG,MAAM,CAAC,oBAAoB,EAAE,kBAAkB,CAAC;KAChD,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,CAAC;KAClD,MAAM,CAAC,0BAA0B,EAAE,2CAA2C,EAAE,mBAAmB,CAAC;KACpG,MAAM,CAAC,2BAA2B,EAAE,4CAA4C,EAAE,mBAAmB,CAAC;KACtG,MAAM,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;KACpD,MAAM,CAAC,uBAAuB,EAAE,qBAAqB,CAAC;KACtD,MAAM,CAAC,4BAA4B,EAAE,6CAA6C,EAAE,mBAAmB,CAAC;KACxG,MAAM,CAAC,6BAA6B,EAAE,8CAA8C,EAAE,mBAAmB,CAAC;KAC1G,MAAM,CAAC,wBAAwB,EAAE,sBAAsB,CAAC;KACxD,MAAM,CAAC,yBAAyB,EAAE,uBAAuB,CAAC;KAC1D,MAAM,CAAC,QAAQ,EAAE,4BAA4B,CAAC;KAC9C,MAAM,CAAC,KAAK,EAAE,cAAkC,EAAE,OAelD,EAAE,EAAE;IACH,MAAM,YAAY,GAAG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IACpD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,EAAE,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;QACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/C,OAAO,CAAC,+BAA+B,WAAW,EAAE,CAAC,CAAC;IAEtD,6DAA6D;IAC7D,+DAA+D;IAC/D,8DAA8D;IAC9D,oDAAoD;IACpD,MAAM,WAAW,GAAG,WAAW,CAC7B,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,eAAe,CACxB,CAAC;IACF,MAAM,aAAa,GAAG,WAAW,CAC/B,OAAO,CAAC,aAAa,EACrB,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,iBAAiB,CAC1B,CAAC;IACF,MAAM,eAAe,GAAG,WAAW,CACjC,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,mBAAmB,CAC5B,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;QAC7B,gBAAgB,EAAE,WAAW;QAC7B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW;QAC7C,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa;QACjD,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe;KACtD,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACpC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC;QACpD,EAAE,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC,CAAC;QAC3E,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,eAAe,IAAI,gBAAgB,CAAC,CAAC;QAC3E,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC;QAEvD,MAAM,aAAa,GAAG,CAAC,YAAoB,EAAE,QAA8C,EAAE,EAAE;YAC7F,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACzB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1B,EAAE,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;gBACtD,OAAO;YACT,CAAC;YACD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC;QACH,CAAC,CAAC;QAEF,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9C,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClD,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACtD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,+BAA+B,CAAC,CAAC;IACzC,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import * as path from 'path';
|
|
3
|
-
import * as fs from 'fs';
|
|
4
|
-
import { addPluginToManifest, resolveLatestVersion } from '../utils/manifest.js';
|
|
5
3
|
import * as ui from '../utils/ui.js';
|
|
6
4
|
import { verbose } from '../utils/ui.js';
|
|
5
|
+
import { installPlugin } from '../lib/install-plugin.js';
|
|
7
6
|
export const installPluginCommand = new Command('install-plugin')
|
|
8
7
|
.description('Install Unity-MCP plugin into a Unity project')
|
|
9
8
|
.argument('[path]', 'Path to the Unity project')
|
|
@@ -16,31 +15,50 @@ export const installPluginCommand = new Command('install-plugin')
|
|
|
16
15
|
process.exit(1);
|
|
17
16
|
}
|
|
18
17
|
const projectPath = path.resolve(resolvedPath);
|
|
19
|
-
//
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
// Wire the library's progress events back into the CLI's chalk-
|
|
19
|
+
// styled ui so the terminal experience stays identical.
|
|
20
|
+
let spinner;
|
|
21
|
+
if (!options.pluginVersion) {
|
|
22
|
+
spinner = ui.startSpinner('Resolving latest plugin version...');
|
|
24
23
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
24
|
+
const result = await installPlugin({
|
|
25
|
+
unityProjectPath: projectPath,
|
|
26
|
+
version: options.pluginVersion,
|
|
27
|
+
onProgress: (event) => {
|
|
28
|
+
if (event.phase === 'dependencies-resolved' && spinner) {
|
|
29
|
+
spinner.success(`Resolved plugin version: ${event.version}`);
|
|
30
|
+
spinner = undefined;
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (event.phase === 'manifest-patched') {
|
|
34
|
+
// Preserve the historical `ui.success("Updated …")` vs
|
|
35
|
+
// `ui.info("manifest.json is already up to date.")` split
|
|
36
|
+
// that the shared manifest helpers used to print directly.
|
|
37
|
+
if (event.message.startsWith('Updated ')) {
|
|
38
|
+
ui.success(event.message);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
ui.info(event.message);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
if (!result.success) {
|
|
47
|
+
if (spinner) {
|
|
35
48
|
spinner.error('Failed to resolve plugin version');
|
|
36
|
-
|
|
37
|
-
process.exit(1);
|
|
49
|
+
spinner = undefined;
|
|
38
50
|
}
|
|
51
|
+
ui.error(result.error?.message ?? 'Unknown error');
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
verbose(`Plugin version: ${result.installedVersion} (explicit: ${!!options.pluginVersion})`);
|
|
55
|
+
if (result.manifestPath) {
|
|
56
|
+
verbose(`Manifest path: ${result.manifestPath}`);
|
|
57
|
+
}
|
|
58
|
+
ui.info(`Installing Unity-MCP plugin v${result.installedVersion} into: ${projectPath}`);
|
|
59
|
+
for (const warning of result.warnings) {
|
|
60
|
+
ui.warn(warning);
|
|
39
61
|
}
|
|
40
|
-
verbose(`Plugin version: ${version} (explicit: ${isExplicitVersion})`);
|
|
41
|
-
verbose(`Manifest path: ${manifestPath}`);
|
|
42
|
-
ui.info(`Installing Unity-MCP plugin v${version} into: ${projectPath}`);
|
|
43
|
-
addPluginToManifest(projectPath, version, isExplicitVersion);
|
|
44
62
|
ui.success('Done! Open the project in Unity Editor to complete installation.');
|
|
45
63
|
});
|
|
46
64
|
//# sourceMappingURL=install-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-plugin.js","sourceRoot":"","sources":["../../src/commands/install-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"install-plugin.js","sourceRoot":"","sources":["../../src/commands/install-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import * as path from 'path';
|
|
3
|
-
import * as fs from 'fs';
|
|
4
|
-
import { removePluginFromManifest } from '../utils/manifest.js';
|
|
5
3
|
import * as ui from '../utils/ui.js';
|
|
6
4
|
import { verbose } from '../utils/ui.js';
|
|
5
|
+
import { removePlugin } from '../lib/remove-plugin.js';
|
|
7
6
|
export const removePluginCommand = new Command('remove-plugin')
|
|
8
7
|
.description('Remove Unity-MCP plugin from a Unity project')
|
|
9
8
|
.argument('[path]', 'Path to the Unity project')
|
|
@@ -15,15 +14,28 @@ export const removePluginCommand = new Command('remove-plugin')
|
|
|
15
14
|
process.exit(1);
|
|
16
15
|
}
|
|
17
16
|
const projectPath = path.resolve(resolvedPath);
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
if (!
|
|
21
|
-
ui.error(
|
|
17
|
+
ui.info(`Removing Unity-MCP plugin from: ${projectPath}`);
|
|
18
|
+
const result = await removePlugin({ unityProjectPath: projectPath });
|
|
19
|
+
if (!result.success) {
|
|
20
|
+
ui.error(result.error?.message ?? 'Unknown error');
|
|
22
21
|
process.exit(1);
|
|
23
22
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
if (result.manifestPath) {
|
|
24
|
+
verbose(`Manifest path: ${result.manifestPath}`);
|
|
25
|
+
}
|
|
26
|
+
if (result.removed) {
|
|
27
|
+
ui.success(`Removed com.ivanmurzak.unity.mcp from ${result.manifestPath}`);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
ui.info('Unity-MCP plugin is not installed. Nothing to remove.');
|
|
31
|
+
}
|
|
32
|
+
for (const warning of result.warnings) {
|
|
33
|
+
// `removed === false` is already surfaced via the info line above,
|
|
34
|
+
// so skip the duplicate "not installed" warning to avoid noise.
|
|
35
|
+
if (warning.startsWith('Unity-MCP plugin was not installed'))
|
|
36
|
+
continue;
|
|
37
|
+
ui.warn(warning);
|
|
38
|
+
}
|
|
27
39
|
ui.success('Done!');
|
|
28
40
|
});
|
|
29
41
|
//# sourceMappingURL=remove-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remove-plugin.js","sourceRoot":"","sources":["../../src/commands/remove-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"remove-plugin.js","sourceRoot":"","sources":["../../src/commands/remove-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC;KAC5D,WAAW,CAAC,8CAA8C,CAAC;KAC3D,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;KAC/C,MAAM,CAAC,eAAe,EAAE,2BAA2B,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,cAAkC,EAAE,OAA0B,EAAE,EAAE;IAC/E,MAAM,YAAY,GAAG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IACpD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,EAAE,CAAC,KAAK,CAAC,8EAA8E,CAAC,CAAC;QACzF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/C,EAAE,CAAC,IAAI,CAAC,mCAAmC,WAAW,EAAE,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC,CAAC;IAErE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,eAAe,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,CAAC,kBAAkB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,EAAE,CAAC,OAAO,CAAC,yCAAyC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7E,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,mEAAmE;QACnE,gEAAgE;QAChE,IAAI,OAAO,CAAC,UAAU,CAAC,oCAAoC,CAAC;YAAE,SAAS;QACvE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAED,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
|
-
import * as fs from 'fs';
|
|
3
|
-
import * as path from 'path';
|
|
4
2
|
import * as ui from '../utils/ui.js';
|
|
5
3
|
import { verbose } from '../utils/ui.js';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { getAgentById, getAgentIds, listAgentTable, resolveServerBinaryPath, writeJsonAgentConfig, writeTomlAgentConfig, MCP_SERVER_NAME, } from '../utils/agents.js';
|
|
4
|
+
import { getAgentById, getAgentIds, listAgentTable, MCP_SERVER_NAME, } from '../utils/agents.js';
|
|
5
|
+
import { setupMcp } from '../lib/setup-mcp.js';
|
|
9
6
|
function listAgents() {
|
|
10
7
|
listAgentTable('Available AI Agents', 'Config Path', (a) => a.configPathDisplay);
|
|
11
8
|
}
|
|
@@ -27,93 +24,47 @@ export const setupMcpCommand = new Command('setup-mcp')
|
|
|
27
24
|
ui.info(`Available agent IDs: ${getAgentIds().join(', ')}`);
|
|
28
25
|
process.exit(1);
|
|
29
26
|
}
|
|
27
|
+
// Resolve the agent up-front so we can:
|
|
28
|
+
// 1. Use the display name in user-facing strings (matches the
|
|
29
|
+
// historical `Configuring <Name> ...` phrasing).
|
|
30
|
+
// 2. Preserve the prior `ui.error(...)` + `ui.info("Available
|
|
31
|
+
// agent IDs: ...")` split for the unknown-agent error path.
|
|
30
32
|
const agent = getAgentById(agentId);
|
|
31
33
|
if (!agent) {
|
|
32
34
|
ui.error(`Unknown agent: "${agentId}"`);
|
|
33
35
|
ui.info(`Available agent IDs: ${getAgentIds().join(', ')}`);
|
|
34
36
|
process.exit(1);
|
|
35
37
|
}
|
|
36
|
-
const transport = options.transport ?? 'http';
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
38
|
+
const transport = (options.transport ?? 'http');
|
|
39
|
+
const spinner = ui.startSpinner(`Configuring ${agent.name} (${transport})...`);
|
|
40
|
+
const result = await setupMcp({
|
|
41
|
+
agentId,
|
|
42
|
+
unityProjectPath: positionalPath,
|
|
43
|
+
transport,
|
|
44
|
+
url: options.url,
|
|
45
|
+
token: options.token,
|
|
46
|
+
});
|
|
47
|
+
if (!result.success) {
|
|
48
|
+
spinner.error('Failed to write config');
|
|
49
|
+
ui.error(result.error?.message ?? 'Unknown error');
|
|
45
50
|
process.exit(1);
|
|
46
51
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
const config = readConfig(projectPath);
|
|
50
|
-
const fromConfig = config
|
|
51
|
-
? resolveConnectionFromConfig(config)
|
|
52
|
-
: { url: undefined, token: undefined };
|
|
53
|
-
const port = (() => {
|
|
54
|
-
if (!config?.host)
|
|
55
|
-
return generatePortFromDirectory(projectPath);
|
|
56
|
-
try {
|
|
57
|
-
return parseInt(new URL(config.host).port, 10) || generatePortFromDirectory(projectPath);
|
|
58
|
-
}
|
|
59
|
-
catch {
|
|
60
|
-
return generatePortFromDirectory(projectPath);
|
|
61
|
-
}
|
|
62
|
-
})();
|
|
63
|
-
const timeout = config?.timeoutMs ?? 10000;
|
|
64
|
-
const auth = config?.authOption ?? 'none';
|
|
65
|
-
const token = options.token ?? fromConfig.token ?? '';
|
|
66
|
-
const authRequired = auth === 'required';
|
|
67
|
-
// Resolve server binary path
|
|
68
|
-
const serverPath = resolveServerBinaryPath(projectPath).replace(/\\/g, '/');
|
|
69
|
-
verbose(`Server binary: ${serverPath}`);
|
|
70
|
-
// Resolve URL for HTTP
|
|
71
|
-
let serverUrl;
|
|
72
|
-
if (options.url) {
|
|
73
|
-
serverUrl = options.url.replace(/\/$/, '');
|
|
74
|
-
}
|
|
75
|
-
else if (fromConfig.url) {
|
|
76
|
-
serverUrl = fromConfig.url.replace(/\/$/, '');
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
serverUrl = `http://localhost:${port}`;
|
|
52
|
+
if (positionalPath) {
|
|
53
|
+
verbose(`Project path: ${positionalPath}`);
|
|
80
54
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
verbose(`Config file: ${configPath}`);
|
|
84
|
-
let props;
|
|
85
|
-
let removeKeys;
|
|
86
|
-
if (transport === 'stdio') {
|
|
87
|
-
props = agent.getStdioProps(serverPath, port, timeout, auth, token);
|
|
88
|
-
removeKeys = agent.stdioRemoveKeys;
|
|
55
|
+
if (result.configPath) {
|
|
56
|
+
verbose(`Config file: ${result.configPath}`);
|
|
89
57
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
writeTomlAgentConfig(configPath, agent.bodyPath, MCP_SERVER_NAME, props, removeKeys);
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
writeJsonAgentConfig(configPath, agent.bodyPath, MCP_SERVER_NAME, props, removeKeys);
|
|
102
|
-
}
|
|
103
|
-
spinner.success(`${agent.name} configured successfully`);
|
|
58
|
+
spinner.success(`${agent.name} configured successfully`);
|
|
59
|
+
console.log('');
|
|
60
|
+
if (result.configPath)
|
|
61
|
+
ui.label('Config file', result.configPath);
|
|
62
|
+
if (result.transport)
|
|
63
|
+
ui.label('Transport', result.transport);
|
|
64
|
+
ui.label('Server name', MCP_SERVER_NAME);
|
|
65
|
+
for (const warning of result.warnings) {
|
|
104
66
|
console.log('');
|
|
105
|
-
ui.
|
|
106
|
-
ui.label('Transport', transport);
|
|
107
|
-
ui.label('Server name', MCP_SERVER_NAME);
|
|
108
|
-
if (transport === 'stdio' && !fs.existsSync(serverPath.replace(/\//g, path.sep))) {
|
|
109
|
-
console.log('');
|
|
110
|
-
ui.warn('Server binary not found. Open Unity with the MCP plugin to download it automatically.');
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
catch (err) {
|
|
114
|
-
spinner.error('Failed to write config');
|
|
115
|
-
ui.error(err instanceof Error ? err.message : String(err));
|
|
116
|
-
process.exit(1);
|
|
67
|
+
ui.warn(warning);
|
|
117
68
|
}
|
|
118
69
|
});
|
|
119
70
|
//# sourceMappingURL=setup-mcp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-mcp.js","sourceRoot":"","sources":["../../src/commands/setup-mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"setup-mcp.js","sourceRoot":"","sources":["../../src/commands/setup-mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import { createRequire } from 'module';
|
|
3
|
+
import { bootstrapLocalCommand } from './commands/bootstrap-local.js';
|
|
4
|
+
import { closeCommand } from './commands/close.js';
|
|
3
5
|
import { createProjectCommand } from './commands/create-project.js';
|
|
4
6
|
import { installUnityCommand } from './commands/install-unity.js';
|
|
5
7
|
import { openCommand } from './commands/open.js';
|
|
@@ -26,6 +28,8 @@ program
|
|
|
26
28
|
.option('-v, --verbose', 'Enable verbose diagnostic output');
|
|
27
29
|
// Register all subcommands
|
|
28
30
|
const subcommands = [
|
|
31
|
+
bootstrapLocalCommand,
|
|
32
|
+
closeCommand,
|
|
29
33
|
configureCommand,
|
|
30
34
|
createProjectCommand,
|
|
31
35
|
installPluginCommand,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ConfigureOptions, ConfigureResult } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Configure Unity-MCP features (tools / prompts / resources) for a
|
|
4
|
+
* Unity project. Library-safe: no stdout noise, no process.exit.
|
|
5
|
+
*
|
|
6
|
+
* If none of `tools`/`prompts`/`resources` are supplied, the call is a
|
|
7
|
+
* read-only "create-if-missing and return snapshot" — mirrors the CLI's
|
|
8
|
+
* `--list` behaviour minus the rendering.
|
|
9
|
+
*/
|
|
10
|
+
export declare function configure(opts: ConfigureOptions): Promise<ConfigureResult>;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import { getOrCreateConfig, writeConfig, updateFeatures, } from '../utils/config.js';
|
|
3
|
+
import { emitProgress } from './progress.js';
|
|
4
|
+
import { requireExistingPath } from './validation.js';
|
|
5
|
+
const CONFIG_RELATIVE_PATH = 'UserSettings/AI-Game-Developer-Config.json';
|
|
6
|
+
function hasAnyAction(action) {
|
|
7
|
+
if (!action)
|
|
8
|
+
return false;
|
|
9
|
+
return ((Array.isArray(action.enableNames) && action.enableNames.length > 0) ||
|
|
10
|
+
(Array.isArray(action.disableNames) && action.disableNames.length > 0) ||
|
|
11
|
+
action.enableAll === true ||
|
|
12
|
+
action.disableAll === true);
|
|
13
|
+
}
|
|
14
|
+
function snapshotFeatures(config, key) {
|
|
15
|
+
const raw = config[key];
|
|
16
|
+
if (!Array.isArray(raw))
|
|
17
|
+
return [];
|
|
18
|
+
return raw
|
|
19
|
+
.filter((f) => typeof f === 'object' && f !== null && typeof f.name === 'string' && typeof f.enabled === 'boolean')
|
|
20
|
+
.map((f) => ({ name: f.name, enabled: f.enabled }));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Configure Unity-MCP features (tools / prompts / resources) for a
|
|
24
|
+
* Unity project. Library-safe: no stdout noise, no process.exit.
|
|
25
|
+
*
|
|
26
|
+
* If none of `tools`/`prompts`/`resources` are supplied, the call is a
|
|
27
|
+
* read-only "create-if-missing and return snapshot" — mirrors the CLI's
|
|
28
|
+
* `--list` behaviour minus the rendering.
|
|
29
|
+
*/
|
|
30
|
+
export async function configure(opts) {
|
|
31
|
+
const warnings = [];
|
|
32
|
+
try {
|
|
33
|
+
const validated = requireExistingPath(opts?.unityProjectPath);
|
|
34
|
+
if (!validated.ok) {
|
|
35
|
+
return { success: false, warnings, error: validated.error };
|
|
36
|
+
}
|
|
37
|
+
const { projectPath } = validated;
|
|
38
|
+
const configPath = path.join(projectPath, CONFIG_RELATIVE_PATH);
|
|
39
|
+
emitProgress(opts.onProgress, { phase: 'start', message: `Configuring Unity-MCP features for ${projectPath}` });
|
|
40
|
+
const config = getOrCreateConfig(projectPath);
|
|
41
|
+
const hasToolsAction = hasAnyAction(opts.tools);
|
|
42
|
+
const hasPromptsAction = hasAnyAction(opts.prompts);
|
|
43
|
+
const hasResourcesAction = hasAnyAction(opts.resources);
|
|
44
|
+
if (hasToolsAction) {
|
|
45
|
+
updateFeatures(config, 'tools', opts.tools);
|
|
46
|
+
}
|
|
47
|
+
if (hasPromptsAction) {
|
|
48
|
+
updateFeatures(config, 'prompts', opts.prompts);
|
|
49
|
+
}
|
|
50
|
+
if (hasResourcesAction) {
|
|
51
|
+
updateFeatures(config, 'resources', opts.resources);
|
|
52
|
+
}
|
|
53
|
+
if (hasToolsAction || hasPromptsAction || hasResourcesAction) {
|
|
54
|
+
writeConfig(projectPath, config);
|
|
55
|
+
emitProgress(opts.onProgress, {
|
|
56
|
+
phase: 'manifest-patched',
|
|
57
|
+
message: `Wrote ${configPath}`,
|
|
58
|
+
manifestPath: configPath,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
emitProgress(opts.onProgress, { phase: 'done', message: 'Configure complete.' });
|
|
62
|
+
return {
|
|
63
|
+
success: true,
|
|
64
|
+
configPath,
|
|
65
|
+
snapshot: {
|
|
66
|
+
host: typeof config.host === 'string' ? config.host : undefined,
|
|
67
|
+
keepConnected: typeof config.keepConnected === 'boolean' ? config.keepConnected : undefined,
|
|
68
|
+
transportMethod: typeof config.transportMethod === 'string' ? config.transportMethod : undefined,
|
|
69
|
+
authOption: typeof config.authOption === 'string' ? config.authOption : undefined,
|
|
70
|
+
tools: snapshotFeatures(config, 'tools'),
|
|
71
|
+
prompts: snapshotFeatures(config, 'prompts'),
|
|
72
|
+
resources: snapshotFeatures(config, 'resources'),
|
|
73
|
+
},
|
|
74
|
+
warnings,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
return {
|
|
79
|
+
success: false,
|
|
80
|
+
warnings,
|
|
81
|
+
error: err instanceof Error ? err : new Error(String(err)),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=configure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configure.js","sourceRoot":"","sources":["../../src/lib/configure.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { InstallPluginOptions, InstallResult } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Install the Unity-MCP plugin into a Unity project. Library-safe:
|
|
4
|
+
* never calls `process.exit`, never prints to stdout / stderr, never
|
|
5
|
+
* throws past the public boundary — errors are returned in
|
|
6
|
+
* `{ success: false, error }`.
|
|
7
|
+
*/
|
|
8
|
+
export declare function installPlugin(opts: InstallPluginOptions): Promise<InstallResult>;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { addPluginToManifest, resolveLatestVersion } from '../utils/manifest.js';
|
|
2
|
+
import { silentLogger } from './logger.js';
|
|
3
|
+
import { emitProgress } from './progress.js';
|
|
4
|
+
import { requireUnityProject } from './validation.js';
|
|
5
|
+
/**
|
|
6
|
+
* Install the Unity-MCP plugin into a Unity project. Library-safe:
|
|
7
|
+
* never calls `process.exit`, never prints to stdout / stderr, never
|
|
8
|
+
* throws past the public boundary — errors are returned in
|
|
9
|
+
* `{ success: false, error }`.
|
|
10
|
+
*/
|
|
11
|
+
export async function installPlugin(opts) {
|
|
12
|
+
const warnings = [];
|
|
13
|
+
const nextSteps = [];
|
|
14
|
+
try {
|
|
15
|
+
const validated = requireUnityProject(opts?.unityProjectPath);
|
|
16
|
+
if (!validated.ok) {
|
|
17
|
+
return {
|
|
18
|
+
success: false,
|
|
19
|
+
manifestPath: validated.manifestPath,
|
|
20
|
+
warnings,
|
|
21
|
+
nextSteps,
|
|
22
|
+
error: validated.error,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
const { projectPath } = validated;
|
|
26
|
+
emitProgress(opts.onProgress, { phase: 'start', message: `Installing Unity-MCP plugin into ${projectPath}` });
|
|
27
|
+
let version = opts.version;
|
|
28
|
+
const isExplicitVersion = !!version;
|
|
29
|
+
if (!version) {
|
|
30
|
+
version = await resolveLatestVersion(silentLogger);
|
|
31
|
+
emitProgress(opts.onProgress, {
|
|
32
|
+
phase: 'dependencies-resolved',
|
|
33
|
+
message: `Resolved latest plugin version: ${version}`,
|
|
34
|
+
version,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
const result = addPluginToManifest(projectPath, version, isExplicitVersion, silentLogger);
|
|
38
|
+
if (result.resolvedVersion !== version && !isExplicitVersion) {
|
|
39
|
+
warnings.push(`Plugin already at version ${result.resolvedVersion} (>= ${version}). ` +
|
|
40
|
+
'Skipping version update. Pass an explicit `version` to force a specific value.');
|
|
41
|
+
}
|
|
42
|
+
emitProgress(opts.onProgress, {
|
|
43
|
+
phase: 'manifest-patched',
|
|
44
|
+
message: result.modified
|
|
45
|
+
? `Updated ${result.manifestPath}`
|
|
46
|
+
: 'manifest.json is already up to date.',
|
|
47
|
+
manifestPath: result.manifestPath,
|
|
48
|
+
});
|
|
49
|
+
nextSteps.push('Open the Unity project in the Editor to complete installation.');
|
|
50
|
+
emitProgress(opts.onProgress, { phase: 'done', message: 'Install complete.' });
|
|
51
|
+
return {
|
|
52
|
+
success: true,
|
|
53
|
+
installedVersion: result.resolvedVersion,
|
|
54
|
+
manifestPath: result.manifestPath,
|
|
55
|
+
warnings,
|
|
56
|
+
nextSteps,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
catch (err) {
|
|
60
|
+
return {
|
|
61
|
+
success: false,
|
|
62
|
+
warnings,
|
|
63
|
+
nextSteps,
|
|
64
|
+
error: err instanceof Error ? err : new Error(String(err)),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=install-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install-plugin.js","sourceRoot":"","sources":["../../src/lib/install-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAA0B;IAC5D,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAC9D,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,SAAS,CAAC,YAAY;gBACpC,QAAQ;gBACR,SAAS;gBACT,KAAK,EAAE,SAAS,CAAC,KAAK;aACvB,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;QAElC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,oCAAoC,WAAW,EAAE,EAAE,CAAC,CAAC;QAE9G,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,MAAM,iBAAiB,GAAG,CAAC,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,MAAM,oBAAoB,CAAC,YAAY,CAAC,CAAC;YACnD,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE;gBAC5B,KAAK,EAAE,uBAAuB;gBAC9B,OAAO,EAAE,mCAAmC,OAAO,EAAE;gBACrD,OAAO;aACR,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,WAAW,EAAE,OAAO,EAAE,iBAAiB,EAAE,YAAY,CAAC,CAAC;QAE1F,IAAI,MAAM,CAAC,eAAe,KAAK,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7D,QAAQ,CAAC,IAAI,CACX,6BAA6B,MAAM,CAAC,eAAe,QAAQ,OAAO,KAAK;gBACvE,gFAAgF,CACjF,CAAC;QACJ,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE;YAC5B,KAAK,EAAE,kBAAkB;YACzB,OAAO,EAAE,MAAM,CAAC,QAAQ;gBACtB,CAAC,CAAC,WAAW,MAAM,CAAC,YAAY,EAAE;gBAClC,CAAC,CAAC,sCAAsC;YAC1C,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC,CAAC;QAEH,SAAS,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAEjF,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAE/E,OAAO;YACL,OAAO,EAAE,IAAI;YACb,gBAAgB,EAAE,MAAM,CAAC,eAAe;YACxC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,QAAQ;YACR,SAAS;SACV,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ;YACR,SAAS;YACT,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC3D,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Minimal logger interface used by shared utility functions that are
|
|
2
|
+
// exercised from BOTH the CLI (which wants chalk-styled console output)
|
|
3
|
+
// and the library API (which must stay silent).
|
|
4
|
+
//
|
|
5
|
+
// The CLI passes an adapter backed by the existing `ui` module; the
|
|
6
|
+
// library API passes `silentLogger` which swallows every call.
|
|
7
|
+
//
|
|
8
|
+
// This file intentionally has no top-level side effects and no
|
|
9
|
+
// dependency on `chalk`, `commander`, or any other UI layer — the
|
|
10
|
+
// library entry (lib.ts) imports it, and the library entry is
|
|
11
|
+
// required to stay side-effect-free.
|
|
12
|
+
export const silentLogger = {
|
|
13
|
+
info: () => { },
|
|
14
|
+
success: () => { },
|
|
15
|
+
warn: () => { },
|
|
16
|
+
error: () => { },
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,wEAAwE;AACxE,gDAAgD;AAChD,EAAE;AACF,oEAAoE;AACpE,+DAA+D;AAC/D,EAAE;AACF,+DAA+D;AAC/D,kEAAkE;AAClE,8DAA8D;AAC9D,qCAAqC;AASrC,MAAM,CAAC,MAAM,YAAY,GAAc;IACrC,IAAI,EAAE,GAAG,EAAE,GAA8B,CAAC;IAC1C,OAAO,EAAE,GAAG,EAAE,GAA8B,CAAC;IAC7C,IAAI,EAAE,GAAG,EAAE,GAA8B,CAAC;IAC1C,KAAK,EAAE,GAAG,EAAE,GAA8B,CAAC;CAC5C,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ProgressCallback, ProgressEvent } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Forward a single progress event to the caller's optional callback,
|
|
4
|
+
* swallowing any exception the callback throws. A broken onProgress
|
|
5
|
+
* handler must never abort the underlying library operation.
|
|
6
|
+
*/
|
|
7
|
+
export declare function emitProgress(onProgress: ProgressCallback | undefined, event: ProgressEvent): void;
|