@atelierai/uco 1.0.5 → 1.0.7

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 (204) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +7 -8
  3. package/bin/server.mjs +1 -1
  4. package/bin/stub-plugin.mjs +3 -3
  5. package/dist/codegen/coerce.js +1 -1
  6. package/dist/codegen/coerce.js.map +1 -1
  7. package/dist/codegen/emit.js +2 -2
  8. package/dist/codegen/emit.js.map +1 -1
  9. package/dist/codegen/refs.js +1 -1
  10. package/dist/codegen/refs.js.map +1 -1
  11. package/dist/codegen/types.js +1 -1
  12. package/dist/codegen/types.js.map +1 -1
  13. package/dist/commands/call.js +1 -1
  14. package/dist/commands/call.js.map +1 -1
  15. package/dist/commands/devops/configure.js +1 -1
  16. package/dist/commands/devops/configure.js.map +1 -1
  17. package/dist/commands/devops/index.js +0 -4
  18. package/dist/commands/devops/index.js.map +1 -1
  19. package/dist/commands/devops/install-plugin.js +1 -1
  20. package/dist/commands/devops/install-plugin.js.map +1 -1
  21. package/dist/commands/devops/open.js +7 -7
  22. package/dist/commands/devops/open.js.map +1 -1
  23. package/dist/commands/devops/status.js +3 -3
  24. package/dist/commands/devops/status.js.map +1 -1
  25. package/dist/commands/exec.js +1 -1
  26. package/dist/commands/exec.js.map +1 -1
  27. package/dist/commands/install.js +2 -2
  28. package/dist/commands/install.js.map +1 -1
  29. package/dist/commands/prompt.js +2 -2
  30. package/dist/commands/prompt.js.map +1 -1
  31. package/dist/commands/resource.js +2 -2
  32. package/dist/commands/resource.js.map +1 -1
  33. package/dist/commands/update.js +1 -26
  34. package/dist/commands/update.js.map +1 -1
  35. package/dist/config/port.js +2 -2
  36. package/dist/config/port.js.map +1 -1
  37. package/dist/config/resolve.d.ts +1 -2
  38. package/dist/config/resolve.js +0 -12
  39. package/dist/config/resolve.js.map +1 -1
  40. package/dist/devops/lib/configure.d.ts +1 -1
  41. package/dist/devops/lib/configure.js +2 -2
  42. package/dist/devops/lib/configure.js.map +1 -1
  43. package/dist/devops/lib/install-plugin.d.ts +1 -1
  44. package/dist/devops/lib/install-plugin.js +1 -1
  45. package/dist/devops/lib/install-plugin.js.map +1 -1
  46. package/dist/devops/lib/install.d.ts +2 -2
  47. package/dist/devops/lib/install.js +5 -5
  48. package/dist/devops/lib/install.js.map +1 -1
  49. package/dist/devops/lib/open.js +11 -32
  50. package/dist/devops/lib/open.js.map +1 -1
  51. package/dist/devops/lib/remove-plugin.d.ts +1 -1
  52. package/dist/devops/lib/remove-plugin.js +3 -3
  53. package/dist/devops/lib/remove-plugin.js.map +1 -1
  54. package/dist/devops/lib/run-tool.d.ts +2 -2
  55. package/dist/devops/lib/run-tool.js +2 -2
  56. package/dist/devops/lib/types.d.ts +17 -54
  57. package/dist/devops/lib/types.js +2 -2
  58. package/dist/devops/lib/types.js.map +1 -1
  59. package/dist/devops/lib/update.d.ts +0 -15
  60. package/dist/devops/lib/update.js +2 -91
  61. package/dist/devops/lib/update.js.map +1 -1
  62. package/dist/devops/utils/agents.d.ts +0 -28
  63. package/dist/devops/utils/agents.js +0 -462
  64. package/dist/devops/utils/agents.js.map +1 -1
  65. package/dist/devops/utils/config.d.ts +9 -18
  66. package/dist/devops/utils/config.js +7 -20
  67. package/dist/devops/utils/config.js.map +1 -1
  68. package/dist/devops/utils/editor-cache.js +1 -1
  69. package/dist/devops/utils/editor-cache.js.map +1 -1
  70. package/dist/devops/utils/launch-error-dismiss.d.ts +2 -2
  71. package/dist/devops/utils/launch-error-dismiss.js +5 -5
  72. package/dist/devops/utils/manifest.d.ts +2 -2
  73. package/dist/devops/utils/manifest.js +3 -3
  74. package/dist/devops/utils/manifest.js.map +1 -1
  75. package/dist/devops/utils/port.d.ts +1 -1
  76. package/dist/devops/utils/port.js +1 -1
  77. package/dist/devops/utils/probe.d.ts +1 -1
  78. package/dist/devops/utils/probe.js +1 -1
  79. package/dist/devops/utils/ui.js +2 -2
  80. package/dist/devops/utils/ui.js.map +1 -1
  81. package/dist/devops/utils/unity-editor.js +4 -4
  82. package/dist/devops/utils/unity-editor.js.map +1 -1
  83. package/dist/devops/utils/unity-hub.js +1 -1
  84. package/dist/devops/utils/unity-hub.js.map +1 -1
  85. package/dist/devops/utils/unity-shutdown.d.ts +1 -1
  86. package/dist/devops/utils/unity-shutdown.js +1 -1
  87. package/dist/devops/utils/update-check.js +3 -3
  88. package/dist/devops/utils/update-check.js.map +1 -1
  89. package/dist/devops/utils/vendor.d.ts +2 -2
  90. package/dist/devops/utils/vendor.js +4 -4
  91. package/dist/devops/utils/vendor.js.map +1 -1
  92. package/dist/generated/tools.js +1 -1
  93. package/dist/generated/tools.js.map +1 -1
  94. package/dist/program.js +3 -3
  95. package/dist/program.js.map +1 -1
  96. package/dist/server/app.d.ts +5 -5
  97. package/dist/server/app.js +3 -3
  98. package/dist/server/app.js.map +1 -1
  99. package/dist/server/index.d.ts +2 -2
  100. package/dist/server/index.js +2 -2
  101. package/dist/server/index.js.map +1 -1
  102. package/dist/server/rest/auth.d.ts +1 -1
  103. package/dist/server/rest/auth.js +3 -3
  104. package/dist/server/rest/auth.js.map +1 -1
  105. package/dist/server/rest/context.d.ts +2 -2
  106. package/dist/server/rest/forward.d.ts +2 -2
  107. package/dist/server/session/store.d.ts +3 -3
  108. package/dist/server/session/store.js +4 -4
  109. package/dist/server/session/store.js.map +1 -1
  110. package/dist/server/stub-client/scenarios.js +8 -8
  111. package/dist/server/stub-client/scenarios.js.map +1 -1
  112. package/dist/server/types.d.ts +11 -11
  113. package/dist/server/types.js +9 -9
  114. package/dist/server/types.js.map +1 -1
  115. package/dist/server/ws/hub.d.ts +8 -8
  116. package/dist/server/ws/hub.js +13 -13
  117. package/dist/server/ws/hub.js.map +1 -1
  118. package/dist/server/ws/rpc.d.ts +3 -3
  119. package/dist/server/ws/rpc.js +4 -4
  120. package/dist/server/ws/rpc.js.map +1 -1
  121. package/dist/transport/index.d.ts +1 -1
  122. package/dist/transport/index.js +3 -3
  123. package/dist/transport/index.js.map +1 -1
  124. package/dist/transport/rest.js +1 -1
  125. package/dist/transport/rest.js.map +1 -1
  126. package/docs/INSTALL.zh-CN.md +2 -3
  127. package/package.json +1 -1
  128. package/skills/uco-setup/SKILL.md +1 -1
  129. package/skills/unity-editor/references/diagnostics.md +24 -24
  130. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Components/ExtensionPanel.cs +379 -379
  131. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/MenuItems.cs +72 -72
  132. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/UnityCopilotProjectSettingsProvider.cs +64 -64
  133. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.CopilotServer.cs +372 -372
  134. package/vendor/plugin/com.atelierai.unity.copilot/Plugins/ReflectorNet.dll +0 -0
  135. package/vendor/plugin/com.atelierai.unity.copilot/Plugins/Uco.Framework.Common.dll +0 -0
  136. package/vendor/plugin/com.atelierai.unity.copilot/Plugins/Uco.Framework.dll +0 -0
  137. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.Config.cs +175 -175
  138. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.cs +1 -1
  139. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Utils/EnvironmentUtils.cs +368 -368
  140. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Environment/EnvironmentUtilsTests.cs +3 -3
  141. package/vendor/plugin/com.atelierai.unity.copilot/package.json +1 -1
  142. package/dist/commands/devops/login.d.ts +0 -2
  143. package/dist/commands/devops/login.js +0 -29
  144. package/dist/commands/devops/login.js.map +0 -1
  145. package/dist/commands/devops/setup-mcp.d.ts +0 -2
  146. package/dist/commands/devops/setup-mcp.js +0 -41
  147. package/dist/commands/devops/setup-mcp.js.map +0 -1
  148. package/dist/devops/commands-upstream/bootstrap-local.d.ts +0 -17
  149. package/dist/devops/commands-upstream/bootstrap-local.js +0 -87
  150. package/dist/devops/commands-upstream/bootstrap-local.js.map +0 -1
  151. package/dist/devops/commands-upstream/close.d.ts +0 -57
  152. package/dist/devops/commands-upstream/close.js +0 -188
  153. package/dist/devops/commands-upstream/close.js.map +0 -1
  154. package/dist/devops/commands-upstream/configure.d.ts +0 -2
  155. package/dist/devops/commands-upstream/configure.js +0 -87
  156. package/dist/devops/commands-upstream/configure.js.map +0 -1
  157. package/dist/devops/commands-upstream/create-project.d.ts +0 -2
  158. package/dist/devops/commands-upstream/create-project.js +0 -43
  159. package/dist/devops/commands-upstream/create-project.js.map +0 -1
  160. package/dist/devops/commands-upstream/install-plugin.d.ts +0 -2
  161. package/dist/devops/commands-upstream/install-plugin.js +0 -64
  162. package/dist/devops/commands-upstream/install-plugin.js.map +0 -1
  163. package/dist/devops/commands-upstream/install-unity.d.ts +0 -2
  164. package/dist/devops/commands-upstream/install-unity.js +0 -72
  165. package/dist/devops/commands-upstream/install-unity.js.map +0 -1
  166. package/dist/devops/commands-upstream/login.d.ts +0 -2
  167. package/dist/devops/commands-upstream/login.js +0 -33
  168. package/dist/devops/commands-upstream/login.js.map +0 -1
  169. package/dist/devops/commands-upstream/open.d.ts +0 -32
  170. package/dist/devops/commands-upstream/open.js +0 -282
  171. package/dist/devops/commands-upstream/open.js.map +0 -1
  172. package/dist/devops/commands-upstream/remove-plugin.d.ts +0 -2
  173. package/dist/devops/commands-upstream/remove-plugin.js +0 -41
  174. package/dist/devops/commands-upstream/remove-plugin.js.map +0 -1
  175. package/dist/devops/commands-upstream/run-system-tool.d.ts +0 -1
  176. package/dist/devops/commands-upstream/run-system-tool.js +0 -13
  177. package/dist/devops/commands-upstream/run-system-tool.js.map +0 -1
  178. package/dist/devops/commands-upstream/run-tool-builder.d.ts +0 -25
  179. package/dist/devops/commands-upstream/run-tool-builder.js +0 -125
  180. package/dist/devops/commands-upstream/run-tool-builder.js.map +0 -1
  181. package/dist/devops/commands-upstream/run-tool.d.ts +0 -1
  182. package/dist/devops/commands-upstream/run-tool.js +0 -13
  183. package/dist/devops/commands-upstream/run-tool.js.map +0 -1
  184. package/dist/devops/commands-upstream/setup-mcp.d.ts +0 -2
  185. package/dist/devops/commands-upstream/setup-mcp.js +0 -68
  186. package/dist/devops/commands-upstream/setup-mcp.js.map +0 -1
  187. package/dist/devops/commands-upstream/setup-skills.d.ts +0 -2
  188. package/dist/devops/commands-upstream/setup-skills.js +0 -167
  189. package/dist/devops/commands-upstream/setup-skills.js.map +0 -1
  190. package/dist/devops/commands-upstream/status.d.ts +0 -2
  191. package/dist/devops/commands-upstream/status.js +0 -87
  192. package/dist/devops/commands-upstream/status.js.map +0 -1
  193. package/dist/devops/commands-upstream/update.d.ts +0 -2
  194. package/dist/devops/commands-upstream/update.js +0 -77
  195. package/dist/devops/commands-upstream/update.js.map +0 -1
  196. package/dist/devops/commands-upstream/wait-for-ready.d.ts +0 -2
  197. package/dist/devops/commands-upstream/wait-for-ready.js +0 -93
  198. package/dist/devops/commands-upstream/wait-for-ready.js.map +0 -1
  199. package/dist/devops/lib/setup-mcp.d.ts +0 -35
  200. package/dist/devops/lib/setup-mcp.js +0 -172
  201. package/dist/devops/lib/setup-mcp.js.map +0 -1
  202. package/dist/devops/utils/cloud-login.d.ts +0 -7
  203. package/dist/devops/utils/cloud-login.js +0 -56
  204. package/dist/devops/utils/cloud-login.js.map +0 -1
