@atelierai/uco 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +7 -8
  3. package/bin/server.mjs +1 -1
  4. package/bin/stub-plugin.mjs +3 -3
  5. package/dist/codegen/coerce.js +1 -1
  6. package/dist/codegen/coerce.js.map +1 -1
  7. package/dist/codegen/emit.js +2 -2
  8. package/dist/codegen/emit.js.map +1 -1
  9. package/dist/codegen/refs.js +1 -1
  10. package/dist/codegen/refs.js.map +1 -1
  11. package/dist/codegen/types.js +1 -1
  12. package/dist/codegen/types.js.map +1 -1
  13. package/dist/commands/call.js +1 -1
  14. package/dist/commands/call.js.map +1 -1
  15. package/dist/commands/devops/configure.js +1 -1
  16. package/dist/commands/devops/configure.js.map +1 -1
  17. package/dist/commands/devops/index.js +0 -4
  18. package/dist/commands/devops/index.js.map +1 -1
  19. package/dist/commands/devops/install-plugin.js +1 -1
  20. package/dist/commands/devops/install-plugin.js.map +1 -1
  21. package/dist/commands/devops/open.js +7 -7
  22. package/dist/commands/devops/open.js.map +1 -1
  23. package/dist/commands/devops/status.js +3 -3
  24. package/dist/commands/devops/status.js.map +1 -1
  25. package/dist/commands/exec.js +1 -1
  26. package/dist/commands/exec.js.map +1 -1
  27. package/dist/commands/install.js +2 -2
  28. package/dist/commands/install.js.map +1 -1
  29. package/dist/commands/prompt.js +2 -2
  30. package/dist/commands/prompt.js.map +1 -1
  31. package/dist/commands/resource.js +2 -2
  32. package/dist/commands/resource.js.map +1 -1
  33. package/dist/commands/update.js +1 -26
  34. package/dist/commands/update.js.map +1 -1
  35. package/dist/config/port.js +2 -2
  36. package/dist/config/port.js.map +1 -1
  37. package/dist/config/resolve.d.ts +1 -2
  38. package/dist/config/resolve.js +0 -12
  39. package/dist/config/resolve.js.map +1 -1
  40. package/dist/devops/lib/configure.d.ts +1 -1
  41. package/dist/devops/lib/configure.js +2 -2
  42. package/dist/devops/lib/configure.js.map +1 -1
  43. package/dist/devops/lib/install-plugin.d.ts +1 -1
  44. package/dist/devops/lib/install-plugin.js +1 -1
  45. package/dist/devops/lib/install-plugin.js.map +1 -1
  46. package/dist/devops/lib/install.d.ts +2 -2
  47. package/dist/devops/lib/install.js +5 -5
  48. package/dist/devops/lib/install.js.map +1 -1
  49. package/dist/devops/lib/open.js +11 -32
  50. package/dist/devops/lib/open.js.map +1 -1
  51. package/dist/devops/lib/remove-plugin.d.ts +1 -1
  52. package/dist/devops/lib/remove-plugin.js +3 -3
  53. package/dist/devops/lib/remove-plugin.js.map +1 -1
  54. package/dist/devops/lib/run-tool.d.ts +2 -2
  55. package/dist/devops/lib/run-tool.js +2 -2
  56. package/dist/devops/lib/types.d.ts +17 -54
  57. package/dist/devops/lib/types.js +2 -2
  58. package/dist/devops/lib/types.js.map +1 -1
  59. package/dist/devops/lib/update.d.ts +0 -15
  60. package/dist/devops/lib/update.js +2 -91
  61. package/dist/devops/lib/update.js.map +1 -1
  62. package/dist/devops/utils/agents.d.ts +0 -28
  63. package/dist/devops/utils/agents.js +0 -462
  64. package/dist/devops/utils/agents.js.map +1 -1
  65. package/dist/devops/utils/config.d.ts +9 -18
  66. package/dist/devops/utils/config.js +7 -20
  67. package/dist/devops/utils/config.js.map +1 -1
  68. package/dist/devops/utils/editor-cache.js +1 -1
  69. package/dist/devops/utils/editor-cache.js.map +1 -1
  70. package/dist/devops/utils/launch-error-dismiss.d.ts +2 -2
  71. package/dist/devops/utils/launch-error-dismiss.js +5 -5
  72. package/dist/devops/utils/manifest.d.ts +2 -2
  73. package/dist/devops/utils/manifest.js +3 -3
  74. package/dist/devops/utils/manifest.js.map +1 -1
  75. package/dist/devops/utils/port.d.ts +1 -1
  76. package/dist/devops/utils/port.js +1 -1
  77. package/dist/devops/utils/probe.d.ts +1 -1
  78. package/dist/devops/utils/probe.js +1 -1
  79. package/dist/devops/utils/ui.js +2 -2
  80. package/dist/devops/utils/ui.js.map +1 -1
  81. package/dist/devops/utils/unity-editor.js +4 -4
  82. package/dist/devops/utils/unity-editor.js.map +1 -1
  83. package/dist/devops/utils/unity-hub.js +1 -1
  84. package/dist/devops/utils/unity-hub.js.map +1 -1
  85. package/dist/devops/utils/unity-shutdown.d.ts +1 -1
  86. package/dist/devops/utils/unity-shutdown.js +1 -1
  87. package/dist/devops/utils/update-check.js +3 -3
  88. package/dist/devops/utils/update-check.js.map +1 -1
  89. package/dist/devops/utils/vendor.d.ts +2 -2
  90. package/dist/devops/utils/vendor.js +4 -4
  91. package/dist/devops/utils/vendor.js.map +1 -1
  92. package/dist/generated/tools.js +1 -1
  93. package/dist/generated/tools.js.map +1 -1
  94. package/dist/program.js +3 -3
  95. package/dist/program.js.map +1 -1
  96. package/dist/server/app.d.ts +5 -5
  97. package/dist/server/app.js +3 -3
  98. package/dist/server/app.js.map +1 -1
  99. package/dist/server/index.d.ts +2 -2
  100. package/dist/server/index.js +2 -2
  101. package/dist/server/index.js.map +1 -1
  102. package/dist/server/rest/auth.d.ts +1 -1
  103. package/dist/server/rest/auth.js +3 -3
  104. package/dist/server/rest/auth.js.map +1 -1
  105. package/dist/server/rest/context.d.ts +2 -2
  106. package/dist/server/rest/forward.d.ts +2 -2
  107. package/dist/server/session/store.d.ts +3 -3
  108. package/dist/server/session/store.js +4 -4
  109. package/dist/server/session/store.js.map +1 -1
  110. package/dist/server/stub-client/scenarios.js +8 -8
  111. package/dist/server/stub-client/scenarios.js.map +1 -1
  112. package/dist/server/types.d.ts +11 -11
  113. package/dist/server/types.js +9 -9
  114. package/dist/server/types.js.map +1 -1
  115. package/dist/server/ws/hub.d.ts +8 -8
  116. package/dist/server/ws/hub.js +13 -13
  117. package/dist/server/ws/hub.js.map +1 -1
  118. package/dist/server/ws/rpc.d.ts +3 -3
  119. package/dist/server/ws/rpc.js +4 -4
  120. package/dist/server/ws/rpc.js.map +1 -1
  121. package/dist/transport/index.d.ts +1 -1
  122. package/dist/transport/index.js +3 -3
  123. package/dist/transport/index.js.map +1 -1
  124. package/dist/transport/rest.js +1 -1
  125. package/dist/transport/rest.js.map +1 -1
  126. package/docs/INSTALL.zh-CN.md +2 -3
  127. package/package.json +1 -1
  128. package/skills/uco-setup/SKILL.md +1 -1
  129. package/skills/unity-editor/references/diagnostics.md +24 -24
  130. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Components/ExtensionPanel.cs +379 -379
  131. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/MenuItems.cs +72 -72
  132. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/UnityCopilotProjectSettingsProvider.cs +64 -64
  133. package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.CopilotServer.cs +372 -372
  134. package/vendor/plugin/com.atelierai.unity.copilot/Plugins/ReflectorNet.dll +0 -0
  135. package/vendor/plugin/com.atelierai.unity.copilot/Plugins/Uco.Framework.Common.dll +0 -0
  136. package/vendor/plugin/com.atelierai.unity.copilot/Plugins/Uco.Framework.dll +0 -0
  137. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.Config.cs +175 -175
  138. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.cs +1 -1
  139. package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Utils/EnvironmentUtils.cs +368 -368
  140. package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Environment/EnvironmentUtilsTests.cs +3 -3
  141. package/vendor/plugin/com.atelierai.unity.copilot/package.json +1 -1
  142. package/dist/commands/devops/login.d.ts +0 -2
  143. package/dist/commands/devops/login.js +0 -29
  144. package/dist/commands/devops/login.js.map +0 -1
  145. package/dist/commands/devops/setup-mcp.d.ts +0 -2
  146. package/dist/commands/devops/setup-mcp.js +0 -41
  147. package/dist/commands/devops/setup-mcp.js.map +0 -1
  148. package/dist/devops/commands-upstream/bootstrap-local.d.ts +0 -17
  149. package/dist/devops/commands-upstream/bootstrap-local.js +0 -87
  150. package/dist/devops/commands-upstream/bootstrap-local.js.map +0 -1
  151. package/dist/devops/commands-upstream/close.d.ts +0 -57
  152. package/dist/devops/commands-upstream/close.js +0 -188
  153. package/dist/devops/commands-upstream/close.js.map +0 -1
  154. package/dist/devops/commands-upstream/configure.d.ts +0 -2
  155. package/dist/devops/commands-upstream/configure.js +0 -87
  156. package/dist/devops/commands-upstream/configure.js.map +0 -1
  157. package/dist/devops/commands-upstream/create-project.d.ts +0 -2
  158. package/dist/devops/commands-upstream/create-project.js +0 -43
  159. package/dist/devops/commands-upstream/create-project.js.map +0 -1
  160. package/dist/devops/commands-upstream/install-plugin.d.ts +0 -2
  161. package/dist/devops/commands-upstream/install-plugin.js +0 -64
  162. package/dist/devops/commands-upstream/install-plugin.js.map +0 -1
  163. package/dist/devops/commands-upstream/install-unity.d.ts +0 -2
  164. package/dist/devops/commands-upstream/install-unity.js +0 -72
  165. package/dist/devops/commands-upstream/install-unity.js.map +0 -1
  166. package/dist/devops/commands-upstream/login.d.ts +0 -2
  167. package/dist/devops/commands-upstream/login.js +0 -33
  168. package/dist/devops/commands-upstream/login.js.map +0 -1
  169. package/dist/devops/commands-upstream/open.d.ts +0 -32
  170. package/dist/devops/commands-upstream/open.js +0 -282
  171. package/dist/devops/commands-upstream/open.js.map +0 -1
  172. package/dist/devops/commands-upstream/remove-plugin.d.ts +0 -2
  173. package/dist/devops/commands-upstream/remove-plugin.js +0 -41
  174. package/dist/devops/commands-upstream/remove-plugin.js.map +0 -1
  175. package/dist/devops/commands-upstream/run-system-tool.d.ts +0 -1
  176. package/dist/devops/commands-upstream/run-system-tool.js +0 -13
  177. package/dist/devops/commands-upstream/run-system-tool.js.map +0 -1
  178. package/dist/devops/commands-upstream/run-tool-builder.d.ts +0 -25
  179. package/dist/devops/commands-upstream/run-tool-builder.js +0 -125
  180. package/dist/devops/commands-upstream/run-tool-builder.js.map +0 -1
  181. package/dist/devops/commands-upstream/run-tool.d.ts +0 -1
  182. package/dist/devops/commands-upstream/run-tool.js +0 -13
  183. package/dist/devops/commands-upstream/run-tool.js.map +0 -1
  184. package/dist/devops/commands-upstream/setup-mcp.d.ts +0 -2
  185. package/dist/devops/commands-upstream/setup-mcp.js +0 -68
  186. package/dist/devops/commands-upstream/setup-mcp.js.map +0 -1
  187. package/dist/devops/commands-upstream/setup-skills.d.ts +0 -2
  188. package/dist/devops/commands-upstream/setup-skills.js +0 -167
  189. package/dist/devops/commands-upstream/setup-skills.js.map +0 -1
  190. package/dist/devops/commands-upstream/status.d.ts +0 -2
  191. package/dist/devops/commands-upstream/status.js +0 -87
  192. package/dist/devops/commands-upstream/status.js.map +0 -1
  193. package/dist/devops/commands-upstream/update.d.ts +0 -2
  194. package/dist/devops/commands-upstream/update.js +0 -77
  195. package/dist/devops/commands-upstream/update.js.map +0 -1
  196. package/dist/devops/commands-upstream/wait-for-ready.d.ts +0 -2
  197. package/dist/devops/commands-upstream/wait-for-ready.js +0 -93
  198. package/dist/devops/commands-upstream/wait-for-ready.js.map +0 -1
  199. package/dist/devops/lib/setup-mcp.d.ts +0 -35
  200. package/dist/devops/lib/setup-mcp.js +0 -172
  201. package/dist/devops/lib/setup-mcp.js.map +0 -1
  202. package/dist/devops/utils/cloud-login.d.ts +0 -7
  203. package/dist/devops/utils/cloud-login.js +0 -56
  204. package/dist/devops/utils/cloud-login.js.map +0 -1
