@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
package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/ToolsManifestGenerator.cs
CHANGED
|
@@ -1,200 +1,200 @@
|
|
|
1
|
-
/*
|
|
2
|
-
┌──────────────────────────────────────────────────────────────────┐
|
|
3
|
-
│ Author: Ivan Murzak (https://github.com/IvanMurzak) │
|
|
4
|
-
│ Repository: GitHub (https://github.com/IvanMurzak/Unity-MCP) │
|
|
5
|
-
│ Copyright (c) 2025 Ivan Murzak │
|
|
6
|
-
│ Licensed under the Apache License, Version 2.0. │
|
|
7
|
-
│ See the LICENSE file in the project root for more information. │
|
|
8
|
-
└──────────────────────────────────────────────────────────────────┘
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
#nullable enable
|
|
12
|
-
#if UNITY_EDITOR
|
|
13
|
-
using System;
|
|
14
|
-
using System.Collections.Generic;
|
|
15
|
-
using System.IO;
|
|
16
|
-
using System.Linq;
|
|
17
|
-
using System.Reflection;
|
|
18
|
-
using System.Text;
|
|
19
|
-
using System.Text.Json.Nodes;
|
|
20
|
-
using com.AtelierAI.Unity.Copilot.Editor.Branding;
|
|
21
|
-
using com.AtelierAI.Uco.Framework;
|
|
22
|
-
using UnityEditor;
|
|
23
|
-
using UnityEngine;
|
|
24
|
-
|
|
25
|
-
namespace com.AtelierAI.Unity.Copilot.Editor.Utils
|
|
26
|
-
{
|
|
27
|
-
/// <summary>
|
|
28
|
-
/// Generates <c>tools-manifest.json</c> — a static snapshot of the plugin's
|
|
29
|
-
/// tool catalog in the SAME shape as the server's <c>GET /api/tools</c>
|
|
30
|
-
/// response. The manifest ships inside the package so that <c>cocli init</c>
|
|
31
|
-
/// can generate eager skill reference docs offline (no running Unity Editor
|
|
32
|
-
/// or
|
|
33
|
-
/// <para>
|
|
34
|
-
/// Each entry contains <c>name</c>, <c>enabled</c>, <c>title</c>,
|
|
35
|
-
/// <c>description</c>, <c>inputSchema</c>, optionally <c>outputSchema</c>,
|
|
36
|
-
/// and the four nullable safety-hint members
|
|
37
|
-
/// — exactly matching <see cref="com.AtelierAI.Uco.Framework.Server.Api.DirectToolCallEndpoints"/>.
|
|
38
|
-
/// The <c>enabled</c> field reflects the DEFAULT state from
|
|
39
|
-
/// <see cref="UcoToolAttribute"/> (not per-project runtime overrides)
|
|
40
|
-
/// so the shipped manifest is deterministic across projects.
|
|
41
|
-
/// </para>
|
|
42
|
-
/// <para>
|
|
43
|
-
/// Menu: <b>Tools / Unity Copilot / Generate Tools Manifest</b>.
|
|
44
|
-
/// Requires an embedded or local-copy package installation (writes into
|
|
45
|
-
/// <c>Packages/com.atelierai.unity.copilot/</c>).
|
|
46
|
-
/// </para>
|
|
47
|
-
/// </summary>
|
|
48
|
-
public static class ToolsManifestGenerator
|
|
49
|
-
{
|
|
50
|
-
public const string ManifestFileName = "tools-manifest.json";
|
|
51
|
-
static readonly HashSet<string> ExcludedSiblingReleaseTools = new(StringComparer.Ordinal)
|
|
52
|
-
{
|
|
53
|
-
"editor-application-request-close",
|
|
54
|
-
"type-list-members"
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
[MenuItem(ProductInfo.ToolsMenuRoot + "/Generate Tools Manifest", priority = 2100)]
|
|
58
|
-
public static void GenerateManifest()
|
|
59
|
-
{
|
|
60
|
-
// Ensure the plugin is built — it normally is via [InitializeOnLoad].
|
|
61
|
-
var plugin = UnityCopilotPluginEditor.CurrentPlugin;
|
|
62
|
-
if (plugin == null)
|
|
63
|
-
{
|
|
64
|
-
UnityCopilotPluginEditor.Instance.
|
|
65
|
-
plugin = UnityCopilotPluginEditor.CurrentPlugin;
|
|
66
|
-
}
|
|
67
|
-
if (plugin == null)
|
|
68
|
-
{
|
|
69
|
-
Debug.LogError(
|
|
70
|
-
$"{ProductInfo.LogPrefix} Failed to build
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
var toolManager = plugin.UcoManager?.ToolManager;
|
|
75
|
-
if (toolManager == null)
|
|
76
|
-
{
|
|
77
|
-
Debug.LogError(
|
|
78
|
-
$"{ProductInfo.LogPrefix} ToolManager is null; cannot generate tools manifest.");
|
|
79
|
-
return;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
var packageRoot = ResolvePackageRoot();
|
|
83
|
-
if (!Directory.Exists(packageRoot))
|
|
84
|
-
{
|
|
85
|
-
Debug.LogError(
|
|
86
|
-
$"{ProductInfo.LogPrefix} Package directory not found: {packageRoot}\n" +
|
|
87
|
-
"The plugin must be installed as an embedded or local-copy package.");
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
var manifestPath = Path.Combine(packageRoot, ManifestFileName);
|
|
92
|
-
var toolCount = GenerateManifest(toolManager.GetAllTools(), manifestPath);
|
|
93
|
-
|
|
94
|
-
AssetDatabase.Refresh();
|
|
95
|
-
Debug.Log(
|
|
96
|
-
$"{ProductInfo.LogPrefix} Tools manifest generated: {manifestPath} ({toolCount} tools)");
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
[MenuItem(ProductInfo.ToolsMenuRoot + "/Generate Tools Manifest", validate = true)]
|
|
100
|
-
public static bool ValidateGenerateManifest()
|
|
101
|
-
{
|
|
102
|
-
// Only show the menu when the editor singleton is available.
|
|
103
|
-
return UnityCopilotPluginEditor.HasInstance;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
internal static JsonArray BuildToolsArray(
|
|
107
|
-
IEnumerable<IRunTool> tools,
|
|
108
|
-
bool controlledRelease = false)
|
|
109
|
-
{
|
|
110
|
-
var toolsArray = new JsonArray();
|
|
111
|
-
foreach (var tool in tools
|
|
112
|
-
.Where(tool => !controlledRelease
|
|
113
|
-
|| !ExcludedSiblingReleaseTools.Contains(tool.Name))
|
|
114
|
-
.OrderBy(t => t.Name, StringComparer.Ordinal))
|
|
115
|
-
{
|
|
116
|
-
var entry = new JsonObject
|
|
117
|
-
{
|
|
118
|
-
["name"] = tool.Name,
|
|
119
|
-
["enabled"] = ResolveDefaultEnabled(tool),
|
|
120
|
-
["readOnlyHint"] = JsonValue.Create(tool.ReadOnlyHint),
|
|
121
|
-
["destructiveHint"] = JsonValue.Create(tool.DestructiveHint),
|
|
122
|
-
["idempotentHint"] = JsonValue.Create(tool.IdempotentHint),
|
|
123
|
-
["openWorldHint"] = JsonValue.Create(tool.OpenWorldHint),
|
|
124
|
-
["executionAffinity"] = (tool.ExecutionScheduling?.ExecutionAffinity
|
|
125
|
-
?? ToolExecutionAffinity.MainThread).ToWireValue(),
|
|
126
|
-
["threadSafeRead"] = tool.ExecutionScheduling?.ThreadSafeRead == true,
|
|
127
|
-
};
|
|
128
|
-
if (tool.Title != null)
|
|
129
|
-
entry["title"] = tool.Title;
|
|
130
|
-
if (tool.Description != null)
|
|
131
|
-
entry["description"] = tool.Description;
|
|
132
|
-
if (tool.InputSchema != null)
|
|
133
|
-
entry["inputSchema"] = JsonNode.Parse(tool.InputSchema.ToJsonString());
|
|
134
|
-
if (tool.OutputSchema != null)
|
|
135
|
-
entry["outputSchema"] = JsonNode.Parse(tool.OutputSchema.ToJsonString());
|
|
136
|
-
|
|
137
|
-
toolsArray.Add(entry);
|
|
138
|
-
}
|
|
139
|
-
return toolsArray;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
internal static int GenerateManifest(IEnumerable<IRunTool> tools, string manifestPath)
|
|
143
|
-
{
|
|
144
|
-
var toolsArray = BuildToolsArray(tools, controlledRelease: true);
|
|
145
|
-
var jsonOptions = new System.Text.Json.JsonSerializerOptions { WriteIndented = true };
|
|
146
|
-
File.WriteAllText(
|
|
147
|
-
manifestPath,
|
|
148
|
-
toolsArray.ToJsonString(jsonOptions) + "\n",
|
|
149
|
-
new UTF8Encoding(encoderShouldEmitUTF8Identifier: false));
|
|
150
|
-
return toolsArray.Count;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/// <summary>
|
|
154
|
-
/// Resolves the DEFAULT enabled state from the <c>[UcoTool]</c>
|
|
155
|
-
/// attribute — NOT the runtime-overridden state. This ensures the
|
|
156
|
-
/// shipped manifest reflects plugin defaults rather than per-project
|
|
157
|
-
/// config overrides applied by <c>
|
|
158
|
-
/// </summary>
|
|
159
|
-
static bool ResolveDefaultEnabled(IRunTool tool)
|
|
160
|
-
{
|
|
161
|
-
// IRunTool.Method exposes the underlying MethodInfo.
|
|
162
|
-
var attr = tool.Method?.GetCustomAttribute<UcoToolAttribute>();
|
|
163
|
-
// EnabledValue returns null when not explicitly set → default is true.
|
|
164
|
-
return attr?.EnabledValue ?? true;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/// <summary>
|
|
168
|
-
/// Resolves the on-disk root directory of this package. Checks for
|
|
169
|
-
/// an embedded/local-copy package first (<c>Packages/<id></c>),
|
|
170
|
-
/// then falls back to the Library/PackageCache.
|
|
171
|
-
/// </summary>
|
|
172
|
-
static string ResolvePackageRoot()
|
|
173
|
-
{
|
|
174
|
-
var projectRoot = Path.GetDirectoryName(Application.dataPath);
|
|
175
|
-
if (string.IsNullOrEmpty(projectRoot))
|
|
176
|
-
{
|
|
177
|
-
Debug.LogError($"{ProductInfo.LogPrefix} Could not determine project root.");
|
|
178
|
-
return ManifestFileName;
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
var embeddedPath = Path.Combine(projectRoot, "Packages", ProductInfo.PackageId);
|
|
182
|
-
if (Directory.Exists(embeddedPath))
|
|
183
|
-
return embeddedPath;
|
|
184
|
-
|
|
185
|
-
// Package cache layout: Library/PackageCache/<id>@<version>/
|
|
186
|
-
var cachePath = Path.Combine(projectRoot, "Library", "PackageCache");
|
|
187
|
-
if (Directory.Exists(cachePath))
|
|
188
|
-
{
|
|
189
|
-
var matches = Directory.GetDirectories(cachePath, ProductInfo.PackageId + "*");
|
|
190
|
-
if (matches.Length > 0)
|
|
191
|
-
return matches[0];
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
// Default: return the embedded path even if it doesn't exist yet
|
|
195
|
-
// (the caller will error with a clear message).
|
|
196
|
-
return embeddedPath;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
#endif
|
|
1
|
+
/*
|
|
2
|
+
┌──────────────────────────────────────────────────────────────────┐
|
|
3
|
+
│ Author: Ivan Murzak (https://github.com/IvanMurzak) │
|
|
4
|
+
│ Repository: GitHub (https://github.com/IvanMurzak/Unity-MCP) │
|
|
5
|
+
│ Copyright (c) 2025 Ivan Murzak │
|
|
6
|
+
│ Licensed under the Apache License, Version 2.0. │
|
|
7
|
+
│ See the LICENSE file in the project root for more information. │
|
|
8
|
+
└──────────────────────────────────────────────────────────────────┘
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#nullable enable
|
|
12
|
+
#if UNITY_EDITOR
|
|
13
|
+
using System;
|
|
14
|
+
using System.Collections.Generic;
|
|
15
|
+
using System.IO;
|
|
16
|
+
using System.Linq;
|
|
17
|
+
using System.Reflection;
|
|
18
|
+
using System.Text;
|
|
19
|
+
using System.Text.Json.Nodes;
|
|
20
|
+
using com.AtelierAI.Unity.Copilot.Editor.Branding;
|
|
21
|
+
using com.AtelierAI.Uco.Framework;
|
|
22
|
+
using UnityEditor;
|
|
23
|
+
using UnityEngine;
|
|
24
|
+
|
|
25
|
+
namespace com.AtelierAI.Unity.Copilot.Editor.Utils
|
|
26
|
+
{
|
|
27
|
+
/// <summary>
|
|
28
|
+
/// Generates <c>tools-manifest.json</c> — a static snapshot of the plugin's
|
|
29
|
+
/// tool catalog in the SAME shape as the server's <c>GET /api/tools</c>
|
|
30
|
+
/// response. The manifest ships inside the package so that <c>cocli init</c>
|
|
31
|
+
/// can generate eager skill reference docs offline (no running Unity Editor
|
|
32
|
+
/// or Uco server required).
|
|
33
|
+
/// <para>
|
|
34
|
+
/// Each entry contains <c>name</c>, <c>enabled</c>, <c>title</c>,
|
|
35
|
+
/// <c>description</c>, <c>inputSchema</c>, optionally <c>outputSchema</c>,
|
|
36
|
+
/// and the four nullable safety-hint members
|
|
37
|
+
/// — exactly matching <see cref="com.AtelierAI.Uco.Framework.Server.Api.DirectToolCallEndpoints"/>.
|
|
38
|
+
/// The <c>enabled</c> field reflects the DEFAULT state from
|
|
39
|
+
/// <see cref="UcoToolAttribute"/> (not per-project runtime overrides)
|
|
40
|
+
/// so the shipped manifest is deterministic across projects.
|
|
41
|
+
/// </para>
|
|
42
|
+
/// <para>
|
|
43
|
+
/// Menu: <b>Tools / Unity Copilot / Generate Tools Manifest</b>.
|
|
44
|
+
/// Requires an embedded or local-copy package installation (writes into
|
|
45
|
+
/// <c>Packages/com.atelierai.unity.copilot/</c>).
|
|
46
|
+
/// </para>
|
|
47
|
+
/// </summary>
|
|
48
|
+
public static class ToolsManifestGenerator
|
|
49
|
+
{
|
|
50
|
+
public const string ManifestFileName = "tools-manifest.json";
|
|
51
|
+
static readonly HashSet<string> ExcludedSiblingReleaseTools = new(StringComparer.Ordinal)
|
|
52
|
+
{
|
|
53
|
+
"editor-application-request-close",
|
|
54
|
+
"type-list-members"
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
[MenuItem(ProductInfo.ToolsMenuRoot + "/Generate Tools Manifest", priority = 2100)]
|
|
58
|
+
public static void GenerateManifest()
|
|
59
|
+
{
|
|
60
|
+
// Ensure the plugin is built — it normally is via [InitializeOnLoad].
|
|
61
|
+
var plugin = UnityCopilotPluginEditor.CurrentPlugin;
|
|
62
|
+
if (plugin == null)
|
|
63
|
+
{
|
|
64
|
+
UnityCopilotPluginEditor.Instance.BuildUcoPluginIfNeeded();
|
|
65
|
+
plugin = UnityCopilotPluginEditor.CurrentPlugin;
|
|
66
|
+
}
|
|
67
|
+
if (plugin == null)
|
|
68
|
+
{
|
|
69
|
+
Debug.LogError(
|
|
70
|
+
$"{ProductInfo.LogPrefix} Failed to build Uco plugin; cannot generate tools manifest.");
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
var toolManager = plugin.UcoManager?.ToolManager;
|
|
75
|
+
if (toolManager == null)
|
|
76
|
+
{
|
|
77
|
+
Debug.LogError(
|
|
78
|
+
$"{ProductInfo.LogPrefix} ToolManager is null; cannot generate tools manifest.");
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
var packageRoot = ResolvePackageRoot();
|
|
83
|
+
if (!Directory.Exists(packageRoot))
|
|
84
|
+
{
|
|
85
|
+
Debug.LogError(
|
|
86
|
+
$"{ProductInfo.LogPrefix} Package directory not found: {packageRoot}\n" +
|
|
87
|
+
"The plugin must be installed as an embedded or local-copy package.");
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
var manifestPath = Path.Combine(packageRoot, ManifestFileName);
|
|
92
|
+
var toolCount = GenerateManifest(toolManager.GetAllTools(), manifestPath);
|
|
93
|
+
|
|
94
|
+
AssetDatabase.Refresh();
|
|
95
|
+
Debug.Log(
|
|
96
|
+
$"{ProductInfo.LogPrefix} Tools manifest generated: {manifestPath} ({toolCount} tools)");
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
[MenuItem(ProductInfo.ToolsMenuRoot + "/Generate Tools Manifest", validate = true)]
|
|
100
|
+
public static bool ValidateGenerateManifest()
|
|
101
|
+
{
|
|
102
|
+
// Only show the menu when the editor singleton is available.
|
|
103
|
+
return UnityCopilotPluginEditor.HasInstance;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
internal static JsonArray BuildToolsArray(
|
|
107
|
+
IEnumerable<IRunTool> tools,
|
|
108
|
+
bool controlledRelease = false)
|
|
109
|
+
{
|
|
110
|
+
var toolsArray = new JsonArray();
|
|
111
|
+
foreach (var tool in tools
|
|
112
|
+
.Where(tool => !controlledRelease
|
|
113
|
+
|| !ExcludedSiblingReleaseTools.Contains(tool.Name))
|
|
114
|
+
.OrderBy(t => t.Name, StringComparer.Ordinal))
|
|
115
|
+
{
|
|
116
|
+
var entry = new JsonObject
|
|
117
|
+
{
|
|
118
|
+
["name"] = tool.Name,
|
|
119
|
+
["enabled"] = ResolveDefaultEnabled(tool),
|
|
120
|
+
["readOnlyHint"] = JsonValue.Create(tool.ReadOnlyHint),
|
|
121
|
+
["destructiveHint"] = JsonValue.Create(tool.DestructiveHint),
|
|
122
|
+
["idempotentHint"] = JsonValue.Create(tool.IdempotentHint),
|
|
123
|
+
["openWorldHint"] = JsonValue.Create(tool.OpenWorldHint),
|
|
124
|
+
["executionAffinity"] = (tool.ExecutionScheduling?.ExecutionAffinity
|
|
125
|
+
?? ToolExecutionAffinity.MainThread).ToWireValue(),
|
|
126
|
+
["threadSafeRead"] = tool.ExecutionScheduling?.ThreadSafeRead == true,
|
|
127
|
+
};
|
|
128
|
+
if (tool.Title != null)
|
|
129
|
+
entry["title"] = tool.Title;
|
|
130
|
+
if (tool.Description != null)
|
|
131
|
+
entry["description"] = tool.Description;
|
|
132
|
+
if (tool.InputSchema != null)
|
|
133
|
+
entry["inputSchema"] = JsonNode.Parse(tool.InputSchema.ToJsonString());
|
|
134
|
+
if (tool.OutputSchema != null)
|
|
135
|
+
entry["outputSchema"] = JsonNode.Parse(tool.OutputSchema.ToJsonString());
|
|
136
|
+
|
|
137
|
+
toolsArray.Add(entry);
|
|
138
|
+
}
|
|
139
|
+
return toolsArray;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
internal static int GenerateManifest(IEnumerable<IRunTool> tools, string manifestPath)
|
|
143
|
+
{
|
|
144
|
+
var toolsArray = BuildToolsArray(tools, controlledRelease: true);
|
|
145
|
+
var jsonOptions = new System.Text.Json.JsonSerializerOptions { WriteIndented = true };
|
|
146
|
+
File.WriteAllText(
|
|
147
|
+
manifestPath,
|
|
148
|
+
toolsArray.ToJsonString(jsonOptions) + "\n",
|
|
149
|
+
new UTF8Encoding(encoderShouldEmitUTF8Identifier: false));
|
|
150
|
+
return toolsArray.Count;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/// <summary>
|
|
154
|
+
/// Resolves the DEFAULT enabled state from the <c>[UcoTool]</c>
|
|
155
|
+
/// attribute — NOT the runtime-overridden state. This ensures the
|
|
156
|
+
/// shipped manifest reflects plugin defaults rather than per-project
|
|
157
|
+
/// config overrides applied by <c>ApplyConfigToUcoPlugin</c>.
|
|
158
|
+
/// </summary>
|
|
159
|
+
static bool ResolveDefaultEnabled(IRunTool tool)
|
|
160
|
+
{
|
|
161
|
+
// IRunTool.Method exposes the underlying MethodInfo.
|
|
162
|
+
var attr = tool.Method?.GetCustomAttribute<UcoToolAttribute>();
|
|
163
|
+
// EnabledValue returns null when not explicitly set → default is true.
|
|
164
|
+
return attr?.EnabledValue ?? true;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/// <summary>
|
|
168
|
+
/// Resolves the on-disk root directory of this package. Checks for
|
|
169
|
+
/// an embedded/local-copy package first (<c>Packages/<id></c>),
|
|
170
|
+
/// then falls back to the Library/PackageCache.
|
|
171
|
+
/// </summary>
|
|
172
|
+
static string ResolvePackageRoot()
|
|
173
|
+
{
|
|
174
|
+
var projectRoot = Path.GetDirectoryName(Application.dataPath);
|
|
175
|
+
if (string.IsNullOrEmpty(projectRoot))
|
|
176
|
+
{
|
|
177
|
+
Debug.LogError($"{ProductInfo.LogPrefix} Could not determine project root.");
|
|
178
|
+
return ManifestFileName;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
var embeddedPath = Path.Combine(projectRoot, "Packages", ProductInfo.PackageId);
|
|
182
|
+
if (Directory.Exists(embeddedPath))
|
|
183
|
+
return embeddedPath;
|
|
184
|
+
|
|
185
|
+
// Package cache layout: Library/PackageCache/<id>@<version>/
|
|
186
|
+
var cachePath = Path.Combine(projectRoot, "Library", "PackageCache");
|
|
187
|
+
if (Directory.Exists(cachePath))
|
|
188
|
+
{
|
|
189
|
+
var matches = Directory.GetDirectories(cachePath, ProductInfo.PackageId + "*");
|
|
190
|
+
if (matches.Length > 0)
|
|
191
|
+
return matches[0];
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// Default: return the embedded path even if it doesn't exist yet
|
|
195
|
+
// (the caller will error with a clear message).
|
|
196
|
+
return embeddedPath;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
#endif
|