@atelierai/uco 1.0.7 → 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.
Files changed (87) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/package.json +1 -1
  3. package/vendor/plugin/com.atelierai.unity.copilot/Editor/DependencyResolver/NuGetConfig.cs +132 -132
  4. package/vendor/plugin/com.atelierai.unity.copilot/Editor/DependencyResolver/NuGetDependencyResolver.cs +237 -237
  5. package/vendor/plugin/com.atelierai.unity.copilot/Editor/DependencyResolver/NuGetDownloader.cs +82 -82
  6. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Resource/MenuItems.cs +247 -247
  7. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Resource/ToolGroups.cs +153 -153
  8. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/SystemTool/Skills.Create.SkillBody.cs +155 -155
  9. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Console.GetLogs.cs +95 -95
  10. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Docs.HttpFetcher.cs +139 -139
  11. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Instance.ListAll.cs +72 -72
  12. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/PathReadHelper.cs +106 -106
  13. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Script.Validate.cs +252 -252
  14. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Tests/TestResultCollector.cs +537 -537
  15. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/Tests.cs +400 -400
  16. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Branding/ProductInfo.cs +62 -62
  17. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/CopilotServerManager.cs +1034 -1034
  18. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Skills/Skill_InitialSetup.cs +197 -197
  19. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Startup.Editor.cs +201 -201
  20. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Startup.cs +67 -67
  21. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/CopilotListWindowBase.cs +393 -393
  22. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/CopilotWindowBase.cs +113 -113
  23. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.Connection.cs +3 -3
  24. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.CopilotFeatures.cs +195 -195
  25. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.CopilotServer.cs +20 -20
  26. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.CreateGUI.cs +354 -354
  27. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.cs +78 -78
  28. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowInitializer.cs +47 -47
  29. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/SerializationCheckWindow.cs +190 -190
  30. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UnityCopilotPluginEditor.Build.cs +91 -91
  31. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UnityCopilotPluginEditor.Config.cs +298 -298
  32. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UnityCopilotPluginEditor.Static.cs +296 -296
  33. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UnityCopilotPluginEditor.cs +69 -69
  34. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/PackageUtils.cs +168 -168
  35. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/PrefsKeyMigration.cs +119 -119
  36. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/SafeDefaultsGuard.cs +180 -180
  37. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/ScriptUtils.cs +229 -229
  38. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/ToolsManifestGenerator.cs +200 -200
  39. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/UnityAuthoringAdapters.cs +1467 -1467
  40. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/UnityAuthoringSafetyReloadGuard.cs +65 -65
  41. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/UnityCopilotUpdateProjectSettings.cs +66 -66
  42. package/vendor/plugin/com.atelierai.unity.copilot/Plugins/ReflectorNet.dll +0 -0
  43. package/vendor/plugin/com.atelierai.unity.copilot/Plugins/Uco.Framework.Common.dll +0 -0
  44. package/vendor/plugin/com.atelierai.unity.copilot/Plugins/Uco.Framework.dll +0 -0
  45. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Converter/Json/Structures/EntityIdConverter.cs +120 -120
  46. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Data/GameObjectMetadata.cs +110 -110
  47. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Data/GameObjectMetadata.pre-Unity.6.5.cs +110 -110
  48. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Unity/Logs/FileLogStorage.cs +547 -547
  49. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.Build.cs +243 -243
  50. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.Config.cs +3 -3
  51. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.cs +295 -295
  52. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPluginBuilder.cs +105 -105
  53. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPluginRuntime.Static.cs +155 -155
  54. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPluginRuntime.cs +59 -59
  55. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Utils/EnvironmentUtils.cs +11 -11
  56. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/AtomicApi/AtomicApiTestFixtures.cs +99 -99
  57. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/AtomicApi/TryModifyAtTests.cs +227 -227
  58. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/AuthoringSafetyPilotTests.cs +1050 -1050
  59. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/DependencyResolver/NuGetLegacyMigrationTests.cs +304 -304
  60. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Environment/EnvironmentUtilsTests.cs +1 -1
  61. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/BlacklistTypeTests.cs +416 -416
  62. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataFieldScriptableObjectPopulationTests.cs +172 -172
  63. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataFieldScriptableObjectPopulationTests.pre-Unity.6.5.cs +169 -169
  64. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPopulationTests.cs +182 -182
  65. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPopulationTests.pre-Unity.6.5.cs +179 -179
  66. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPropertyPopulationTests.cs +175 -175
  67. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPropertyPopulationTests.pre-Unity.6.5.cs +174 -174
  68. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPropertyScriptableObjectPopulationTests.cs +171 -171
  69. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ReflectionConverter/DataPropertyScriptableObjectPopulationTests.pre-Unity.6.5.cs +170 -170
  70. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsCreateFolderTests.cs +243 -243
  71. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsMaterialTests.cs +101 -101
  72. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.cs +348 -348
  73. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.pre-Unity.6.5.cs +348 -348
  74. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Assets/AssetsShaderTests.cs +194 -194
  75. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/PathBasedToolTests.cs +573 -573
  76. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/PathBasedToolTests.pre-Unity.6.5.cs +513 -513
  77. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Screenshot/ScreenshotCameraTests.cs +154 -154
  78. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Screenshot/ScreenshotCameraTests.pre-Unity.6.5.cs +154 -154
  79. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Screenshot/ScreenshotGameViewTests.cs +164 -164
  80. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/Screenshot/ScreenshotSceneViewTests.cs +155 -155
  81. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/ToolParameterTests.cs +56 -56
  82. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/ToolThreadSafetyTests.cs +651 -651
  83. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/ToolThreadSafetyTests.pre-Unity.6.5.cs +651 -651
  84. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/ToolBatchExecutionIntegrationTests.cs +407 -407
  85. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/{McpPluginTests.cs → UcoPluginTests.cs} +105 -105
  86. package/vendor/plugin/com.atelierai.unity.copilot/package.json +1 -1
  87. /package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/{McpPluginTests.cs.meta → UcoPluginTests.cs.meta} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.8 - 2026-09-19