@@ -1,73 +1,73 @@
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 com.AtelierAI.Unity.Copilot.Editor.Branding;
14
- using com.AtelierAI.Unity.Copilot.Editor.Utils;
15
- using UnityEditor;
16
- using UnityEngine;
17
-
18
- namespace com.AtelierAI.Unity.Copilot.Editor.UI
19
- {
20
- public static class MenuItems
21
- {
22
- [MenuItem(ProductInfo.MainWindowMenu, priority = 1006)]
23
- public static void ShowWindow() => MainWindowEditor.ShowWindow();
24
-
25
- [MenuItem(ProductInfo.ToolsMenuRoot + "/Updates/Check for Updates", priority = 999)]
26
- public static void CheckForUpdates() => _ = UpdateChecker.CheckForUpdatesAsync(forceCheck: true);
27
-
28
- // Team-shared kill-switch for the update popup. Toggling this writes through to
29
- // ProjectSettings/Copilot-UpdateSettings.asset (intended to be committed
30
- // to VCS). The validate method renders the menu's check-mark to match current state.
31
- // See https://github.com/IvanMurzak/uco-plugin/issues/768.
32
- private const string DisableUpdatesMenu = ProductInfo.ToolsMenuRoot + "/Updates/Disable Update Notifications (Team)";
33
-
34
- [MenuItem(DisableUpdatesMenu, priority = 1000)]
35
- public static void ToggleDisableUpdatesForTeam()
36
- => UpdateChecker.IsDisabledForProject = !UpdateChecker.IsDisabledForProject;
37
-
38
- [MenuItem(DisableUpdatesMenu, validate = true)]
39
- public static bool ToggleDisableUpdatesForTeamValidate()
40
- {
41
- Menu.SetChecked(DisableUpdatesMenu, UpdateChecker.IsDisabledForProject);
42
- return true;
43
- }
44
-
45
- // NOTE: The old .NET server binary flow (Download Binaries / Delete Binaries /
46
- // Open Logs / Open Log Errors) was removed together with the staged
47
- // Library/mcp-server binary. The local server is now the Node.js MCP server
48
- // (cocli) launched directly by CopilotServerManager; its stdout/stderr is
49
- // surfaced in the Editor console.
50
-
51
- [MenuItem(ProductInfo.ToolsMenuRoot + "/Debug/Show Update Popup", priority = 2000)]
52
- public static void ShowUpdatePopup() => UpdatePopupWindow.ShowWindow(UnityCopilotPlugin.Version, "99.99.99");
53
-
54
- [MenuItem(ProductInfo.ToolsMenuRoot + "/Debug/Reset Update Preferences", priority = 2001)]
55
- public static void ResetUpdatePreferences()
56
- {
57
- UpdateChecker.ClearPreferences();
58
- Debug.Log("Update preferences have been reset.");
59
- }
60
-
61
- [MenuItem(ProductInfo.ToolsMenuRoot + "/Debug/Serialization Check", priority = 2002)]
62
- public static void ShowSerializationCheck() => SerializationCheckWindow.ShowWindow();
63
-
64
- [MenuItem(ProductInfo.ToolsMenuRoot + "/Reset Config", priority = 2020)]
65
- public static void ResetConfig()
66
- {
67
- UnityCopilotPluginEditor.ResetConfig();
68
- // Reload Domain to ensure all changes are picked up.
69
- EditorUtility.RequestScriptReload();
70
- }
71
- }
72
- }
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 com.AtelierAI.Unity.Copilot.Editor.Branding;
14
+ using com.AtelierAI.Unity.Copilot.Editor.Utils;
15
+ using UnityEditor;
16
+ using UnityEngine;
17
+
18
+ namespace com.AtelierAI.Unity.Copilot.Editor.UI
19
+ {
20
+ public static class MenuItems
21
+ {
22
+ [MenuItem(ProductInfo.MainWindowMenu, priority = 1006)]
23
+ public static void ShowWindow() => MainWindowEditor.ShowWindow();
24
+
25
+ [MenuItem(ProductInfo.ToolsMenuRoot + "/Updates/Check for Updates", priority = 999)]
26
+ public static void CheckForUpdates() => _ = UpdateChecker.CheckForUpdatesAsync(forceCheck: true);
27
+
28
+ // Team-shared kill-switch for the update popup. Toggling this writes through to
29
+ // ProjectSettings/Copilot-UpdateSettings.asset (intended to be committed
30
+ // to VCS). The validate method renders the menu's check-mark to match current state.
31
+ // See https://github.com/IvanMurzak/uco-plugin/issues/768.
32
+ private const string DisableUpdatesMenu = ProductInfo.ToolsMenuRoot + "/Updates/Disable Update Notifications (Team)";
33
+
34
+ [MenuItem(DisableUpdatesMenu, priority = 1000)]
35
+ public static void ToggleDisableUpdatesForTeam()
36
+ => UpdateChecker.IsDisabledForProject = !UpdateChecker.IsDisabledForProject;
37
+
38
+ [MenuItem(DisableUpdatesMenu, validate = true)]
39
+ public static bool ToggleDisableUpdatesForTeamValidate()
40
+ {
41
+ Menu.SetChecked(DisableUpdatesMenu, UpdateChecker.IsDisabledForProject);
42
+ return true;
43
+ }
44
+
45
+ // NOTE: The old .NET server binary flow (Download Binaries / Delete Binaries /
46
+ // Open Logs / Open Log Errors) was removed together with the staged
47
+ // Library/server binary (legacy .NET era). The local server is the Node.js bridge
48
+ // (cocli) launched directly by CopilotServerManager; its stdout/stderr is
49
+ // surfaced in the Editor console.
50
+
51
+ [MenuItem(ProductInfo.ToolsMenuRoot + "/Debug/Show Update Popup", priority = 2000)]
52
+ public static void ShowUpdatePopup() => UpdatePopupWindow.ShowWindow(UnityCopilotPlugin.Version, "99.99.99");
53
+
54
+ [MenuItem(ProductInfo.ToolsMenuRoot + "/Debug/Reset Update Preferences", priority = 2001)]
55
+ public static void ResetUpdatePreferences()
56
+ {
57
+ UpdateChecker.ClearPreferences();
58
+ Debug.Log("Update preferences have been reset.");
59
+ }
60
+
61
+ [MenuItem(ProductInfo.ToolsMenuRoot + "/Debug/Serialization Check", priority = 2002)]
62
+ public static void ShowSerializationCheck() => SerializationCheckWindow.ShowWindow();
63
+
64
+ [MenuItem(ProductInfo.ToolsMenuRoot + "/Reset Config", priority = 2020)]
65
+ public static void ResetConfig()
66
+ {
67
+ UnityCopilotPluginEditor.ResetConfig();
68
+ // Reload Domain to ensure all changes are picked up.
69
+ EditorUtility.RequestScriptReload();
70
+ }
71
+ }
72
+ }
73
73
  #endif