@@ -1,43 +0,0 @@
1
- import { Command } from 'commander';
2
- import * as path from 'path';
3
- import { ensureUnityHub, createProject, listInstalledEditors, findHighestEditor } from '../utils/unity-hub.js';
4
- import * as ui from '../utils/ui.js';
5
- import { verbose } from '../utils/ui.js';
6
- export const createProjectCommand = new Command('create-project')
7
- .description('Create a new Unity project')
8
- .argument('[path]', 'Path where the project will be created')
9
- .option('--path <path>', 'Path where the project will be created')
10
- .option('--unity <version>', 'Unity Editor version to use')
11
- .action(async (positionalPath, options) => {
12
- const resolvedPath = positionalPath ?? options.path;
13
- if (!resolvedPath) {
14
- ui.error('Path is required. Usage: unity-mcp-cli create-project <path> or --path <path>');
15
- process.exit(1);
16
- }
17
- const spinner = ui.startSpinner('Locating Unity Hub...');
18
- let hubPath;
19
- try {
20
- hubPath = await ensureUnityHub();
21
- }
22
- catch (err) {
23
- spinner.error('Failed to locate Unity Hub');
24
- throw err;
25
- }
26
- spinner.success('Unity Hub located');
27
- let editorVersion = options.unity;
28
- if (!editorVersion) {
29
- const editors = listInstalledEditors(hubPath);
30
- if (editors.length === 0) {
31
- ui.error('No Unity editors installed. Install one with: unity-mcp-cli install-unity [version]');
32
- process.exit(1);
33
- }
34
- const highest = findHighestEditor(editors);
35
- editorVersion = highest.version;
36
- ui.info(`No Unity version specified, using highest installed: ${editorVersion}`);
37
- }
38
- const projectPath = path.resolve(resolvedPath);
39
- verbose(`Creating project at: ${projectPath} with editor version: ${editorVersion}`);
40
- verbose(`Unity Hub path: ${hubPath}`);
41
- createProject(hubPath, projectPath, editorVersion);
42
- });
43
- //# sourceMappingURL=create-project.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-project.js","sourceRoot":"","sources":["../../../src/devops/commands-upstream/create-project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/G,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,OAAO,CAAC,gBAAgB,CAAC;KAC9D,WAAW,CAAC,4BAA4B,CAAC;KACzC,QAAQ,CAAC,QAAQ,EAAE,wCAAwC,CAAC;KAC5D,MAAM,CAAC,eAAe,EAAE,wCAAwC,CAAC;KACjE,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,CAAC;KAC1D,MAAM,CAAC,KAAK,EAAE,cAAkC,EAAE,OAA0C,EAAE,EAAE;IAC/F,MAAM,YAAY,GAAG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IACpD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,EAAE,CAAC,KAAK,CAAC,+EAA+E,CAAC,CAAC;QAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,uBAAuB,CAAC,CAAC;IACzD,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,cAAc,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC5C,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAErC,IAAI,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;IAElC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC9C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,EAAE,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;YAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3C,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,EAAE,CAAC,IAAI,CAAC,wDAAwD,aAAa,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/C,OAAO,CAAC,wBAAwB,WAAW,yBAAyB,aAAa,EAAE,CAAC,CAAC;IACrF,OAAO,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;IACtC,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const installPluginCommand: Command;
@@ -1,64 +0,0 @@
1
- import { Command } from 'commander';
2
- import * as path from 'path';
3
- import * as ui from '../utils/ui.js';
4
- import { verbose } from '../utils/ui.js';
5
- import { installPlugin } from '../lib/install-plugin.js';
6
- export const installPluginCommand = new Command('install-plugin')
7
- .description('Install Unity-MCP plugin into a Unity project')
8
- .argument('[path]', 'Path to the Unity project')
9
- .option('--path <path>', 'Path to the Unity project')
10
- .option('--plugin-version <version>', 'Plugin version to install (default: latest)')
11
- .action(async (positionalPath, options) => {
12
- const resolvedPath = positionalPath ?? options.path;
13
- if (!resolvedPath) {
14
- ui.error('Path is required. Usage: unity-mcp-cli install-plugin <path> or --path <path>');
15
- process.exit(1);
16
- }
17
- const projectPath = path.resolve(resolvedPath);
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...');
23
- }
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.kind === 'failure') {
47
- if (spinner) {
48
- spinner.error('Failed to resolve plugin version');
49
- spinner = undefined;
50
- }
51
- ui.error(result.error.message);
52
- process.exit(1);
53
- }
54
- // Narrowed: result.kind === 'success' below — `installedVersion`
55
- // and `manifestPath` are non-optional.
56
- verbose(`Plugin version: ${result.installedVersion} (explicit: ${!!options.pluginVersion})`);
57
- verbose(`Manifest path: ${result.manifestPath}`);
58
- ui.info(`Installing Unity-MCP plugin v${result.installedVersion} into: ${projectPath}`);
59
- for (const warning of result.warnings) {
60
- ui.warn(warning);
61
- }
62
- ui.success('Done! Open the project in Unity Editor to complete installation.');
63
- });
64
- //# sourceMappingURL=install-plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install-plugin.js","sourceRoot":"","sources":["../../../src/devops/commands-upstream/install-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const installUnityCommand: Command;
@@ -1,72 +0,0 @@
1
- import { Command } from 'commander';
2
- import * as path from 'path';
3
- import * as fs from 'fs';
4
- import { ensureUnityHub, installEditor, listInstalledEditors, listAvailableReleases, findLatestStableRelease } from '../utils/unity-hub.js';
5
- import { getProjectEditorVersion } from '../utils/unity-editor.js';
6
- import * as ui from '../utils/ui.js';
7
- import { verbose } from '../utils/ui.js';
8
- export const installUnityCommand = new Command('install-unity')
9
- .description('Install Unity Editor via Unity Hub')
10
- .argument('[version]', 'Unity Editor version to install (e.g. 6000.3.1f1). Omit to install latest stable release.')
11
- .option('--path <path>', 'Read version from an existing Unity project')
12
- .action(async (positionalVersion, options) => {
13
- verbose(`install-unity invoked with version=${positionalVersion ?? '(auto)'}, path=${options.path ?? '(none)'}`);
14
- const spinner = ui.startSpinner('Locating Unity Hub...');
15
- let hubPath;
16
- try {
17
- hubPath = await ensureUnityHub();
18
- }
19
- catch (err) {
20
- spinner.error('Failed to locate Unity Hub');
21
- throw err;
22
- }
23
- spinner.success('Unity Hub located');
24
- verbose(`Unity Hub path: ${hubPath}`);
25
- let version = positionalVersion;
26
- if (!version && options.path) {
27
- const projectPath = path.resolve(options.path);
28
- if (!fs.existsSync(projectPath)) {
29
- ui.error(`Project path does not exist: ${projectPath}`);
30
- process.exit(1);
31
- }
32
- version = getProjectEditorVersion(projectPath) ?? undefined;
33
- if (version) {
34
- ui.info(`Detected editor version from project: ${version}`);
35
- }
36
- else {
37
- ui.error('Could not read editor version from ProjectSettings/ProjectVersion.txt');
38
- process.exit(1);
39
- }
40
- }
41
- // Fetch available releases once — reused for latest-stable lookup and install
42
- let releases;
43
- // No version specified — resolve latest stable release from Unity Hub
44
- if (!version) {
45
- releases = listAvailableReleases(hubPath);
46
- const latest = findLatestStableRelease(releases);
47
- if (!latest) {
48
- ui.error('No stable releases found');
49
- const editors = listInstalledEditors(hubPath);
50
- if (editors.length > 0) {
51
- ui.heading('Currently installed editors:');
52
- for (const editor of editors) {
53
- ui.label(editor.version, editor.path);
54
- }
55
- }
56
- process.exit(1);
57
- }
58
- ui.success(`Latest stable release: ${latest.version}`);
59
- version = latest.version;
60
- }
61
- // Check if already installed
62
- const editors = listInstalledEditors(hubPath);
63
- const alreadyInstalled = editors.find((e) => e.version === version);
64
- if (alreadyInstalled) {
65
- ui.success(`Unity Editor ${version} is already installed at: ${alreadyInstalled.path}`);
66
- return;
67
- }
68
- verbose(`Installing Unity Editor version: ${version}`);
69
- await installEditor(hubPath, version, releases);
70
- ui.success(`Unity Editor ${version} installed successfully`);
71
- });
72
- //# sourceMappingURL=install-unity.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install-unity.js","sourceRoot":"","sources":["../../../src/devops/commands-upstream/install-unity.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const loginCommand: Command;
@@ -1,33 +0,0 @@
1
- // Copyright (c) 2024 Ivan Murzak. All rights reserved.
2
- // Licensed under the Apache License, Version 2.0.
3
- import { Command } from 'commander';
4
- import * as ui from '../utils/ui.js';
5
- import { verbose } from '../utils/ui.js';
6
- import { resolveProjectPath } from '../utils/connection.js';
7
- import { getOrCreateConfig, CLOUD_SERVER_BASE_URL } from '../utils/config.js';
8
- import { runCloudLogin } from '../utils/cloud-login.js';
9
- export const loginCommand = new Command('login')
10
- .description('Authenticate with the Unity-MCP cloud server')
11
- .argument('[path]', 'Unity project path (defaults to cwd)')
12
- .option('--force', 'Re-authenticate even if already logged in')
13
- .action(async (positionalPath, options) => {
14
- const projectPath = resolveProjectPath(positionalPath, options);
15
- verbose(`Project path: ${projectPath}`);
16
- const config = getOrCreateConfig(projectPath);
17
- if (config.cloudToken && !options.force) {
18
- ui.success('Already authenticated with cloud server.');
19
- ui.info('Use --force to re-authenticate.');
20
- return;
21
- }
22
- ui.heading('Cloud Authentication');
23
- ui.label('Server', CLOUD_SERVER_BASE_URL);
24
- ui.divider();
25
- const token = await runCloudLogin(projectPath);
26
- if (token) {
27
- ui.success('Authentication complete. Cloud token saved to project config.');
28
- }
29
- else {
30
- process.exit(1);
31
- }
32
- });
33
- //# sourceMappingURL=login.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/devops/commands-upstream/login.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,kDAAkD;AAElD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAOxD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,8CAA8C,CAAC;KAC3D,QAAQ,CAAC,QAAQ,EAAE,sCAAsC,CAAC;KAC1D,MAAM,CAAC,SAAS,EAAE,2CAA2C,CAAC;KAC9D,MAAM,CACL,KAAK,EACH,cAAkC,EAClC,OAAqB,EACrB,EAAE;IACF,MAAM,WAAW,GAAG,kBAAkB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IAChE,OAAO,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC;IAExC,MAAM,MAAM,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAE9C,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,EAAE,CAAC,OAAO,CAAC,0CAA0C,CAAC,CAAC;QACvD,EAAE,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,EAAE,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACnC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAC1C,EAAE,CAAC,OAAO,EAAE,CAAC;IAEb,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;IAC/C,IAAI,KAAK,EAAE,CAAC;QACV,EAAE,CAAC,OAAO,CAAC,+DAA+D,CAAC,CAAC;IAC9E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CACF,CAAC"}
@@ -1,32 +0,0 @@
1
- import { Command } from 'commander';
2
- import { isUnityProjectDir as libIsUnityProjectDir } from '../lib/open.js';
3
- /**
4
- * Resolve the project path from the positional argument, `--path` option, or
5
- * the current working directory when neither is provided.
6
- *
7
- * Re-exported from the library helper so existing tests continue to import
8
- * `resolveOpenProjectPath` from this module.
9
- */
10
- export interface ResolveProjectPathResult {
11
- /** Absolute, resolved path to the project directory. */
12
- projectPath: string;
13
- /** True if no path was supplied and we fell back to `process.cwd()`. */
14
- usedCwdFallback: boolean;
15
- }
16
- export declare function resolveOpenProjectPath(positionalPath: string | undefined, optionPath: string | undefined, cwd: string): ResolveProjectPathResult;
17
- /** Re-export for backward compatibility with existing tests. */
18
- export declare const isUnityProjectDir: typeof libIsUnityProjectDir;
19
- /**
20
- * Parse a `--xxx <ms>` style commander option as a positive integer.
21
- * Commander stores the raw string (including the literal default
22
- * supplied to `.option()`), so a parse-and-validate step is required
23
- * before the value can flow into the library. Exits with code 1 on
24
- * a non-numeric / non-positive value — matches the CLI's existing
25
- * error-handling pattern for malformed flag values (`--auth`,
26
- * `--transport`, `--start-server`).
27
- *
28
- * Exported for unit tests; the CLI wrapper is the only production
29
- * caller.
30
- */
31
- export declare function parsePositiveIntFlag(raw: string | undefined, flagName: string, fallback: number): number;
32
- export declare const openCommand: Command;
@@ -1,282 +0,0 @@
1
- import { Command } from 'commander';
2
- import * as path from 'path';
3
- import { findUnityHub, listInstalledEditors } from '../utils/unity-hub.js';
4
- import { findUnityProcess } from '../utils/unity-process.js';
5
- import * as ui from '../utils/ui.js';
6
- import { verbose } from '../utils/ui.js';
7
- import { openProject, resolveProjectPath as libResolveProjectPath, isUnityProjectDir as libIsUnityProjectDir, } from '../lib/open.js';
8
- export function resolveOpenProjectPath(positionalPath, optionPath, cwd) {
9
- // The CLI takes both a positional `[path]` AND an `--path` flag; the
10
- // library helper only takes a single `optionPath`. Collapse the two
11
- // CLI inputs (positional wins) before delegating.
12
- const explicit = positionalPath ?? optionPath;
13
- return libResolveProjectPath(explicit, cwd);
14
- }
15
- /** Re-export for backward compatibility with existing tests. */
16
- export const isUnityProjectDir = libIsUnityProjectDir;
17
- /**
18
- * Parse a `--xxx <ms>` style commander option as a positive integer.
19
- * Commander stores the raw string (including the literal default
20
- * supplied to `.option()`), so a parse-and-validate step is required
21
- * before the value can flow into the library. Exits with code 1 on
22
- * a non-numeric / non-positive value — matches the CLI's existing
23
- * error-handling pattern for malformed flag values (`--auth`,
24
- * `--transport`, `--start-server`).
25
- *
26
- * Exported for unit tests; the CLI wrapper is the only production
27
- * caller.
28
- */
29
- export function parsePositiveIntFlag(raw, flagName, fallback) {
30
- if (raw === undefined)
31
- return fallback;
32
- const trimmed = String(raw).trim();
33
- if (trimmed === '')
34
- return fallback;
35
- // Reject scientific notation, fractions, and explicit signs — the
36
- // ms value MUST be a positive whole number for the polling loop's
37
- // bookkeeping to be sane.
38
- if (!/^\d+$/.test(trimmed)) {
39
- ui.error(`${flagName} must be a positive integer (got: "${raw}")`);
40
- process.exit(1);
41
- }
42
- const parsed = parseInt(trimmed, 10);
43
- if (!Number.isFinite(parsed) || parsed < 0) {
44
- ui.error(`${flagName} must be a positive integer (got: "${raw}")`);
45
- process.exit(1);
46
- }
47
- return parsed;
48
- }
49
- /**
50
- * Print actionable help when a required Unity Editor version is not found.
51
- * Lists installed editors and suggests install or override commands. Lives
52
- * here (next to the CLI command) instead of `unity-editor.ts` because it
53
- * writes to the chalk-styled `ui` and we want to keep the `unity-editor.ts`
54
- * helpers library-safe.
55
- */
56
- function printEditorNotFoundHelp(requestedVersion, commandName) {
57
- if (requestedVersion) {
58
- ui.error(`Unity Editor ${requestedVersion} is not installed.`);
59
- }
60
- else {
61
- ui.error('No Unity Editor found.');
62
- }
63
- ui.heading('Options:');
64
- if (requestedVersion) {
65
- ui.info(`Install it: npx unity-mcp-cli install-unity ${requestedVersion}`);
66
- }
67
- ui.info('Install latest stable: npx unity-mcp-cli install-unity');
68
- const hubPath = findUnityHub();
69
- if (hubPath) {
70
- const editors = listInstalledEditors(hubPath);
71
- if (editors.length > 0) {
72
- ui.heading('Installed editors:');
73
- for (const editor of editors) {
74
- ui.label(editor.version, editor.path);
75
- }
76
- if (requestedVersion) {
77
- const hint = commandName === 'connect'
78
- ? `npx unity-mcp-cli ${commandName} --unity ${editors[0].version} --path <path> --url <url>`
79
- : `npx unity-mcp-cli ${commandName} <path> --unity ${editors[0].version}`;
80
- ui.info(`Use a different version: ${hint}`);
81
- }
82
- }
83
- }
84
- }
85
- export const openCommand = new Command('open')
86
- .description('Open a Unity project in Unity Editor, optionally passing MCP connection env vars when connection options (--url, --token, etc.) are provided. Use --no-connect to suppress all MCP env vars.')
87
- .argument('[path]', 'Path to the Unity project (defaults to current directory)')
88
- .option('--path <path>', 'Path to the Unity project (defaults to current directory)')
89
- .option('--unity <version>', 'Specific Unity Editor version to use')
90
- .option('--no-connect', 'Open without MCP connection environment variables')
91
- .option('--url <url>', 'MCP server URL to connect to (sets UNITY_MCP_HOST)')
92
- .option('--tools <names>', 'Comma-separated list of tools to enable (sets UNITY_MCP_TOOLS)')
93
- .option('--token <token>', 'Auth token (sets UNITY_MCP_TOKEN)')
94
- .option('--auth <option>', 'Auth option: none or required (sets UNITY_MCP_AUTH_OPTION)')
95
- .option('--keep-connected', 'Force keep connected (sets UNITY_MCP_KEEP_CONNECTED=true)')
96
- .option('--transport <method>', 'Transport method: streamableHttp or stdio (sets UNITY_MCP_TRANSPORT)')
97
- .option('--start-server <value>', 'Set to true/false to control server auto-start (sets UNITY_MCP_START_SERVER)', undefined)
98
- .option('--no-auto-dismiss-launch-errors', 'Disable auto-dismissal of the Unity Editor "compile errors at launch" dialog (default: enabled). On macOS, requires Accessibility permission for the terminal / unity-mcp-cli binary. On Linux/X11, requires `xdotool` on PATH (Wayland not supported).')
99
- .option('--launch-dismiss-timeout-ms <ms>', 'Overall timeout (milliseconds) for the launch-errors auto-dismiss polling loop (default: 30000)', '30000')
100
- .option('--launch-dismiss-poll-interval-ms <ms>', 'Polling tick interval (milliseconds) for the launch-errors auto-dismiss loop (default: 1500)', '1500')
101
- .action(async (positionalPath, options) => {
102
- // Resolve the path the same way the library does, but also
103
- // validate the existence + Unity-project shape up front so we
104
- // can emit the historical, friendlier "Current directory is
105
- // not a Unity project" message when the cwd-fallback was used.
106
- // The library always reports the underlying error string, but
107
- // the CLI is allowed to render two different variants.
108
- const { projectPath, usedCwdFallback } = resolveOpenProjectPath(positionalPath, options.path, process.cwd());
109
- const fs = await import('fs');
110
- if (!fs.existsSync(projectPath)) {
111
- ui.error(`Project path does not exist: ${projectPath}`);
112
- process.exit(1);
113
- }
114
- if (!libIsUnityProjectDir(projectPath)) {
115
- if (usedCwdFallback) {
116
- ui.error(`Current directory is not a Unity project: ${projectPath}`);
117
- ui.info('Run this command from a Unity project folder, or pass a path: unity-mcp-cli open <path>');
118
- }
119
- else {
120
- ui.error(`Not a Unity project (missing Assets/ or ProjectSettings/ProjectVersion.txt): ${projectPath}`);
121
- }
122
- process.exit(1);
123
- }
124
- if (usedCwdFallback) {
125
- verbose(`No path provided — using current directory: ${projectPath}`);
126
- }
127
- verbose(`open invoked for project: ${projectPath}`);
128
- verbose(`--no-connect: ${options.connect === false}`);
129
- // Validate auth/transport/startServer here — keeps the historical
130
- // CLI error messages and exit codes (the library reports these
131
- // as `kind: 'failure'` instead).
132
- if (options.auth !== undefined && options.auth !== 'none' && options.auth !== 'required') {
133
- ui.error('--auth must be "none" or "required"');
134
- process.exit(1);
135
- }
136
- if (options.transport !== undefined && options.transport !== 'streamableHttp' && options.transport !== 'stdio') {
137
- ui.error('--transport must be "streamableHttp" or "stdio"');
138
- process.exit(1);
139
- }
140
- let startServerBool;
141
- if (options.startServer !== undefined) {
142
- const val = options.startServer.toLowerCase();
143
- if (val !== 'true' && val !== 'false') {
144
- ui.error('--start-server must be "true" or "false"');
145
- process.exit(1);
146
- }
147
- startServerBool = val === 'true';
148
- }
149
- // --launch-dismiss-timeout-ms / --launch-dismiss-poll-interval-ms
150
- // are commander string options with numeric defaults. Parse and
151
- // validate here so the failure mode is a clear CLI error rather
152
- // than a silent NaN that disables the polling loop.
153
- const launchDismissTimeoutMs = parsePositiveIntFlag(options.launchDismissTimeoutMs, '--launch-dismiss-timeout-ms', 30000);
154
- const launchDismissPollIntervalMs = parsePositiveIntFlag(options.launchDismissPollIntervalMs, '--launch-dismiss-poll-interval-ms', 1500);
155
- // Commander's `--no-auto-dismiss-launch-errors` produces
156
- // `autoDismissLaunchErrors: false`; the absence of the flag
157
- // produces `undefined` (which `openProject` treats as the default
158
- // `true`). No additional parsing needed.
159
- // Pre-flight already-running check so we don't flash the
160
- // "Locating Unity Editor..." spinner when Unity is already open
161
- // for this project. The lib does its own check too (single
162
- // source of truth for the result shape); this one only suppresses
163
- // spinner spam in the common already-open case.
164
- const alreadyRunningPid = findUnityProcess(projectPath)?.pid;
165
- // Spinner around editor location for parity with the legacy UX.
166
- let spinner = alreadyRunningPid === undefined
167
- ? ui.startSpinner('Locating Unity Editor...')
168
- : undefined;
169
- const result = await openProject({
170
- projectPath,
171
- unityVersion: options.unity,
172
- noConnect: options.connect === false,
173
- url: options.url,
174
- token: options.token,
175
- auth: options.auth,
176
- tools: options.tools,
177
- keepConnected: options.keepConnected,
178
- transport: options.transport,
179
- startServer: startServerBool,
180
- autoDismissLaunchErrors: options.autoDismissLaunchErrors !== false,
181
- launchDismissTimeoutMs,
182
- launchDismissPollIntervalMs,
183
- onProgress: (event) => {
184
- switch (event.phase) {
185
- case 'detecting-editor-version': {
186
- // unity-version detection is fast — no UI noise needed.
187
- break;
188
- }
189
- case 'editors-located': {
190
- // Cover the case where editor discovery succeeded — the
191
- // spinner success message lands on `editor-resolved`,
192
- // not here, so we don't overwrite the "Locating…" line.
193
- break;
194
- }
195
- case 'editor-resolved': {
196
- if (spinner) {
197
- spinner.success('Unity Editor located');
198
- spinner = undefined;
199
- }
200
- verbose(`Editor path: ${event.editorPath}`);
201
- if (event.version) {
202
- ui.info(`Detected editor version from project: ${event.version}`);
203
- verbose(`Resolved editor version from ProjectVersion.txt: ${event.version}`);
204
- }
205
- break;
206
- }
207
- case 'connection-details': {
208
- const envVars = event.envVars;
209
- if (Object.keys(envVars).length > 0) {
210
- ui.heading('Connection Details');
211
- ui.label('Project', event.projectPath);
212
- ui.label('Editor', event.editorPath);
213
- ui.heading('Environment Variables');
214
- for (const [key, value] of Object.entries(envVars)) {
215
- const display = key === 'UNITY_MCP_TOKEN' ? '***' : value;
216
- ui.label(key, display);
217
- verbose(`Setting ${key}=${display}`);
218
- }
219
- ui.divider();
220
- }
221
- else {
222
- verbose('MCP connection disabled via --no-connect or no options');
223
- }
224
- break;
225
- }
226
- case 'launching-editor': {
227
- ui.label('Project', event.projectPath);
228
- ui.label('Editor', event.editorPath);
229
- break;
230
- }
231
- case 'editor-launched': {
232
- ui.success(`Launched Unity Editor (PID: ${event.pid ?? 'unknown'})`);
233
- break;
234
- }
235
- case 'launch-errors-dismissed': {
236
- // Single info-level log line on dismissal — exact format
237
- // is part of the issue's acceptance contract. Keep in
238
- // sync with `launch-error-dismiss.ts` if changed.
239
- ui.info(`[open] dismissed Unity launch-errors dialog (button=${event.button}, platform=${event.platform})`);
240
- break;
241
- }
242
- default:
243
- break;
244
- }
245
- },
246
- });
247
- if (spinner) {
248
- // Library returned before emitting `editor-resolved` — most
249
- // likely failed to locate an editor. Stop the spinner so the
250
- // error path renders cleanly.
251
- spinner.stop();
252
- spinner = undefined;
253
- }
254
- if (result.kind === 'failure') {
255
- // Render the failure with the original CLI surface. Two cases
256
- // get the rich "no editor found" help; everything else is a
257
- // plain ui.error.
258
- if (result.errorMessage.startsWith('Unity Editor') &&
259
- result.errorMessage.endsWith('is not installed.')) {
260
- printEditorNotFoundHelp(options.unity, 'open');
261
- }
262
- else if (result.errorMessage === 'No Unity Editor found.') {
263
- printEditorNotFoundHelp(undefined, 'open');
264
- }
265
- else {
266
- ui.error(result.errorMessage);
267
- }
268
- process.exit(1);
269
- }
270
- // Already-running short-circuit: the library returns success
271
- // with `alreadyRunning: true`. Preserve the original exit-0 +
272
- // friendly message.
273
- if (result.alreadyRunning) {
274
- ui.success(`Unity is already running with this project (PID: ${result.editorPid ?? 'unknown'})`);
275
- ui.info('Skipping launch. Use the running instance or close it first.');
276
- process.exit(0);
277
- }
278
- // Path is normally absolute already; resolve defensively for
279
- // verbose log parity with the legacy CLI.
280
- verbose(`Resolved project path: ${path.resolve(result.projectPath)}`);
281
- });
282
- //# sourceMappingURL=open.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/devops/commands-upstream/open.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const removePluginCommand: Command;
@@ -1,41 +0,0 @@
1
- import { Command } from 'commander';
2
- import * as path from 'path';
3
- import * as ui from '../utils/ui.js';
4
- import { verbose } from '../utils/ui.js';
5
- import { removePlugin } from '../lib/remove-plugin.js';
6
- export const removePluginCommand = new Command('remove-plugin')
7
- .description('Remove Unity-MCP plugin from a Unity project')
8
- .argument('[path]', 'Path to the Unity project')
9
- .option('--path <path>', 'Path to the Unity project')
10
- .action(async (positionalPath, options) => {
11
- const resolvedPath = positionalPath ?? options.path;
12
- if (!resolvedPath) {
13
- ui.error('Path is required. Usage: unity-mcp-cli remove-plugin <path> or --path <path>');
14
- process.exit(1);
15
- }
16
- const projectPath = path.resolve(resolvedPath);
17
- ui.info(`Removing Unity-MCP plugin from: ${projectPath}`);
18
- const result = await removePlugin({ unityProjectPath: projectPath });
19
- if (result.kind === 'failure') {
20
- ui.error(result.error.message);
21
- process.exit(1);
22
- }
23
- // Narrowed: result.kind === 'success' below — `manifestPath` is
24
- // non-optional and `removed` is a definite boolean.
25
- verbose(`Manifest path: ${result.manifestPath}`);
26
- if (result.removed) {
27
- ui.success(`Removed com.atelierai.unity.copilot 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
- }
39
- ui.success('Done!');
40
- });
41
- //# sourceMappingURL=remove-plugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remove-plugin.js","sourceRoot":"","sources":["../../../src/devops/commands-upstream/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,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC9B,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,gEAAgE;IAChE,oDAAoD;IACpD,OAAO,CAAC,kBAAkB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAEjD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,EAAE,CAAC,OAAO,CAAC,4CAA4C,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAChF,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 +0,0 @@
1
- export declare const runSystemToolCommand: import("commander").Command;