4
+
5
+ - Vendored plugin refreshed to **1.0.6**: the C# source's internal type and
6
+ directory names complete the legacy-naming scrub (managers, builder,
7
+ hub interfaces, test names, storage keys). No behavioral change —
8
+ framework tests 831/831 across TFMs, 2022.3 EditMode gate unchanged.
9
+ - This rename also fixed a live mismatch: the plugin now requests
10
+ `GetPluginClientData`, which the bridge actually serves (it previously
11
+ requested a method name the bridge never registered).
12
+
13
+
3
14
  ## 1.0.7 - 2026-09-19
4
15
 
5
16
  - **Legacy agent-config writing removed.** uco no longer writes or
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atelierai/uco",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "description": "uco — Unity Copilot CLI. Drive Unity Editor (and runtime game builds) from any AI agent via plain HTTP. No MCP protocol on the wire.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,132 +1,132 @@
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
-
13
- namespace com.AtelierAI.Unity.Copilot.Editor.DependencyResolver
14
- {
15
- /// <summary>
16
- /// Configuration for the NuGet dependency resolver.
17
- /// Contains the list of required NuGet packages and path settings.
18
- /// </summary>
19
- static class NuGetConfig
20
- {
21
- /// <summary>Log tag shared across all DependencyResolver classes.</summary>
22
- public const string LogTag = "[NuGet]";
23
-
24
- /// <summary>
25
- /// Scripting define added to all build target groups once the resolver
26
- /// confirms the NuGet DLLs are in place. Main plugin asmdefs are gated
27
- /// on this define so they only attempt to compile when the references
28
- /// are guaranteed to resolve.
29
- /// </summary>
30
- public const string ReadyDefine = "UNITY_COPILOT_READY";
31
-
32
- /// <summary>
33
- /// NuGet v3 flat container base URL.
34
- /// Download URL pattern: {base}/{id}/{version}/{id}.{version}.nupkg
35
- /// </summary>
36
- public const string NuGetBaseUrl = "https://api.nuget.org/v3-flatcontainer";
37
-
38
- /// <summary>
39
- /// Where extracted NuGet DLLs are installed (mutable location inside Unity's asset pipeline).
40
- /// PluginImporter requires files to be under Assets/ to work.
41
- /// </summary>
42
- public const string InstallPath = "Assets/Plugins/NuGet";
43
-
44
- /// <summary>
45
- /// Where downloaded .nupkg files are cached.
46
- /// Library/ survives domain reloads but is not tracked by git.
47
- /// </summary>
48
- public const string CachePath = "Library/NuGetCache";
49
-
50
- /// <summary>
51
- /// Top-level NuGet package dependencies.
52
- /// Transitive dependencies are resolved automatically from .nuspec metadata.
53
- ///
54
- /// includeInBuild: true = DLL included in game builds (runtime dependency)
55
- /// includeInBuild: false = editor-only DLL (excluded from builds)
56
- /// </summary>
57
- public static readonly NuGetPackage[] Packages =
58
- {
59
- // --- Runtime dependencies (included in game builds) ---
60
- // NOTE: com.AtelierAI.Uco.Framework and com.IvanMurzak.ReflectorNet are
61
- // intentionally absent from this array. Those three DLLs (ReflectorNet.dll,
62
- // Uco.Framework.dll, Uco.Framework.Common.dll) are now built from local source via
63
- // commands/build-framework-dlls.ps1 and committed as static assets in
64
- // Assets/Plugins/NuGet/. The resolver never fetches or cleans them because
65
- // they are not in Packages[] nor in .nuget-installed.json.
66
- // v8 pinned to match what Uco.Framework.dll (netstandard2.1) is compiled against.
67
- // Higher versions cause MissingMethodException at runtime in Unity versions
68
- // whose built-in BCL doesn't override our NuGet install (e.g. Unity 6.5).
69
- new NuGetPackage("System.Text.Json", "8.0.5", includeInBuild: true),
70
- new NuGetPackage("Microsoft.Extensions.Logging", "8.0.1", includeInBuild: true),
71
- // Pinned to 8.0.3 to match the transitive requirement from
72
- // Microsoft.AspNetCore.Http.Connections.Client 8.0.15 (pulled in via
73
- // SignalR.Client 8.0.15 → SignalR.Client.Core 8.0.15). Any lower pin
74
- // (e.g. 8.0.2) produces an infinite restore loop on every domain reload:
75
- // higher-version-wins extracts 8.0.3 to disk while AllPackagesInstalled()
76
- // keeps checking for the pinned dir, never finds it, and triggers Restore()
77
- // again on the next reload. See Unity-MCP#677.
78
- new NuGetPackage("Microsoft.Extensions.Logging.Abstractions", "8.0.3", includeInBuild: true),
79
- new NuGetPackage("Microsoft.Extensions.DependencyInjection", "8.0.1", includeInBuild: true),
80
- new NuGetPackage("Microsoft.Extensions.DependencyInjection.Abstractions", "8.0.2", includeInBuild: true),
81
- new NuGetPackage("Microsoft.Extensions.Options", "8.0.2", includeInBuild: true),
82
- new NuGetPackage("Microsoft.Extensions.Caching.Abstractions", "8.0.0", includeInBuild: true),
83
- new NuGetPackage("Microsoft.Extensions.Hosting.Abstractions", "8.0.1", includeInBuild: true),
84
- new NuGetPackage("R3", "1.3.0", includeInBuild: true),
85
-
86
- // --- Editor-only dependencies (excluded from builds) ---
87
- new NuGetPackage("Microsoft.Bcl.Memory", "10.0.3"),
88
- // Pinned to 4.8.0 so transitive System.Collections.Immutable stays at 7.0.0
89
- // (forward-compatible with Unity 6.6's built-in 8.0.0). Roslyn 4.14 requires
90
- // SCI 9.0.0 which clashes with Unity's built-in.
91
- new NuGetPackage("Microsoft.CodeAnalysis.CSharp", "4.8.0"),
92
- };
93
-
94
- /// <summary>
95
- /// Package IDs to exclude from transitive dependency resolution. Matched
96
- /// case-insensitively against the NuGet package ID (not the DLL filename).
97
- ///
98
- /// When a package ID appears here:
99
- /// - the resolver skips it (and its transitive deps) during Install()
100
- /// - RemoveUnnecessaryPackages() deletes its install directory if present
101
- /// - AllPackagesInstalled() forces a full restore while it's still on disk
102
- ///
103
- /// Use this when a top-level package's nuspec pulls in a transitive dep that
104
- /// is unused by your project's source AND whose own dependency chain conflicts
105
- /// with your pinned versions (e.g., a netstandard2.0 package targeting a newer
106
- /// BCL than Unity's runtime provides).
107
- /// </summary>
108
- public static readonly string[] SkipPackages = { };
109
-
110
- /// <summary>
111
- /// Target framework priority for selecting DLLs from .nupkg lib/ folders.
112
- /// First match wins. Ordered by preference for Unity compatibility.
113
- /// </summary>
114
- public static readonly string[] TargetFrameworkPriority =
115
- {
116
- "netstandard2.1",
117
- "netstandard2.0",
118
- "net48",
119
- "net472",
120
- "net471",
121
- "net47",
122
- "net462",
123
- "net461",
124
- "net46",
125
- "net45",
126
- "netstandard1.3",
127
- "netstandard1.1",
128
- "netstandard1.0",
129
- "", // fallback: root lib/ folder
130
- };
131
- }
132
- }
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
+
13
+ namespace com.AtelierAI.Unity.Copilot.Editor.DependencyResolver
14
+ {
15
+ /// <summary>
16
+ /// Configuration for the NuGet dependency resolver.
17
+ /// Contains the list of required NuGet packages and path settings.
18
+ /// </summary>
19
+ static class NuGetConfig
20
+ {
21
+ /// <summary>Log tag shared across all DependencyResolver classes.</summary>
22
+ public const string LogTag = "[NuGet]";
23
+
24
+ /// <summary>
25
+ /// Scripting define added to all build target groups once the resolver
26
+ /// confirms the NuGet DLLs are in place. Main plugin asmdefs are gated
27
+ /// on this define so they only attempt to compile when the references
28
+ /// are guaranteed to resolve.
29
+ /// </summary>
30
+ public const string ReadyDefine = "UNITY_COPILOT_READY";
31
+
32
+ /// <summary>
33
+ /// NuGet v3 flat container base URL.
34
+ /// Download URL pattern: {base}/{id}/{version}/{id}.{version}.nupkg
35
+ /// </summary>
36
+ public const string NuGetBaseUrl = "https://api.nuget.org/v3-flatcontainer";
37
+
38
+ /// <summary>
39
+ /// Where extracted NuGet DLLs are installed (mutable location inside Unity's asset pipeline).
40
+ /// PluginImporter requires files to be under Assets/ to work.
41
+ /// </summary>
42
+ public const string InstallPath = "Assets/Plugins/NuGet";
43
+
44
+ /// <summary>
45
+ /// Where downloaded .nupkg files are cached.
46
+ /// Library/ survives domain reloads but is not tracked by git.
47
+ /// </summary>
48
+ public const string CachePath = "Library/NuGetCache";
49
+
50
+ /// <summary>
51
+ /// Top-level NuGet package dependencies.
52
+ /// Transitive dependencies are resolved automatically from .nuspec metadata.
53
+ ///
54
+ /// includeInBuild: true = DLL included in game builds (runtime dependency)
55
+ /// includeInBuild: false = editor-only DLL (excluded from builds)
56
+ /// </summary>
57
+ public static readonly NuGetPackage[] Packages =
58
+ {
59
+ // --- Runtime dependencies (included in game builds) ---
60
+ // NOTE: com.AtelierAI.Uco.Framework and com.IvanMurzak.ReflectorNet are
61
+ // intentionally absent from this array. Those three DLLs (ReflectorNet.dll,
62
+ // Uco.Framework.dll, Uco.Framework.Common.dll) are now built from local source via
63
+ // commands/build-framework-dlls.ps1 and committed as static assets in
64
+ // Assets/Plugins/NuGet/. The resolver never fetches or cleans them because
65
+ // they are not in Packages[] nor in .nuget-installed.json.
66
+ // v8 pinned to match what Uco.Framework.dll (netstandard2.1) is compiled against.
67
+ // Higher versions cause MissingMethodException at runtime in Unity versions
68
+ // whose built-in BCL doesn't override our NuGet install (e.g. Unity 6.5).
69
+ new NuGetPackage("System.Text.Json", "8.0.5", includeInBuild: true),
70
+ new NuGetPackage("Microsoft.Extensions.Logging", "8.0.1", includeInBuild: true),
71
+ // Pinned to 8.0.3 to match the transitive requirement from
72
+ // Microsoft.AspNetCore.Http.Connections.Client 8.0.15 (pulled in via
73
+ // SignalR.Client 8.0.15 → SignalR.Client.Core 8.0.15). Any lower pin
74
+ // (e.g. 8.0.2) produces an infinite restore loop on every domain reload:
75
+ // higher-version-wins extracts 8.0.3 to disk while AllPackagesInstalled()
76
+ // keeps checking for the pinned dir, never finds it, and triggers Restore()
77
+ // again on the next reload. See Unity-Uco#677.
78
+ new NuGetPackage("Microsoft.Extensions.Logging.Abstractions", "8.0.3", includeInBuild: true),
79
+ new NuGetPackage("Microsoft.Extensions.DependencyInjection", "8.0.1", includeInBuild: true),
80
+ new NuGetPackage("Microsoft.Extensions.DependencyInjection.Abstractions", "8.0.2", includeInBuild: true),
81
+ new NuGetPackage("Microsoft.Extensions.Options", "8.0.2", includeInBuild: true),
82
+ new NuGetPackage("Microsoft.Extensions.Caching.Abstractions", "8.0.0", includeInBuild: true),
83
+ new NuGetPackage("Microsoft.Extensions.Hosting.Abstractions", "8.0.1", includeInBuild: true),
84
+ new NuGetPackage("R3", "1.3.0", includeInBuild: true),
85
+
86
+ // --- Editor-only dependencies (excluded from builds) ---
87
+ new NuGetPackage("Microsoft.Bcl.Memory", "10.0.3"),
88
+ // Pinned to 4.8.0 so transitive System.Collections.Immutable stays at 7.0.0
89
+ // (forward-compatible with Unity 6.6's built-in 8.0.0). Roslyn 4.14 requires
90
+ // SCI 9.0.0 which clashes with Unity's built-in.
91
+ new NuGetPackage("Microsoft.CodeAnalysis.CSharp", "4.8.0"),
92
+ };
93
+
94
+ /// <summary>
95
+ /// Package IDs to exclude from transitive dependency resolution. Matched
96
+ /// case-insensitively against the NuGet package ID (not the DLL filename).
97
+ ///
98
+ /// When a package ID appears here:
99
+ /// - the resolver skips it (and its transitive deps) during Install()
100
+ /// - RemoveUnnecessaryPackages() deletes its install directory if present
101
+ /// - AllPackagesInstalled() forces a full restore while it's still on disk
102
+ ///
103
+ /// Use this when a top-level package's nuspec pulls in a transitive dep that
104
+ /// is unused by your project's source AND whose own dependency chain conflicts
105
+ /// with your pinned versions (e.g., a netstandard2.0 package targeting a newer
106
+ /// BCL than Unity's runtime provides).
107
+ /// </summary>
108
+ public static readonly string[] SkipPackages = { };
109
+
110
+ /// <summary>
111
+ /// Target framework priority for selecting DLLs from .nupkg lib/ folders.
112
+ /// First match wins. Ordered by preference for Unity compatibility.
113
+ /// </summary>
114
+ public static readonly string[] TargetFrameworkPriority =
115
+ {
116
+ "netstandard2.1",
117
+ "netstandard2.0",
118
+ "net48",
119
+ "net472",
120
+ "net471",
121
+ "net47",
122
+ "net462",
123
+ "net461",
124
+ "net46",
125
+ "net45",
126
+ "netstandard1.3",
127
+ "netstandard1.1",
128
+ "netstandard1.0",
129
+ "", // fallback: root lib/ folder
130
+ };
131
+ }
132
+ }