@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,243 +1,243 @@
|
|
|
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
|
-
using System;
|
|
13
|
-
using System.Collections.Generic;
|
|
14
|
-
using System.Linq;
|
|
15
|
-
using com.AtelierAI.Uco.Framework;
|
|
16
|
-
using com.IvanMurzak.ReflectorNet;
|
|
17
|
-
using com.IvanMurzak.ReflectorNet.Utils;
|
|
18
|
-
using com.AtelierAI.Unity.Copilot.Runtime.Utils;
|
|
19
|
-
using com.AtelierAI.Unity.Copilot.Utils;
|
|
20
|
-
using Microsoft.Extensions.Logging;
|
|
21
|
-
using R3;
|
|
22
|
-
using UnityEngine;
|
|
23
|
-
using ILogger = Microsoft.Extensions.Logging.ILogger;
|
|
24
|
-
|
|
25
|
-
namespace com.AtelierAI.Unity.Copilot
|
|
26
|
-
{
|
|
27
|
-
using Consts = com.AtelierAI.Uco.Framework.Common.Consts;
|
|
28
|
-
using MicrosoftLogLevel = Microsoft.Extensions.Logging.LogLevel;
|
|
29
|
-
|
|
30
|
-
public partial class UnityCopilotPlugin
|
|
31
|
-
{
|
|
32
|
-
static readonly ILogger _logger = UnityLoggerFactory.LoggerFactory.CreateLogger<UnityCopilotPlugin>();
|
|
33
|
-
|
|
34
|
-
protected sealed class CopilotPluginSlot : IDisposable
|
|
35
|
-
{
|
|
36
|
-
private readonly object _mutex = new();
|
|
37
|
-
private IUcoPlugin? _instance;
|
|
38
|
-
|
|
39
|
-
public IUcoPlugin? Instance
|
|
40
|
-
{
|
|
41
|
-
get { lock (_mutex) { return _instance; } }
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
public bool HasInstance
|
|
45
|
-
{
|
|
46
|
-
get { lock (_mutex) { return _instance != null; } }
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// Calls factory inside lock — guarantees build-once under concurrent access.
|
|
50
|
-
// Returns the built instance if it was just created, null if already built.
|
|
51
|
-
public IUcoPlugin? BuildOnce(Func<IUcoPlugin> factory)
|
|
52
|
-
{
|
|
53
|
-
lock (_mutex)
|
|
54
|
-
{
|
|
55
|
-
if (_instance != null) return null;
|
|
56
|
-
_instance = factory();
|
|
57
|
-
return _instance;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
// Disposes old instance (if any), sets new one, returns it.
|
|
62
|
-
public IUcoPlugin Set(IUcoPlugin plugin)
|
|
63
|
-
{
|
|
64
|
-
lock (_mutex)
|
|
65
|
-
{
|
|
66
|
-
_instance?.Dispose();
|
|
67
|
-
_instance = plugin;
|
|
68
|
-
return plugin;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// Atomically returns and clears the instance without disposing it.
|
|
73
|
-
// Used by callers that need to control when/how disposal happens (e.g. background thread).
|
|
74
|
-
public IUcoPlugin? TakeInstance()
|
|
75
|
-
{
|
|
76
|
-
lock (_mutex)
|
|
77
|
-
{
|
|
78
|
-
var instance = _instance;
|
|
79
|
-
_instance = null;
|
|
80
|
-
return instance;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
public void Dispose()
|
|
85
|
-
{
|
|
86
|
-
lock (_mutex)
|
|
87
|
-
{
|
|
88
|
-
_instance?.Dispose();
|
|
89
|
-
_instance = null;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
protected virtual com.AtelierAI.Uco.Framework.Common.Version BuildVersion()
|
|
95
|
-
{
|
|
96
|
-
return new com.AtelierAI.Uco.Framework.Common.Version
|
|
97
|
-
{
|
|
98
|
-
Api = Consts.ApiVersion,
|
|
99
|
-
Plugin = UnityCopilotPlugin.Version,
|
|
100
|
-
Environment = Application.unityVersion
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
protected virtual ILoggerProvider? BuildLoggerProvider()
|
|
105
|
-
{
|
|
106
|
-
return new UnityLoggerProvider();
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
protected virtual IUcoPlugin
|
|
110
|
-
com.AtelierAI.Uco.Framework.Common.Version version,
|
|
111
|
-
Reflector reflector,
|
|
112
|
-
ILoggerProvider? loggerProvider = null,
|
|
113
|
-
Action<
|
|
114
|
-
{
|
|
115
|
-
_logger.LogTrace("{method} called.", nameof(
|
|
116
|
-
|
|
117
|
-
var assemblies = AssemblyUtils.AllAssemblies;
|
|
118
|
-
var
|
|
119
|
-
.WithProjectPathPolicy(new ProjectPathPolicy(
|
|
120
|
-
System.IO.Directory.GetParent(Application.dataPath)?.FullName
|
|
121
|
-
?? Application.dataPath))
|
|
122
|
-
.SetConfig(unityConnectionConfig ?? throw new InvalidOperationException("UnityConnectionConfig must be set before building the plugin."))
|
|
123
|
-
.AddLogging(loggingBuilder =>
|
|
124
|
-
{
|
|
125
|
-
loggingBuilder.ClearProviders(); // 👈 Clears the default providers
|
|
126
|
-
loggingBuilder.SetMinimumLevel(MicrosoftLogLevel.Trace);
|
|
127
|
-
|
|
128
|
-
if (loggerProvider != null)
|
|
129
|
-
loggingBuilder.AddProvider(loggerProvider);
|
|
130
|
-
})
|
|
131
|
-
.IgnoreAssemblies(
|
|
132
|
-
"mscorlib",
|
|
133
|
-
"Mono.Security",
|
|
134
|
-
"netstandard",
|
|
135
|
-
"nunit.framework",
|
|
136
|
-
"System",
|
|
137
|
-
"UnityEngine",
|
|
138
|
-
"UnityEditor",
|
|
139
|
-
"Unity.",
|
|
140
|
-
"Microsoft",
|
|
141
|
-
"R3",
|
|
142
|
-
"UcoFramework",
|
|
143
|
-
"ReflectorNet",
|
|
144
|
-
"com.AtelierAI.Unity.Copilot.TestFiles",
|
|
145
|
-
"com.AtelierAI.Unity.Copilot.Editor.Tests",
|
|
146
|
-
"com.AtelierAI.Unity.Copilot.Tests")
|
|
147
|
-
.WithToolsFromAssembly(assemblies)
|
|
148
|
-
.WithPromptsFromAssembly(assemblies)
|
|
149
|
-
.WithResourcesFromAssembly(assemblies)
|
|
150
|
-
.WithSkillsFromAssembly(assemblies);
|
|
151
|
-
|
|
152
|
-
configure?.Invoke(
|
|
153
|
-
|
|
154
|
-
var
|
|
155
|
-
|
|
156
|
-
_pluginConnectionSubscription?.Dispose();
|
|
157
|
-
_pluginConnectionSubscription =
|
|
158
|
-
.Subscribe(state => _connectionState.Value = state);
|
|
159
|
-
|
|
160
|
-
_logger.LogTrace("{method} completed.", nameof(
|
|
161
|
-
|
|
162
|
-
return
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
protected virtual void
|
|
166
|
-
{
|
|
167
|
-
_logger.LogTrace("{method} called.", nameof(
|
|
168
|
-
|
|
169
|
-
// Enable/Disable tools based on config
|
|
170
|
-
var toolManager =
|
|
171
|
-
if (toolManager != null)
|
|
172
|
-
{
|
|
173
|
-
var enabledToolsOverride = unityConnectionConfig.EnabledToolsOverride;
|
|
174
|
-
if (enabledToolsOverride != null)
|
|
175
|
-
{
|
|
176
|
-
var allTools = toolManager.GetAllTools().ToList();
|
|
177
|
-
var enabledSet = new HashSet<string>(enabledToolsOverride, StringComparer.OrdinalIgnoreCase);
|
|
178
|
-
|
|
179
|
-
// Validate requested tool IDs against the registered tool list
|
|
180
|
-
var allToolNames = new HashSet<string>(
|
|
181
|
-
allTools.Select(t => t.Name!),
|
|
182
|
-
StringComparer.OrdinalIgnoreCase);
|
|
183
|
-
foreach (var requestedId in enabledToolsOverride)
|
|
184
|
-
{
|
|
185
|
-
if (!allToolNames.Contains(requestedId))
|
|
186
|
-
_logger.LogError("[
|
|
187
|
-
EnvironmentUtils.EnvTools, requestedId);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
// Apply: enable only tools in the override list, disable all others
|
|
191
|
-
foreach (var tool in allTools)
|
|
192
|
-
{
|
|
193
|
-
var isEnabled = enabledSet.Contains(tool.Name!);
|
|
194
|
-
toolManager.SetToolEnabled(tool.Name!, isEnabled);
|
|
195
|
-
_logger.LogDebug("{method}: Tool '{tool}' enabled: {isEnabled} (env override)",
|
|
196
|
-
nameof(
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
else
|
|
200
|
-
{
|
|
201
|
-
foreach (var tool in toolManager.GetAllTools())
|
|
202
|
-
{
|
|
203
|
-
var toolFeature = unityConnectionConfig.Tools.FirstOrDefault(t => t.Name == tool.Name!);
|
|
204
|
-
var isEnabled = toolFeature?.Enabled ?? tool.Enabled;
|
|
205
|
-
toolManager.SetToolEnabled(tool.Name!, isEnabled);
|
|
206
|
-
_logger.LogDebug("{method}: Tool '{tool}' enabled: {isEnabled}",
|
|
207
|
-
nameof(
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
// Enable/Disable prompts based on config
|
|
213
|
-
var promptManager =
|
|
214
|
-
if (promptManager != null)
|
|
215
|
-
{
|
|
216
|
-
foreach (var prompt in promptManager.GetAllPrompts())
|
|
217
|
-
{
|
|
218
|
-
var promptFeature = unityConnectionConfig.Prompts.FirstOrDefault(p => p.Name == prompt.Name);
|
|
219
|
-
var isEnabled = promptFeature?.Enabled ?? prompt.Enabled;
|
|
220
|
-
promptManager.SetPromptEnabled(prompt.Name, isEnabled);
|
|
221
|
-
_logger.LogDebug("{method}: Prompt '{prompt}' enabled: {isEnabled}",
|
|
222
|
-
nameof(
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
// Enable/Disable resources based on config
|
|
227
|
-
var resourceManager =
|
|
228
|
-
if (resourceManager != null)
|
|
229
|
-
{
|
|
230
|
-
foreach (var resource in resourceManager.GetAllResources())
|
|
231
|
-
{
|
|
232
|
-
var resourceFeature = unityConnectionConfig.Resources.FirstOrDefault(r => r.Name == resource.Name);
|
|
233
|
-
var isEnabled = resourceFeature?.Enabled ?? resource.Enabled;
|
|
234
|
-
resourceManager.SetResourceEnabled(resource.Name, isEnabled);
|
|
235
|
-
_logger.LogDebug("{method}: Resource '{resource}' enabled: {isEnabled}",
|
|
236
|
-
nameof(
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
_logger.LogTrace("{method} completed.", nameof(
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
}
|
|
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
|
+
using System;
|
|
13
|
+
using System.Collections.Generic;
|
|
14
|
+
using System.Linq;
|
|
15
|
+
using com.AtelierAI.Uco.Framework;
|
|
16
|
+
using com.IvanMurzak.ReflectorNet;
|
|
17
|
+
using com.IvanMurzak.ReflectorNet.Utils;
|
|
18
|
+
using com.AtelierAI.Unity.Copilot.Runtime.Utils;
|
|
19
|
+
using com.AtelierAI.Unity.Copilot.Utils;
|
|
20
|
+
using Microsoft.Extensions.Logging;
|
|
21
|
+
using R3;
|
|
22
|
+
using UnityEngine;
|
|
23
|
+
using ILogger = Microsoft.Extensions.Logging.ILogger;
|
|
24
|
+
|
|
25
|
+
namespace com.AtelierAI.Unity.Copilot
|
|
26
|
+
{
|
|
27
|
+
using Consts = com.AtelierAI.Uco.Framework.Common.Consts;
|
|
28
|
+
using MicrosoftLogLevel = Microsoft.Extensions.Logging.LogLevel;
|
|
29
|
+
|
|
30
|
+
public partial class UnityCopilotPlugin
|
|
31
|
+
{
|
|
32
|
+
static readonly ILogger _logger = UnityLoggerFactory.LoggerFactory.CreateLogger<UnityCopilotPlugin>();
|
|
33
|
+
|
|
34
|
+
protected sealed class CopilotPluginSlot : IDisposable
|
|
35
|
+
{
|
|
36
|
+
private readonly object _mutex = new();
|
|
37
|
+
private IUcoPlugin? _instance;
|
|
38
|
+
|
|
39
|
+
public IUcoPlugin? Instance
|
|
40
|
+
{
|
|
41
|
+
get { lock (_mutex) { return _instance; } }
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
public bool HasInstance
|
|
45
|
+
{
|
|
46
|
+
get { lock (_mutex) { return _instance != null; } }
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Calls factory inside lock — guarantees build-once under concurrent access.
|
|
50
|
+
// Returns the built instance if it was just created, null if already built.
|
|
51
|
+
public IUcoPlugin? BuildOnce(Func<IUcoPlugin> factory)
|
|
52
|
+
{
|
|
53
|
+
lock (_mutex)
|
|
54
|
+
{
|
|
55
|
+
if (_instance != null) return null;
|
|
56
|
+
_instance = factory();
|
|
57
|
+
return _instance;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// Disposes old instance (if any), sets new one, returns it.
|
|
62
|
+
public IUcoPlugin Set(IUcoPlugin plugin)
|
|
63
|
+
{
|
|
64
|
+
lock (_mutex)
|
|
65
|
+
{
|
|
66
|
+
_instance?.Dispose();
|
|
67
|
+
_instance = plugin;
|
|
68
|
+
return plugin;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// Atomically returns and clears the instance without disposing it.
|
|
73
|
+
// Used by callers that need to control when/how disposal happens (e.g. background thread).
|
|
74
|
+
public IUcoPlugin? TakeInstance()
|
|
75
|
+
{
|
|
76
|
+
lock (_mutex)
|
|
77
|
+
{
|
|
78
|
+
var instance = _instance;
|
|
79
|
+
_instance = null;
|
|
80
|
+
return instance;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
public void Dispose()
|
|
85
|
+
{
|
|
86
|
+
lock (_mutex)
|
|
87
|
+
{
|
|
88
|
+
_instance?.Dispose();
|
|
89
|
+
_instance = null;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
protected virtual com.AtelierAI.Uco.Framework.Common.Version BuildVersion()
|
|
95
|
+
{
|
|
96
|
+
return new com.AtelierAI.Uco.Framework.Common.Version
|
|
97
|
+
{
|
|
98
|
+
Api = Consts.ApiVersion,
|
|
99
|
+
Plugin = UnityCopilotPlugin.Version,
|
|
100
|
+
Environment = Application.unityVersion
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
protected virtual ILoggerProvider? BuildLoggerProvider()
|
|
105
|
+
{
|
|
106
|
+
return new UnityLoggerProvider();
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
protected virtual IUcoPlugin BuildUcoPlugin(
|
|
110
|
+
com.AtelierAI.Uco.Framework.Common.Version version,
|
|
111
|
+
Reflector reflector,
|
|
112
|
+
ILoggerProvider? loggerProvider = null,
|
|
113
|
+
Action<IUcoPluginBuilder>? configure = null)
|
|
114
|
+
{
|
|
115
|
+
_logger.LogTrace("{method} called.", nameof(BuildUcoPlugin));
|
|
116
|
+
|
|
117
|
+
var assemblies = AssemblyUtils.AllAssemblies;
|
|
118
|
+
var ucoPluginBuilder = new UcoBuilder(version, loggerProvider)
|
|
119
|
+
.WithProjectPathPolicy(new ProjectPathPolicy(
|
|
120
|
+
System.IO.Directory.GetParent(Application.dataPath)?.FullName
|
|
121
|
+
?? Application.dataPath))
|
|
122
|
+
.SetConfig(unityConnectionConfig ?? throw new InvalidOperationException("UnityConnectionConfig must be set before building the plugin."))
|
|
123
|
+
.AddLogging(loggingBuilder =>
|
|
124
|
+
{
|
|
125
|
+
loggingBuilder.ClearProviders(); // 👈 Clears the default providers
|
|
126
|
+
loggingBuilder.SetMinimumLevel(MicrosoftLogLevel.Trace);
|
|
127
|
+
|
|
128
|
+
if (loggerProvider != null)
|
|
129
|
+
loggingBuilder.AddProvider(loggerProvider);
|
|
130
|
+
})
|
|
131
|
+
.IgnoreAssemblies(
|
|
132
|
+
"mscorlib",
|
|
133
|
+
"Mono.Security",
|
|
134
|
+
"netstandard",
|
|
135
|
+
"nunit.framework",
|
|
136
|
+
"System",
|
|
137
|
+
"UnityEngine",
|
|
138
|
+
"UnityEditor",
|
|
139
|
+
"Unity.",
|
|
140
|
+
"Microsoft",
|
|
141
|
+
"R3",
|
|
142
|
+
"UcoFramework",
|
|
143
|
+
"ReflectorNet",
|
|
144
|
+
"com.AtelierAI.Unity.Copilot.TestFiles",
|
|
145
|
+
"com.AtelierAI.Unity.Copilot.Editor.Tests",
|
|
146
|
+
"com.AtelierAI.Unity.Copilot.Tests")
|
|
147
|
+
.WithToolsFromAssembly(assemblies)
|
|
148
|
+
.WithPromptsFromAssembly(assemblies)
|
|
149
|
+
.WithResourcesFromAssembly(assemblies)
|
|
150
|
+
.WithSkillsFromAssembly(assemblies);
|
|
151
|
+
|
|
152
|
+
configure?.Invoke(ucoPluginBuilder);
|
|
153
|
+
|
|
154
|
+
var ucoPlugin = ucoPluginBuilder.Build(reflector);
|
|
155
|
+
|
|
156
|
+
_pluginConnectionSubscription?.Dispose();
|
|
157
|
+
_pluginConnectionSubscription = ucoPlugin.ConnectionState
|
|
158
|
+
.Subscribe(state => _connectionState.Value = state);
|
|
159
|
+
|
|
160
|
+
_logger.LogTrace("{method} completed.", nameof(BuildUcoPlugin));
|
|
161
|
+
|
|
162
|
+
return ucoPlugin;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
protected virtual void ApplyConfigToUcoPlugin(IUcoPlugin ucoPlugin)
|
|
166
|
+
{
|
|
167
|
+
_logger.LogTrace("{method} called.", nameof(ApplyConfigToUcoPlugin));
|
|
168
|
+
|
|
169
|
+
// Enable/Disable tools based on config
|
|
170
|
+
var toolManager = ucoPlugin.UcoManager.ToolManager;
|
|
171
|
+
if (toolManager != null)
|
|
172
|
+
{
|
|
173
|
+
var enabledToolsOverride = unityConnectionConfig.EnabledToolsOverride;
|
|
174
|
+
if (enabledToolsOverride != null)
|
|
175
|
+
{
|
|
176
|
+
var allTools = toolManager.GetAllTools().ToList();
|
|
177
|
+
var enabledSet = new HashSet<string>(enabledToolsOverride, StringComparer.OrdinalIgnoreCase);
|
|
178
|
+
|
|
179
|
+
// Validate requested tool IDs against the registered tool list
|
|
180
|
+
var allToolNames = new HashSet<string>(
|
|
181
|
+
allTools.Select(t => t.Name!),
|
|
182
|
+
StringComparer.OrdinalIgnoreCase);
|
|
183
|
+
foreach (var requestedId in enabledToolsOverride)
|
|
184
|
+
{
|
|
185
|
+
if (!allToolNames.Contains(requestedId))
|
|
186
|
+
_logger.LogError("[Uco] {Key}: tool '{ToolId}' not found. Check the tool ID.",
|
|
187
|
+
EnvironmentUtils.EnvTools, requestedId);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// Apply: enable only tools in the override list, disable all others
|
|
191
|
+
foreach (var tool in allTools)
|
|
192
|
+
{
|
|
193
|
+
var isEnabled = enabledSet.Contains(tool.Name!);
|
|
194
|
+
toolManager.SetToolEnabled(tool.Name!, isEnabled);
|
|
195
|
+
_logger.LogDebug("{method}: Tool '{tool}' enabled: {isEnabled} (env override)",
|
|
196
|
+
nameof(ApplyConfigToUcoPlugin), tool.Name, isEnabled);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
else
|
|
200
|
+
{
|
|
201
|
+
foreach (var tool in toolManager.GetAllTools())
|
|
202
|
+
{
|
|
203
|
+
var toolFeature = unityConnectionConfig.Tools.FirstOrDefault(t => t.Name == tool.Name!);
|
|
204
|
+
var isEnabled = toolFeature?.Enabled ?? tool.Enabled;
|
|
205
|
+
toolManager.SetToolEnabled(tool.Name!, isEnabled);
|
|
206
|
+
_logger.LogDebug("{method}: Tool '{tool}' enabled: {isEnabled}",
|
|
207
|
+
nameof(ApplyConfigToUcoPlugin), tool.Name, isEnabled);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// Enable/Disable prompts based on config
|
|
213
|
+
var promptManager = ucoPlugin.UcoManager.PromptManager;
|
|
214
|
+
if (promptManager != null)
|
|
215
|
+
{
|
|
216
|
+
foreach (var prompt in promptManager.GetAllPrompts())
|
|
217
|
+
{
|
|
218
|
+
var promptFeature = unityConnectionConfig.Prompts.FirstOrDefault(p => p.Name == prompt.Name);
|
|
219
|
+
var isEnabled = promptFeature?.Enabled ?? prompt.Enabled;
|
|
220
|
+
promptManager.SetPromptEnabled(prompt.Name, isEnabled);
|
|
221
|
+
_logger.LogDebug("{method}: Prompt '{prompt}' enabled: {isEnabled}",
|
|
222
|
+
nameof(ApplyConfigToUcoPlugin), prompt.Name, isEnabled);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// Enable/Disable resources based on config
|
|
227
|
+
var resourceManager = ucoPlugin.UcoManager.ResourceManager;
|
|
228
|
+
if (resourceManager != null)
|
|
229
|
+
{
|
|
230
|
+
foreach (var resource in resourceManager.GetAllResources())
|
|
231
|
+
{
|
|
232
|
+
var resourceFeature = unityConnectionConfig.Resources.FirstOrDefault(r => r.Name == resource.Name);
|
|
233
|
+
var isEnabled = resourceFeature?.Enabled ?? resource.Enabled;
|
|
234
|
+
resourceManager.SetResourceEnabled(resource.Name, isEnabled);
|
|
235
|
+
_logger.LogDebug("{method}: Resource '{resource}' enabled: {isEnabled}",
|
|
236
|
+
nameof(ApplyConfigToUcoPlugin), resource.Name, isEnabled);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
_logger.LogTrace("{method} completed.", nameof(ApplyConfigToUcoPlugin));
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|