@@ -1,64 +1,64 @@
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.Collections.Generic;
13
- using com.AtelierAI.Unity.Copilot.Editor.Utils;
14
- using UnityEditor;
15
- using UnityEngine;
16
-
17
- namespace com.AtelierAI.Unity.Copilot.Editor.UI
18
- {
19
- /// <summary>
20
- /// Exposes Unity-MCP's team-shared update settings under
21
- /// <c>Edit ▸ Project Settings ▸ Unity Copilot</c>.
22
- /// </summary>
23
- /// <remarks>
24
- /// Mutations write through to <see cref="UnityCopilotUpdateProjectSettings"/>, whose backing
25
- /// asset (<c>ProjectSettings/Copilot-UpdateSettings.asset</c>) is intended to be
26
- /// committed to VCS. See https://github.com/IvanMurzak/uco-plugin/issues/768.
27
- /// </remarks>
28
- internal static class UnityCopilotProjectSettingsProvider
29
- {
30
- private const string SettingsPath = "Project/Unity Copilot";
31
-
32
- [SettingsProvider]
33
- public static SettingsProvider Create() => new SettingsProvider(SettingsPath, SettingsScope.Project)
34
- {
35
- label = "Unity Copilot",
36
- guiHandler = _ =>
37
- {
38
- EditorGUILayout.LabelField("Update Notifications", EditorStyles.boldLabel);
39
-
40
- EditorGUI.BeginChangeCheck();
41
- var newValue = EditorGUILayout.ToggleLeft(
42
- new GUIContent(
43
- "Disable update notifications for the entire team",
44
- "Stored in ProjectSettings/ and shared with everyone who clones this project. " +
45
- "When enabled, the update popup is suppressed for every team member, regardless " +
46
- "of their per-user 'Do not show again' state."),
47
- UpdateChecker.IsDisabledForProject);
48
- if (EditorGUI.EndChangeCheck())
49
- UpdateChecker.IsDisabledForProject = newValue;
50
-
51
- EditorGUILayout.Space();
52
- EditorGUILayout.HelpBox(
53
- "This setting is stored in ProjectSettings/Copilot-UpdateSettings.asset " +
54
- "and is shared with everyone who clones this project. The per-user 'Do not show again' " +
55
- "button on the update popup is unaffected by this setting.",
56
- MessageType.Info);
57
- },
58
- keywords = new HashSet<string>
59
- {
60
- "AI", "Copilot", "Unity Copilot", "OpenUPM", "Update", "Notifications", "Team", "Game", "Developer"
61
- }
62
- };
63
- }
64
- }
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.Collections.Generic;
13
+ using com.AtelierAI.Unity.Copilot.Editor.Utils;
14
+ using UnityEditor;
15
+ using UnityEngine;
16
+
17
+ namespace com.AtelierAI.Unity.Copilot.Editor.UI
18
+ {
19
+ /// <summary>
20
+ /// Exposes the team-shared update settings under
21
+ /// <c>Edit ▸ Project Settings ▸ Unity Copilot</c>.
22
+ /// </summary>
23
+ /// <remarks>
24
+ /// Mutations write through to <see cref="UnityCopilotUpdateProjectSettings"/>, whose backing
25
+ /// asset (<c>ProjectSettings/Copilot-UpdateSettings.asset</c>) is intended to be
26
+ /// committed to VCS. See https://github.com/IvanMurzak/uco-plugin/issues/768.
27
+ /// </remarks>
28
+ internal static class UnityCopilotProjectSettingsProvider
29
+ {
30
+ private const string SettingsPath = "Project/Unity Copilot";
31
+
32
+ [SettingsProvider]
33
+ public static SettingsProvider Create() => new SettingsProvider(SettingsPath, SettingsScope.Project)
34
+ {
35
+ label = "Unity Copilot",
36
+ guiHandler = _ =>
37
+ {
38
+ EditorGUILayout.LabelField("Update Notifications", EditorStyles.boldLabel);
39
+
40
+ EditorGUI.BeginChangeCheck();
41
+ var newValue = EditorGUILayout.ToggleLeft(
42
+ new GUIContent(
43
+ "Disable update notifications for the entire team",
44
+ "Stored in ProjectSettings/ and shared with everyone who clones this project. " +
45
+ "When enabled, the update popup is suppressed for every team member, regardless " +
46
+ "of their per-user 'Do not show again' state."),
47
+ UpdateChecker.IsDisabledForProject);
48
+ if (EditorGUI.EndChangeCheck())
49
+ UpdateChecker.IsDisabledForProject = newValue;
50
+
51
+ EditorGUILayout.Space();
52
+ EditorGUILayout.HelpBox(
53
+ "This setting is stored in ProjectSettings/Copilot-UpdateSettings.asset " +
54
+ "and is shared with everyone who clones this project. The per-user 'Do not show again' " +
55
+ "button on the update popup is unaffected by this setting.",
56
+ MessageType.Info);
57
+ },
58
+ keywords = new HashSet<string>
59
+ {
60
+ "AI", "Copilot", "Unity Copilot", "OpenUPM", "Update", "Notifications", "Team", "Game", "Developer"
61
+ }
62
+ };
63
+ }
64
+ }