@atelierai/uco 1.0.6 → 1.0.8
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 +32 -0
- package/README.md +7 -8
- package/bin/server.mjs +1 -1
- package/bin/stub-plugin.mjs +3 -3
- package/dist/codegen/coerce.js +1 -1
- package/dist/codegen/coerce.js.map +1 -1
- package/dist/codegen/emit.js +2 -2
- package/dist/codegen/emit.js.map +1 -1
- package/dist/codegen/refs.js +1 -1
- package/dist/codegen/refs.js.map +1 -1
- package/dist/codegen/types.js +1 -1
- package/dist/codegen/types.js.map +1 -1
- package/dist/commands/call.js +1 -1
- package/dist/commands/call.js.map +1 -1
- package/dist/commands/devops/configure.js +1 -1
- package/dist/commands/devops/configure.js.map +1 -1
- package/dist/commands/devops/index.js +0 -4
- package/dist/commands/devops/index.js.map +1 -1
- package/dist/commands/devops/install-plugin.js +1 -1
- package/dist/commands/devops/install-plugin.js.map +1 -1
- package/dist/commands/devops/open.js +7 -7
- package/dist/commands/devops/open.js.map +1 -1
- package/dist/commands/devops/status.js +3 -3
- package/dist/commands/devops/status.js.map +1 -1
- package/dist/commands/exec.js +1 -1
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/install.js +2 -2
- package/dist/commands/install.js.map +1 -1
- package/dist/commands/prompt.js +2 -2
- package/dist/commands/prompt.js.map +1 -1
- package/dist/commands/resource.js +2 -2
- package/dist/commands/resource.js.map +1 -1
- package/dist/commands/update.js +1 -26
- package/dist/commands/update.js.map +1 -1
- package/dist/config/port.js +2 -2
- package/dist/config/port.js.map +1 -1
- package/dist/config/resolve.d.ts +1 -2
- package/dist/config/resolve.js +0 -12
- package/dist/config/resolve.js.map +1 -1
- package/dist/devops/lib/configure.d.ts +1 -1
- package/dist/devops/lib/configure.js +2 -2
- package/dist/devops/lib/configure.js.map +1 -1
- package/dist/devops/lib/install-plugin.d.ts +1 -1
- package/dist/devops/lib/install-plugin.js +1 -1
- package/dist/devops/lib/install-plugin.js.map +1 -1
- package/dist/devops/lib/install.d.ts +2 -2
- package/dist/devops/lib/install.js +5 -5
- package/dist/devops/lib/install.js.map +1 -1
- package/dist/devops/lib/open.js +11 -32
- package/dist/devops/lib/open.js.map +1 -1
- package/dist/devops/lib/remove-plugin.d.ts +1 -1
- package/dist/devops/lib/remove-plugin.js +3 -3
- package/dist/devops/lib/remove-plugin.js.map +1 -1
- package/dist/devops/lib/run-tool.d.ts +2 -2
- package/dist/devops/lib/run-tool.js +2 -2
- package/dist/devops/lib/types.d.ts +17 -54
- package/dist/devops/lib/types.js +2 -2
- package/dist/devops/lib/types.js.map +1 -1
- package/dist/devops/lib/update.d.ts +0 -15
- package/dist/devops/lib/update.js +2 -91
- package/dist/devops/lib/update.js.map +1 -1
- package/dist/devops/utils/agents.d.ts +0 -28
- package/dist/devops/utils/agents.js +0 -462
- package/dist/devops/utils/agents.js.map +1 -1
- package/dist/devops/utils/config.d.ts +9 -18
- package/dist/devops/utils/config.js +7 -20
- package/dist/devops/utils/config.js.map +1 -1
- package/dist/devops/utils/editor-cache.js +1 -1
- package/dist/devops/utils/editor-cache.js.map +1 -1
- package/dist/devops/utils/launch-error-dismiss.d.ts +2 -2
- package/dist/devops/utils/launch-error-dismiss.js +5 -5
- package/dist/devops/utils/manifest.d.ts +2 -2
- package/dist/devops/utils/manifest.js +3 -3
- package/dist/devops/utils/manifest.js.map +1 -1
- package/dist/devops/utils/port.d.ts +1 -1
- package/dist/devops/utils/port.js +1 -1
- package/dist/devops/utils/probe.d.ts +1 -1
- package/dist/devops/utils/probe.js +1 -1
- package/dist/devops/utils/ui.js +2 -2
- package/dist/devops/utils/ui.js.map +1 -1
- package/dist/devops/utils/unity-editor.js +4 -4
- package/dist/devops/utils/unity-editor.js.map +1 -1
- package/dist/devops/utils/unity-hub.js +1 -1
- package/dist/devops/utils/unity-hub.js.map +1 -1
- package/dist/devops/utils/unity-shutdown.d.ts +1 -1
- package/dist/devops/utils/unity-shutdown.js +1 -1
- package/dist/devops/utils/update-check.js +3 -3
- package/dist/devops/utils/update-check.js.map +1 -1
- package/dist/devops/utils/vendor.d.ts +2 -2
- package/dist/devops/utils/vendor.js +4 -4
- package/dist/devops/utils/vendor.js.map +1 -1
- package/dist/generated/tools.js +1 -1
- package/dist/generated/tools.js.map +1 -1
- package/dist/program.js +3 -3
- package/dist/program.js.map +1 -1
- package/dist/server/app.d.ts +5 -5
- package/dist/server/app.js +3 -3
- package/dist/server/app.js.map +1 -1
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +1 -1
- package/dist/server/rest/auth.d.ts +1 -1
- package/dist/server/rest/auth.js +3 -3
- package/dist/server/rest/auth.js.map +1 -1
- package/dist/server/rest/context.d.ts +2 -2
- package/dist/server/rest/forward.d.ts +2 -2
- package/dist/server/session/store.d.ts +3 -3
- package/dist/server/session/store.js +4 -4
- package/dist/server/session/store.js.map +1 -1
- package/dist/server/stub-client/scenarios.js +8 -8
- package/dist/server/stub-client/scenarios.js.map +1 -1
- package/dist/server/types.d.ts +11 -11
- package/dist/server/types.js +9 -9
- package/dist/server/types.js.map +1 -1
- package/dist/server/ws/hub.d.ts +8 -8
- package/dist/server/ws/hub.js +13 -13
- package/dist/server/ws/hub.js.map +1 -1
- package/dist/server/ws/rpc.d.ts +3 -3
- package/dist/server/ws/rpc.js +4 -4
- package/dist/server/ws/rpc.js.map +1 -1
- package/dist/transport/index.d.ts +1 -1
- package/dist/transport/index.js +3 -3
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/rest.js +1 -1
- package/dist/transport/rest.js.map +1 -1
- package/docs/INSTALL.zh-CN.md +2 -3
- package/package.json +1 -1
- package/skills/uco-setup/SKILL.md +1 -1
- package/skills/unity-editor/references/diagnostics.md +24 -24
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/DependencyResolver/NuGetConfig.cs +132 -132
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/DependencyResolver/NuGetDependencyResolver.cs +237 -237
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/DependencyResolver/NuGetDownloader.cs +82 -82
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Resource/MenuItems.cs +247 -247
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Resource/ToolGroups.cs +153 -153
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/SystemTool/Skills.Create.SkillBody.cs +155 -155
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Console.GetLogs.cs +95 -95
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Docs.HttpFetcher.cs +139 -139
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Instance.ListAll.cs +72 -72
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/PathReadHelper.cs +106 -106
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Script.Validate.cs +252 -252
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Tests/TestResultCollector.cs +537 -537
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Tests.cs +400 -400
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Branding/ProductInfo.cs +62 -62
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/CopilotServerManager.cs +1034 -1034
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Skills/Skill_InitialSetup.cs +197 -197
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Startup.Editor.cs +201 -201
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Startup.cs +67 -67
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Components/ExtensionPanel.cs +379 -379
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/MenuItems.cs +72 -72
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/UnityCopilotProjectSettingsProvider.cs +64 -64
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/CopilotListWindowBase.cs +393 -393
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/CopilotWindowBase.cs +113 -113
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.Connection.cs +3 -3
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.CopilotFeatures.cs +195 -195
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.CopilotServer.cs +372 -372
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.CreateGUI.cs +354 -354
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.cs +78 -78
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowInitializer.cs +47 -47
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/SerializationCheckWindow.cs +190 -190
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UnityCopilotPluginEditor.Build.cs +91 -91
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UnityCopilotPluginEditor.Config.cs +298 -298
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UnityCopilotPluginEditor.Static.cs +296 -296
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UnityCopilotPluginEditor.cs +69 -69
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/PackageUtils.cs +168 -168
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/PrefsKeyMigration.cs +119 -119
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/SafeDefaultsGuard.cs +180 -180
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/ScriptUtils.cs +229 -229
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/ToolsManifestGenerator.cs +200 -200
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/UnityAuthoringAdapters.cs +1467 -1467
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/UnityAuthoringSafetyReloadGuard.cs +65 -65
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/UnityCopilotUpdateProjectSettings.cs +66 -66
- package/vendor/plugin/com.atelierai.unity.copilot/Plugins/ReflectorNet.dll +0 -0
- package/vendor/plugin/com.atelierai.unity.copilot/Plugins/Uco.Framework.Common.dll +0 -0
- package/vendor/plugin/com.atelierai.unity.copilot/Plugins/Uco.Framework.dll +0 -0
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Converter/Json/Structures/EntityIdConverter.cs +120 -120
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Data/GameObjectMetadata.cs +110 -110
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Data/GameObjectMetadata.pre-Unity.6.5.cs +110 -110
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Unity/Logs/FileLogStorage.cs +547 -547
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.Build.cs +243 -243
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.Config.cs +175 -175
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.cs +295 -295
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPluginBuilder.cs +105 -105
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPluginRuntime.Static.cs +155 -155
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPluginRuntime.cs +59 -59
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Utils/EnvironmentUtils.cs +368 -368
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/AtomicApi/AtomicApiTestFixtures.cs +99 -99
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/AtomicApi/TryModifyAtTests.cs +227 -227
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/AuthoringSafetyPilotTests.cs +1050 -1050
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/DependencyResolver/NuGetLegacyMigrationTests.cs +304 -304
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Environment/EnvironmentUtilsTests.cs +4 -4
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/BlacklistTypeTests.cs +416 -416
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataFieldScriptableObjectPopulationTests.cs +172 -172
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataFieldScriptableObjectPopulationTests.pre-Unity.6.5.cs +169 -169
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPopulationTests.cs +182 -182
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPopulationTests.pre-Unity.6.5.cs +179 -179
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPropertyPopulationTests.cs +175 -175
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPropertyPopulationTests.pre-Unity.6.5.cs +174 -174
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPropertyScriptableObjectPopulationTests.cs +171 -171
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPropertyScriptableObjectPopulationTests.pre-Unity.6.5.cs +170 -170
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsCreateFolderTests.cs +243 -243
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsMaterialTests.cs +101 -101
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.cs +348 -348
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.pre-Unity.6.5.cs +348 -348
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsShaderTests.cs +194 -194
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/PathBasedToolTests.cs +573 -573
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/PathBasedToolTests.pre-Unity.6.5.cs +513 -513
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Screenshot/ScreenshotCameraTests.cs +154 -154
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Screenshot/ScreenshotCameraTests.pre-Unity.6.5.cs +154 -154
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Screenshot/ScreenshotGameViewTests.cs +164 -164
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Screenshot/ScreenshotSceneViewTests.cs +155 -155
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/ToolParameterTests.cs +56 -56
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/ToolThreadSafetyTests.cs +651 -651
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/ToolThreadSafetyTests.pre-Unity.6.5.cs +651 -651
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ToolBatchExecutionIntegrationTests.cs +407 -407
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/{McpPluginTests.cs → UcoPluginTests.cs} +105 -105
- package/vendor/plugin/com.atelierai.unity.copilot/package.json +1 -1
- package/dist/commands/devops/login.d.ts +0 -2
- package/dist/commands/devops/login.js +0 -29
- package/dist/commands/devops/login.js.map +0 -1
- package/dist/commands/devops/setup-mcp.d.ts +0 -2
- package/dist/commands/devops/setup-mcp.js +0 -41
- package/dist/commands/devops/setup-mcp.js.map +0 -1
- package/dist/devops/commands-upstream/bootstrap-local.d.ts +0 -17
- package/dist/devops/commands-upstream/bootstrap-local.js +0 -87
- package/dist/devops/commands-upstream/bootstrap-local.js.map +0 -1
- package/dist/devops/commands-upstream/close.d.ts +0 -57
- package/dist/devops/commands-upstream/close.js +0 -188
- package/dist/devops/commands-upstream/close.js.map +0 -1
- package/dist/devops/commands-upstream/configure.d.ts +0 -2
- package/dist/devops/commands-upstream/configure.js +0 -87
- package/dist/devops/commands-upstream/configure.js.map +0 -1
- package/dist/devops/commands-upstream/create-project.d.ts +0 -2
- package/dist/devops/commands-upstream/create-project.js +0 -43
- package/dist/devops/commands-upstream/create-project.js.map +0 -1
- package/dist/devops/commands-upstream/install-plugin.d.ts +0 -2
- package/dist/devops/commands-upstream/install-plugin.js +0 -64
- package/dist/devops/commands-upstream/install-plugin.js.map +0 -1
- package/dist/devops/commands-upstream/install-unity.d.ts +0 -2
- package/dist/devops/commands-upstream/install-unity.js +0 -72
- package/dist/devops/commands-upstream/install-unity.js.map +0 -1
- package/dist/devops/commands-upstream/login.d.ts +0 -2
- package/dist/devops/commands-upstream/login.js +0 -33
- package/dist/devops/commands-upstream/login.js.map +0 -1
- package/dist/devops/commands-upstream/open.d.ts +0 -32
- package/dist/devops/commands-upstream/open.js +0 -282
- package/dist/devops/commands-upstream/open.js.map +0 -1
- package/dist/devops/commands-upstream/remove-plugin.d.ts +0 -2
- package/dist/devops/commands-upstream/remove-plugin.js +0 -41
- package/dist/devops/commands-upstream/remove-plugin.js.map +0 -1
- package/dist/devops/commands-upstream/run-system-tool.d.ts +0 -1
- package/dist/devops/commands-upstream/run-system-tool.js +0 -13
- package/dist/devops/commands-upstream/run-system-tool.js.map +0 -1
- package/dist/devops/commands-upstream/run-tool-builder.d.ts +0 -25
- package/dist/devops/commands-upstream/run-tool-builder.js +0 -125
- package/dist/devops/commands-upstream/run-tool-builder.js.map +0 -1
- package/dist/devops/commands-upstream/run-tool.d.ts +0 -1
- package/dist/devops/commands-upstream/run-tool.js +0 -13
- package/dist/devops/commands-upstream/run-tool.js.map +0 -1
- package/dist/devops/commands-upstream/setup-mcp.d.ts +0 -2
- package/dist/devops/commands-upstream/setup-mcp.js +0 -68
- package/dist/devops/commands-upstream/setup-mcp.js.map +0 -1
- package/dist/devops/commands-upstream/setup-skills.d.ts +0 -2
- package/dist/devops/commands-upstream/setup-skills.js +0 -167
- package/dist/devops/commands-upstream/setup-skills.js.map +0 -1
- package/dist/devops/commands-upstream/status.d.ts +0 -2
- package/dist/devops/commands-upstream/status.js +0 -87
- package/dist/devops/commands-upstream/status.js.map +0 -1
- package/dist/devops/commands-upstream/update.d.ts +0 -2
- package/dist/devops/commands-upstream/update.js +0 -77
- package/dist/devops/commands-upstream/update.js.map +0 -1
- package/dist/devops/commands-upstream/wait-for-ready.d.ts +0 -2
- package/dist/devops/commands-upstream/wait-for-ready.js +0 -93
- package/dist/devops/commands-upstream/wait-for-ready.js.map +0 -1
- package/dist/devops/lib/setup-mcp.d.ts +0 -35
- package/dist/devops/lib/setup-mcp.js +0 -177
- package/dist/devops/lib/setup-mcp.js.map +0 -1
- package/dist/devops/utils/cloud-login.d.ts +0 -7
- package/dist/devops/utils/cloud-login.js +0 -56
- package/dist/devops/utils/cloud-login.js.map +0 -1
- /package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/{McpPluginTests.cs.meta → UcoPluginTests.cs.meta} +0 -0
|
@@ -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,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;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { runSystemTool } from '../lib/run-tool.js';
|
|
2
|
-
import { buildRunToolCommand } from './run-tool-builder.js';
|
|
3
|
-
export const runSystemToolCommand = buildRunToolCommand({
|
|
4
|
-
name: 'run-system-tool',
|
|
5
|
-
description: 'Execute a system tool via the HTTP API (not exposed to MCP clients)',
|
|
6
|
-
argDescription: 'Name of the system tool to execute',
|
|
7
|
-
routePrefix: '/api/system-tools',
|
|
8
|
-
verboseLabel: 'System tool',
|
|
9
|
-
headingLabel: 'Run System Tool',
|
|
10
|
-
errorNoun: 'system tool',
|
|
11
|
-
invoke: runSystemTool,
|
|
12
|
-
});
|
|
13
|
-
//# sourceMappingURL=run-system-tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-system-tool.js","sourceRoot":"","sources":["../../../src/devops/commands-upstream/run-system-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;IACtD,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,qEAAqE;IAClF,cAAc,EAAE,oCAAoC;IACpD,WAAW,EAAE,mBAAmB;IAChC,YAAY,EAAE,aAAa;IAC3B,YAAY,EAAE,iBAAiB;IAC/B,SAAS,EAAE,aAAa;IACxB,MAAM,EAAE,aAAa;CACtB,CAAC,CAAC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import type { RunToolOptions, RunToolResult } from '../lib/types.js';
|
|
3
|
-
interface BuilderOptions {
|
|
4
|
-
/** CLI subcommand name, e.g. `'run-tool'`. */
|
|
5
|
-
name: string;
|
|
6
|
-
/** `description()` text for the commander command. */
|
|
7
|
-
description: string;
|
|
8
|
-
/** Description shown next to the `<tool-name>` argument. */
|
|
9
|
-
argDescription: string;
|
|
10
|
-
/** URL path prefix the lib function targets, e.g. `'/api/tools'`. */
|
|
11
|
-
routePrefix: string;
|
|
12
|
-
/** Verbose-log label, e.g. `'Tool'` or `'System tool'`. */
|
|
13
|
-
verboseLabel: string;
|
|
14
|
-
/** Heading printed by `ui.heading`, e.g. `'Run Tool'`. */
|
|
15
|
-
headingLabel: string;
|
|
16
|
-
/**
|
|
17
|
-
* Lower-case noun used in user-facing failure copy:
|
|
18
|
-
* `Failed to call <noun>:` and `<Capitalized> call timed out…`.
|
|
19
|
-
*/
|
|
20
|
-
errorNoun: string;
|
|
21
|
-
/** Library function — `runTool` or `runSystemTool`. */
|
|
22
|
-
invoke: (opts: RunToolOptions) => Promise<RunToolResult>;
|
|
23
|
-
}
|
|
24
|
-
export declare function buildRunToolCommand(cfg: BuilderOptions): Command;
|
|
25
|
-
export {};
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import * as ui from '../utils/ui.js';
|
|
3
|
-
import { verbose } from '../utils/ui.js';
|
|
4
|
-
import { resolveAndValidateProjectPath, resolveConnection } from '../utils/connection.js';
|
|
5
|
-
import { parseInput } from '../utils/input.js';
|
|
6
|
-
export function buildRunToolCommand(cfg) {
|
|
7
|
-
return new Command(cfg.name)
|
|
8
|
-
.description(cfg.description)
|
|
9
|
-
.argument('<tool-name>', cfg.argDescription)
|
|
10
|
-
.argument('[path]', 'Unity project path (used for config and auto port detection)')
|
|
11
|
-
.option('--path <path>', 'Unity project path (config and auto port detection)')
|
|
12
|
-
.option('--url <url>', 'Direct server URL override (bypasses config)')
|
|
13
|
-
.option('--token <token>', 'Bearer token override (bypasses config)')
|
|
14
|
-
.option('--input <json>', 'JSON string of tool arguments')
|
|
15
|
-
.option('--input-file <file>', 'Read JSON arguments from file')
|
|
16
|
-
.option('--raw', 'Output raw JSON (no formatting)')
|
|
17
|
-
.option('--timeout <ms>', 'Request timeout in milliseconds (default: 60000)', '60000')
|
|
18
|
-
.action(async (toolName, positionalPath, options) => {
|
|
19
|
-
// Validate --timeout first so a bad value short-circuits before
|
|
20
|
-
// we read --input-file or hit the network.
|
|
21
|
-
const timeoutMs = parseInt(options.timeout, 10);
|
|
22
|
-
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) {
|
|
23
|
-
ui.error(`Invalid --timeout value: "${options.timeout}". Must be a positive integer (milliseconds).`);
|
|
24
|
-
process.exit(1);
|
|
25
|
-
}
|
|
26
|
-
// Resolve path + connection up front so the heading and verbose
|
|
27
|
-
// output reflect the final endpoint before the HTTP call fires.
|
|
28
|
-
const projectPath = resolveAndValidateProjectPath(positionalPath, options);
|
|
29
|
-
const { url: baseUrl, token } = resolveConnection(projectPath, options);
|
|
30
|
-
const body = parseInput(options);
|
|
31
|
-
const endpoint = `${baseUrl}${cfg.routePrefix}/${encodeURIComponent(toolName)}`;
|
|
32
|
-
const authSource = options.token ? '--token flag' : 'config';
|
|
33
|
-
verbose(`${cfg.verboseLabel}: ${toolName}`);
|
|
34
|
-
verbose(`Endpoint: ${endpoint}`);
|
|
35
|
-
verbose(`Body: ${body}`);
|
|
36
|
-
if (token)
|
|
37
|
-
verbose(`Authorization header set (source: ${authSource})`);
|
|
38
|
-
if (!options.raw) {
|
|
39
|
-
ui.heading(cfg.headingLabel);
|
|
40
|
-
ui.label('Tool', toolName);
|
|
41
|
-
ui.label('URL', endpoint);
|
|
42
|
-
if (token)
|
|
43
|
-
ui.label('Auth', `from ${authSource}`);
|
|
44
|
-
ui.divider();
|
|
45
|
-
}
|
|
46
|
-
const spinner = options.raw ? null : ui.startSpinner(`Calling ${toolName}...`);
|
|
47
|
-
// The CLI already resolved url/token, so passing them explicitly
|
|
48
|
-
// makes the lib's resolver a no-op rather than re-reading config.
|
|
49
|
-
const result = await cfg.invoke({
|
|
50
|
-
toolName,
|
|
51
|
-
url: baseUrl,
|
|
52
|
-
...(token ? { token } : {}),
|
|
53
|
-
input: body,
|
|
54
|
-
timeoutMs,
|
|
55
|
-
});
|
|
56
|
-
if (result.kind === 'success') {
|
|
57
|
-
spinner?.success(`${toolName} completed`);
|
|
58
|
-
if (options.raw) {
|
|
59
|
-
process.stdout.write(stringifyForRaw(result.data));
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
ui.success('Response:');
|
|
63
|
-
console.log(typeof result.data === 'string'
|
|
64
|
-
? result.data
|
|
65
|
-
: JSON.stringify(result.data, null, 2));
|
|
66
|
-
}
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
spinner?.stop();
|
|
70
|
-
handleFailure(result, {
|
|
71
|
-
toolName,
|
|
72
|
-
endpoint,
|
|
73
|
-
raw: options.raw,
|
|
74
|
-
timeoutMs,
|
|
75
|
-
errorNoun: cfg.errorNoun,
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
function stringifyForRaw(data) {
|
|
80
|
-
if (typeof data === 'string')
|
|
81
|
-
return data;
|
|
82
|
-
if (data === undefined)
|
|
83
|
-
return '';
|
|
84
|
-
return JSON.stringify(data);
|
|
85
|
-
}
|
|
86
|
-
function handleFailure(failure, ctx) {
|
|
87
|
-
if (failure.reason === 'http-error') {
|
|
88
|
-
if (ctx.raw) {
|
|
89
|
-
process.stdout.write(stringifyForRaw(failure.data));
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
ui.error(`HTTP ${failure.httpStatus}: ${failure.message}`);
|
|
93
|
-
if (failure.data !== undefined) {
|
|
94
|
-
ui.info(typeof failure.data === 'string'
|
|
95
|
-
? failure.data
|
|
96
|
-
: JSON.stringify(failure.data, null, 2));
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
process.exit(1);
|
|
100
|
-
}
|
|
101
|
-
const message = buildFailureMessage(failure, ctx);
|
|
102
|
-
if (ctx.raw)
|
|
103
|
-
process.stderr.write(message + '\n');
|
|
104
|
-
else
|
|
105
|
-
ui.error(`Failed to call ${ctx.errorNoun}: ${message}`);
|
|
106
|
-
process.exit(1);
|
|
107
|
-
}
|
|
108
|
-
function buildFailureMessage(failure, ctx) {
|
|
109
|
-
switch (failure.reason) {
|
|
110
|
-
case 'timeout':
|
|
111
|
-
return `${capitalize(ctx.errorNoun)} call timed out after ${ctx.timeoutMs / 1000} seconds: ${ctx.toolName}`;
|
|
112
|
-
case 'connection-refused':
|
|
113
|
-
return `Connection refused at ${ctx.endpoint}. Is the MCP server running? Start Unity Editor with the MCP plugin first.`;
|
|
114
|
-
case 'connection-reset':
|
|
115
|
-
return `Connection was reset by the server at ${ctx.endpoint}. The server may have crashed or restarted.`;
|
|
116
|
-
case 'network-error':
|
|
117
|
-
return `Cannot reach ${ctx.endpoint}. Check your network connection and server URL.`;
|
|
118
|
-
default:
|
|
119
|
-
return failure.message;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
function capitalize(s) {
|
|
123
|
-
return s.length === 0 ? s : s.charAt(0).toUpperCase() + s.slice(1);
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=run-tool-builder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-tool-builder.js","sourceRoot":"","sources":["../../../src/devops/commands-upstream/run-tool-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const runToolCommand: import("commander").Command;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { runTool } from '../lib/run-tool.js';
|
|
2
|
-
import { buildRunToolCommand } from './run-tool-builder.js';
|
|
3
|
-
export const runToolCommand = buildRunToolCommand({
|
|
4
|
-
name: 'run-tool',
|
|
5
|
-
description: 'Execute an MCP tool via the HTTP API',
|
|
6
|
-
argDescription: 'Name of the MCP tool to execute',
|
|
7
|
-
routePrefix: '/api/tools',
|
|
8
|
-
verboseLabel: 'Tool',
|
|
9
|
-
headingLabel: 'Run Tool',
|
|
10
|
-
errorNoun: 'tool',
|
|
11
|
-
invoke: runTool,
|
|
12
|
-
});
|
|
13
|
-
//# sourceMappingURL=run-tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-tool.js","sourceRoot":"","sources":["../../../src/devops/commands-upstream/run-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,CAAC,MAAM,cAAc,GAAG,mBAAmB,CAAC;IAChD,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,sCAAsC;IACnD,cAAc,EAAE,iCAAiC;IACjD,WAAW,EAAE,YAAY;IACzB,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,UAAU;IACxB,SAAS,EAAE,MAAM;IACjB,MAAM,EAAE,OAAO;CAChB,CAAC,CAAC"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import * as ui from '../utils/ui.js';
|
|
3
|
-
import { verbose } from '../utils/ui.js';
|
|
4
|
-
import { getAgentById, getAgentIds, listAgentTable, MCP_SERVER_NAME, } from '../utils/agents.js';
|
|
5
|
-
import { setupMcp } from '../lib/setup-mcp.js';
|
|
6
|
-
function listAgents() {
|
|
7
|
-
listAgentTable('Available AI Agents', 'Config Path', (a) => a.configPathDisplay);
|
|
8
|
-
}
|
|
9
|
-
export const setupMcpCommand = new Command('setup-mcp')
|
|
10
|
-
.description('Write MCP config for an AI agent')
|
|
11
|
-
.argument('[agent-id]', 'Agent to configure (use --list to see all)')
|
|
12
|
-
.argument('[path]', 'Unity project path (defaults to cwd)')
|
|
13
|
-
.option('--transport <transport>', 'Transport method: stdio or http (default: http)', 'http')
|
|
14
|
-
.option('--url <url>', 'Server URL override (for http transport)')
|
|
15
|
-
.option('--token <token>', 'Auth token override')
|
|
16
|
-
.option('--list', 'List all available agent IDs')
|
|
17
|
-
.action(async (agentId, positionalPath, options) => {
|
|
18
|
-
if (options.list) {
|
|
19
|
-
listAgents();
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
if (!agentId) {
|
|
23
|
-
ui.error('Missing required argument: agent-id');
|
|
24
|
-
ui.info(`Available agent IDs: ${getAgentIds().join(', ')}`);
|
|
25
|
-
process.exit(1);
|
|
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.
|
|
32
|
-
const agent = getAgentById(agentId);
|
|
33
|
-
if (!agent) {
|
|
34
|
-
ui.error(`Unknown agent: "${agentId}"`);
|
|
35
|
-
ui.info(`Available agent IDs: ${getAgentIds().join(', ')}`);
|
|
36
|
-
process.exit(1);
|
|
37
|
-
}
|
|
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.kind === 'failure') {
|
|
48
|
-
spinner.error('Failed to write config');
|
|
49
|
-
ui.error(result.error.message);
|
|
50
|
-
process.exit(1);
|
|
51
|
-
}
|
|
52
|
-
// Narrowed: result.kind === 'success' below — `configPath` and
|
|
53
|
-
// `transport` are non-optional.
|
|
54
|
-
if (positionalPath) {
|
|
55
|
-
verbose(`Project path: ${positionalPath}`);
|
|
56
|
-
}
|
|
57
|
-
verbose(`Config file: ${result.configPath}`);
|
|
58
|
-
spinner.success(`${agent.name} configured successfully`);
|
|
59
|
-
console.log('');
|
|
60
|
-
ui.label('Config file', result.configPath);
|
|
61
|
-
ui.label('Transport', result.transport);
|
|
62
|
-
ui.label('Server name', MCP_SERVER_NAME);
|
|
63
|
-
for (const warning of result.warnings) {
|
|
64
|
-
console.log('');
|
|
65
|
-
ui.warn(warning);
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
//# sourceMappingURL=setup-mcp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup-mcp.js","sourceRoot":"","sources":["../../../src/devops/commands-upstream/setup-mcp.ts"],"names":[],"mappings":"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"}
|