@atelierai/uco 1.0.8 → 1.0.10
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 -8
- package/package.json +2 -2
- package/vendor/plugin/com.atelierai.unity.copilot/CHANGELOG.md +4 -4
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/API/Tool/ToolGroups.SetEnabled.cs +92 -92
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/CopilotServerManager.cs +0 -147
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Startup.Editor.cs +16 -0
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/UI/Window/MainWindowEditor.CopilotServer.cs +3 -3
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/Scripts/Utils/ToolGroupRegistry.cs +461 -460
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/UI/uss/CopilotPromptsWindow.uss +11 -11
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/UI/uss/CopilotResourcesWindow.uss +16 -16
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/UI/uss/CopilotToolsWindow.uss +36 -36
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/UI/uss/MainWindow.uss +183 -183
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/UI/uss/common/{_mcp-list-window.uss → _copilot-list-window.uss} +18 -18
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/UI/uss/common/_list-view.uss +77 -77
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/UI/uxml/CopilotPromptsWindow.uxml +18 -18
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/UI/uxml/CopilotResourcesWindow.uxml +18 -18
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/UI/uxml/CopilotToolsWindow.uxml +18 -18
- package/vendor/plugin/com.atelierai.unity.copilot/Editor/UI/uxml/MainWindow.uxml +115 -115
- 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/README.md +88 -88
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Unity/Logs/BufferedFileLogStorage.cs +208 -207
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Unity/Logs/FileLogStorage.cs +3 -1
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/Unity/Logs/UnityLogCollector.cs +282 -280
- package/vendor/plugin/com.atelierai.unity.copilot/Runtime/UnityCopilotPlugin.cs +1 -1
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/DependencyResolver/NuGetExtractorDevelopmentDependencyTests.cs +148 -148
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/DependencyResolver/NuGetExtractorFlatLayoutTests.cs +166 -166
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/DependencyResolver/NuGetInstallManifestTests.cs +436 -436
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/DependencyResolver/NuGetLegacyMigrationTests.cs +1 -1
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/DependencyResolver/NuGetPackageInstallerStaleVersionCleanupTests.cs +200 -200
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Environment/EnvironmentUtilsTests.cs +1 -1
- package/vendor/plugin/com.atelierai.unity.copilot/Tests/Editor/Tool/GameObject/TestJsonSchema.cs +199 -199
- package/vendor/plugin/com.atelierai.unity.copilot/package.json +1 -1
- /package/vendor/plugin/com.atelierai.unity.copilot/Editor/UI/uss/common/{_mcp-list-window.uss.meta → _copilot-list-window.uss.meta} +0 -0
|
@@ -1,77 +1,77 @@
|
|
|
1
|
-
/* ==========================================================================
|
|
2
|
-
List View Styles - List containers and item styles
|
|
3
|
-
========================================================================== */
|
|
4
|
-
|
|
5
|
-
/* Base List View */
|
|
6
|
-
.
|
|
7
|
-
flex-grow: 1;
|
|
8
|
-
padding-left: 0;
|
|
9
|
-
padding-right: 0;
|
|
10
|
-
padding-bottom: 0;
|
|
11
|
-
padding-top: 0;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.
|
|
15
|
-
background-color: rgba(0, 0, 0, 0);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
.
|
|
19
|
-
padding-left: 15px;
|
|
20
|
-
padding-right: 15px;
|
|
21
|
-
padding-top: 20px;
|
|
22
|
-
padding-bottom: 20px;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/* Item Container */
|
|
26
|
-
.item-container {
|
|
27
|
-
background-color: var(--unity-colors-helpbox-background);
|
|
28
|
-
border-radius: 12px;
|
|
29
|
-
padding: 10px;
|
|
30
|
-
margin-bottom: 7px;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/* Item Header */
|
|
34
|
-
.item-header {
|
|
35
|
-
flex-direction: row;
|
|
36
|
-
justify-content: space-between;
|
|
37
|
-
align-items: flex-start;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/* Item Title Container */
|
|
41
|
-
.item-title-container {
|
|
42
|
-
flex-grow: 1;
|
|
43
|
-
margin-right: 10px;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/* Item Title */
|
|
47
|
-
.item-title {
|
|
48
|
-
font-size: 16px;
|
|
49
|
-
-unity-font-style: bold;
|
|
50
|
-
white-space: normal;
|
|
51
|
-
flex-grow: 1;
|
|
52
|
-
flex-shrink: 1;
|
|
53
|
-
margin-right: 10px;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/* Item ID/Subtitle */
|
|
57
|
-
.item-id {
|
|
58
|
-
font-size: 12px;
|
|
59
|
-
color: var(--unity-colors-helpbox-text);
|
|
60
|
-
flex-shrink: 1;
|
|
61
|
-
overflow: hidden;
|
|
62
|
-
text-overflow: ellipsis;
|
|
63
|
-
white-space: nowrap;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/* Item Highlighting States — semitransparent tints layer over the
|
|
67
|
-
theme-aware base so the card stays readable on both light and dark
|
|
68
|
-
editor skins. */
|
|
69
|
-
.item-container.enabled {
|
|
70
|
-
background-color: rgba(80, 160, 80, 0.18);
|
|
71
|
-
transition-duration: 200ms;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.item-container.disabled {
|
|
75
|
-
background-color: rgba(160, 80, 80, 0.18);
|
|
76
|
-
transition-duration: 200ms;
|
|
77
|
-
}
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
List View Styles - List containers and item styles
|
|
3
|
+
========================================================================== */
|
|
4
|
+
|
|
5
|
+
/* Base List View */
|
|
6
|
+
.copilot-list-view {
|
|
7
|
+
flex-grow: 1;
|
|
8
|
+
padding-left: 0;
|
|
9
|
+
padding-right: 0;
|
|
10
|
+
padding-bottom: 0;
|
|
11
|
+
padding-top: 0;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.copilot-list-view .unity-list-view__item:hover {
|
|
15
|
+
background-color: rgba(0, 0, 0, 0);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.copilot-list-view .unity-scroll-view__content-container {
|
|
19
|
+
padding-left: 15px;
|
|
20
|
+
padding-right: 15px;
|
|
21
|
+
padding-top: 20px;
|
|
22
|
+
padding-bottom: 20px;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/* Item Container */
|
|
26
|
+
.item-container {
|
|
27
|
+
background-color: var(--unity-colors-helpbox-background);
|
|
28
|
+
border-radius: 12px;
|
|
29
|
+
padding: 10px;
|
|
30
|
+
margin-bottom: 7px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* Item Header */
|
|
34
|
+
.item-header {
|
|
35
|
+
flex-direction: row;
|
|
36
|
+
justify-content: space-between;
|
|
37
|
+
align-items: flex-start;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/* Item Title Container */
|
|
41
|
+
.item-title-container {
|
|
42
|
+
flex-grow: 1;
|
|
43
|
+
margin-right: 10px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* Item Title */
|
|
47
|
+
.item-title {
|
|
48
|
+
font-size: 16px;
|
|
49
|
+
-unity-font-style: bold;
|
|
50
|
+
white-space: normal;
|
|
51
|
+
flex-grow: 1;
|
|
52
|
+
flex-shrink: 1;
|
|
53
|
+
margin-right: 10px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/* Item ID/Subtitle */
|
|
57
|
+
.item-id {
|
|
58
|
+
font-size: 12px;
|
|
59
|
+
color: var(--unity-colors-helpbox-text);
|
|
60
|
+
flex-shrink: 1;
|
|
61
|
+
overflow: hidden;
|
|
62
|
+
text-overflow: ellipsis;
|
|
63
|
+
white-space: nowrap;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* Item Highlighting States — semitransparent tints layer over the
|
|
67
|
+
theme-aware base so the card stays readable on both light and dark
|
|
68
|
+
editor skins. */
|
|
69
|
+
.item-container.enabled {
|
|
70
|
+
background-color: rgba(80, 160, 80, 0.18);
|
|
71
|
+
transition-duration: 200ms;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.item-container.disabled {
|
|
75
|
+
background-color: rgba(160, 80, 80, 0.18);
|
|
76
|
+
transition-duration: 200ms;
|
|
77
|
+
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="False">
|
|
2
|
-
<ui:VisualElement class="root-container" style="min-width: 320px;">
|
|
3
|
-
<ui:VisualElement class="header-container">
|
|
4
|
-
<ui:Label text="Prompts" class="header-title" tooltip="Browse and control all
|
|
5
|
-
<ui:VisualElement class="filter-row">
|
|
6
|
-
<ui:Label text="Filter:" class="filter-label" />
|
|
7
|
-
<ui:TextField name="filter-textfield" class="filter-textfield styled-text-field" />
|
|
8
|
-
</ui:VisualElement>
|
|
9
|
-
<ui:VisualElement class="filter-row">
|
|
10
|
-
<ui:Label text="Type:" class="filter-label" />
|
|
11
|
-
<ui:DropdownField name="type-dropdown" index="0" class="type-dropdown styled-dropdown" />
|
|
12
|
-
<ui:Label text="Filtered: 0, Total: 0" name="filter-stats-label" class="filter-stats-label" />
|
|
13
|
-
</ui:VisualElement>
|
|
14
|
-
</ui:VisualElement>
|
|
15
|
-
<ui:Label name="empty-list-label" text="No prompts by current filter" class="empty-list-label" />
|
|
16
|
-
<ui:ListView name="
|
|
17
|
-
</ui:VisualElement>
|
|
18
|
-
</ui:UXML>
|
|
1
|
+
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="False">
|
|
2
|
+
<ui:VisualElement class="root-container" style="min-width: 320px;">
|
|
3
|
+
<ui:VisualElement class="header-container">
|
|
4
|
+
<ui:Label text="Prompts" class="header-title" tooltip="Browse and control all prompts. Prompts are slash-commands the user can invoke from the AI client. They do not passively consume context — only when explicitly invoked. Disable prompts you don't need to keep your commands list clean." />
|
|
5
|
+
<ui:VisualElement class="filter-row">
|
|
6
|
+
<ui:Label text="Filter:" class="filter-label" />
|
|
7
|
+
<ui:TextField name="filter-textfield" class="filter-textfield styled-text-field" />
|
|
8
|
+
</ui:VisualElement>
|
|
9
|
+
<ui:VisualElement class="filter-row">
|
|
10
|
+
<ui:Label text="Type:" class="filter-label" />
|
|
11
|
+
<ui:DropdownField name="type-dropdown" index="0" class="type-dropdown styled-dropdown" />
|
|
12
|
+
<ui:Label text="Filtered: 0, Total: 0" name="filter-stats-label" class="filter-stats-label" />
|
|
13
|
+
</ui:VisualElement>
|
|
14
|
+
</ui:VisualElement>
|
|
15
|
+
<ui:Label name="empty-list-label" text="No prompts by current filter" class="empty-list-label" />
|
|
16
|
+
<ui:ListView name="copilot-list-view" class="copilot-list-view" />
|
|
17
|
+
</ui:VisualElement>
|
|
18
|
+
</ui:UXML>
|
package/vendor/plugin/com.atelierai.unity.copilot/Editor/UI/uxml/CopilotResourcesWindow.uxml
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="False">
|
|
2
|
-
<ui:VisualElement class="root-container" style="min-width: 320px;">
|
|
3
|
-
<ui:VisualElement class="header-container">
|
|
4
|
-
<ui:Label text="Resources" class="header-title" tooltip="Browse and control all
|
|
5
|
-
<ui:VisualElement class="filter-row">
|
|
6
|
-
<ui:Label text="Filter:" class="filter-label" />
|
|
7
|
-
<ui:TextField name="filter-textfield" class="filter-textfield styled-text-field" />
|
|
8
|
-
</ui:VisualElement>
|
|
9
|
-
<ui:VisualElement class="filter-row">
|
|
10
|
-
<ui:Label text="Type:" class="filter-label" />
|
|
11
|
-
<ui:DropdownField name="type-dropdown" index="0" class="type-dropdown styled-dropdown" />
|
|
12
|
-
<ui:Label text="Filtered: 0, Total: 0" name="filter-stats-label" class="filter-stats-label" />
|
|
13
|
-
</ui:VisualElement>
|
|
14
|
-
</ui:VisualElement>
|
|
15
|
-
<ui:Label name="empty-list-label" text="No resources by current filter" class="empty-list-label" />
|
|
16
|
-
<ui:ListView name="
|
|
17
|
-
</ui:VisualElement>
|
|
18
|
-
</ui:UXML>
|
|
1
|
+
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="False">
|
|
2
|
+
<ui:VisualElement class="root-container" style="min-width: 320px;">
|
|
3
|
+
<ui:VisualElement class="header-container">
|
|
4
|
+
<ui:Label text="Resources" class="header-title" tooltip="Browse and control all resources. Resources are read-only data providers the AI can query for project information — scene hierarchy, asset metadata, settings. They never modify state. Disable unused resources to keep the list focused." />
|
|
5
|
+
<ui:VisualElement class="filter-row">
|
|
6
|
+
<ui:Label text="Filter:" class="filter-label" />
|
|
7
|
+
<ui:TextField name="filter-textfield" class="filter-textfield styled-text-field" />
|
|
8
|
+
</ui:VisualElement>
|
|
9
|
+
<ui:VisualElement class="filter-row">
|
|
10
|
+
<ui:Label text="Type:" class="filter-label" />
|
|
11
|
+
<ui:DropdownField name="type-dropdown" index="0" class="type-dropdown styled-dropdown" />
|
|
12
|
+
<ui:Label text="Filtered: 0, Total: 0" name="filter-stats-label" class="filter-stats-label" />
|
|
13
|
+
</ui:VisualElement>
|
|
14
|
+
</ui:VisualElement>
|
|
15
|
+
<ui:Label name="empty-list-label" text="No resources by current filter" class="empty-list-label" />
|
|
16
|
+
<ui:ListView name="copilot-list-view" class="copilot-list-view" />
|
|
17
|
+
</ui:VisualElement>
|
|
18
|
+
</ui:UXML>
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="False">
|
|
2
|
-
<ui:VisualElement class="root-container" style="min-width: 320px;">
|
|
3
|
-
<ui:VisualElement class="header-container">
|
|
4
|
-
<ui:Label text="Tools" class="header-title" tooltip="Browse and control all
|
|
5
|
-
<ui:VisualElement class="filter-row">
|
|
6
|
-
<ui:Label text="Filter:" class="filter-label" />
|
|
7
|
-
<ui:TextField name="filter-textfield" class="filter-textfield styled-text-field" />
|
|
8
|
-
</ui:VisualElement>
|
|
9
|
-
<ui:VisualElement class="filter-row">
|
|
10
|
-
<ui:Label text="Type:" class="filter-label" />
|
|
11
|
-
<ui:DropdownField name="type-dropdown" index="0" class="type-dropdown styled-dropdown" />
|
|
12
|
-
<ui:Label text="Filtered: 0, Total: 0" name="filter-stats-label" class="filter-stats-label" />
|
|
13
|
-
</ui:VisualElement>
|
|
14
|
-
</ui:VisualElement>
|
|
15
|
-
<ui:Label name="empty-list-label" text="No tools by current filter" class="empty-list-label" />
|
|
16
|
-
<ui:ListView name="
|
|
17
|
-
</ui:VisualElement>
|
|
18
|
-
</ui:UXML>
|
|
1
|
+
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" editor-extension-mode="False">
|
|
2
|
+
<ui:VisualElement class="root-container" style="min-width: 320px;">
|
|
3
|
+
<ui:VisualElement class="header-container">
|
|
4
|
+
<ui:Label text="Tools" class="header-title" tooltip="Browse and control all tools. Each tool is exposed as a skill accessible from the command line and HTTP API. Disable unused tools to save LLM context — fewer active tools means more room for the AI to reason." />
|
|
5
|
+
<ui:VisualElement class="filter-row">
|
|
6
|
+
<ui:Label text="Filter:" class="filter-label" />
|
|
7
|
+
<ui:TextField name="filter-textfield" class="filter-textfield styled-text-field" />
|
|
8
|
+
</ui:VisualElement>
|
|
9
|
+
<ui:VisualElement class="filter-row">
|
|
10
|
+
<ui:Label text="Type:" class="filter-label" />
|
|
11
|
+
<ui:DropdownField name="type-dropdown" index="0" class="type-dropdown styled-dropdown" />
|
|
12
|
+
<ui:Label text="Filtered: 0, Total: 0" name="filter-stats-label" class="filter-stats-label" />
|
|
13
|
+
</ui:VisualElement>
|
|
14
|
+
</ui:VisualElement>
|
|
15
|
+
<ui:Label name="empty-list-label" text="No tools by current filter" class="empty-list-label" />
|
|
16
|
+
<ui:ListView name="copilot-list-view" class="copilot-list-view" />
|
|
17
|
+
</ui:VisualElement>
|
|
18
|
+
</ui:UXML>
|
|
@@ -1,115 +1,115 @@
|
|
|
1
|
-
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
|
|
2
|
-
<ui:ScrollView>
|
|
3
|
-
<ui:VisualElement class="container" style="min-width: 320px;">
|
|
4
|
-
<!-- Header Section -->
|
|
5
|
-
<ui:Box name="contHeader" style="background-color: rgba(222, 222, 222, 0); flex-direction: row; flex-shrink: 0;">
|
|
6
|
-
<ui:VisualElement style="flex-grow: 1; background-color: rgba(0, 0, 0, 0);">
|
|
7
|
-
<ui:DropdownField label="Log Level" name="dropdownLogLevel" class="content-item styled-dropdown" />
|
|
8
|
-
<ui:IntegerField label="Timeout (ms)" name="inputTimeoutMs" value="10000" class="content-item" />
|
|
9
|
-
<ui:TextField picking-mode="Ignore" label="Version" value="0.0.0" readonly="true" name="currentVersion" focusable="false" class="content-item transparent-text-field" />
|
|
10
|
-
</ui:VisualElement>
|
|
11
|
-
<ui:VisualElement name="imgLogoPivot" class="animated-selectable" style="flex-grow: 0; height: 60px; width: 60px; right: 0; margin-left: 15px; flex-shrink: 0; margin-right: 0px; margin-top: 2px; flex-direction: row;">
|
|
12
|
-
<ui:VisualElement name="imgLogo" style="flex-grow: 1; background-color: rgba(0, 0, 0, 0); background-image: url("project://database/Packages/com.atelierai.unity.copilot/Editor/Gizmos/logo_512.png?fileID=2800000&guid=bbb0f64bd8f15164781e01168cd6fa4f&type=3#logo_512"); -unity-background-scale-mode: stretch-to-fill; align-self: stretch;" />
|
|
13
|
-
</ui:VisualElement>
|
|
14
|
-
</ui:Box>
|
|
15
|
-
<ui:VisualElement class="divider" />
|
|
16
|
-
<!-- Connection Section ============================== -->
|
|
17
|
-
<ui:VisualElement class="row" style="margin-top: 0; align-items: center;">
|
|
18
|
-
<ui:Label text="Connection" class="header" />
|
|
19
|
-
<ui:VisualElement name="segmentConnectionMode" style="flex-direction: row; flex-grow: 1; justify-content: flex-end; margin-right: 0;" />
|
|
20
|
-
</ui:VisualElement>
|
|
21
|
-
<ui:TextField picking-mode="Ignore" label="Server URL" value="http://localhost:8080" name="InputServerURL" class="content-item styled-text-field" />
|
|
22
|
-
<!-- Cloud Authorization (visible in Cloud mode only) -->
|
|
23
|
-
<ui:VisualElement name="cloudAuthSection" style="flex-direction: column; margin-bottom: 8px; display: none;">
|
|
24
|
-
<ui:VisualElement style="flex-direction: row; margin-top: 2px; align-items: center;">
|
|
25
|
-
<ui:TextField name="inputCloudToken" label="" placeholder-text="Cloud Token" readonly="true" password="true" style="flex-grow: 1;" class="token-input" />
|
|
26
|
-
<ui:Button name="btnCloudRevoke" text="Revoke" tooltip="Logout from the Cloud server. Clears the stored authentication token and disconnects Unity from the cloud." class="btn-compact btn-alert" style="display: none;" />
|
|
27
|
-
<ui:Button name="btnCloudAuthorize" text="Authorize" tooltip="Authenticate with the Cloud server using device code flow. Opens a browser to complete authorization." class="btn-compact" />
|
|
28
|
-
</ui:VisualElement>
|
|
29
|
-
<ui:Label name="labelCloudAuthStatus" text="" class="section-desc" style="margin-top: 2px; display: none;" />
|
|
30
|
-
</ui:VisualElement>
|
|
31
|
-
<!-- Connection Auth Alert (visible in Cloud mode when not authorized) -->
|
|
32
|
-
<ui:VisualElement name="connectionAlertContainer" />
|
|
33
|
-
<!-- Connection Timeline -->
|
|
34
|
-
<ui:VisualElement name="ConnectionTimeline" class="connection-timeline">
|
|
35
|
-
<!-- Point 1: Unity -->
|
|
36
|
-
<ui:VisualElement name="TimelinePointUnity" class="timeline-point">
|
|
37
|
-
<ui:VisualElement class="timeline-indicator">
|
|
38
|
-
<ui:VisualElement name="connectionStatusCircle" class="status-indicator-circle status-indicator-circle-disconnected" />
|
|
39
|
-
<ui:VisualElement class="timeline-line" style="margin-bottom: -4px;" />
|
|
40
|
-
</ui:VisualElement>
|
|
41
|
-
<ui:VisualElement class="timeline-content">
|
|
42
|
-
<ui:Label text="Unity" name="connectionStatusText" class="timeline-label" />
|
|
43
|
-
<ui:Button name="btnConnectOrDisconnect" text="Connect" class="btn-primary timeline-btn" />
|
|
44
|
-
</ui:VisualElement>
|
|
45
|
-
</ui:VisualElement>
|
|
46
|
-
<!-- Point 2:
|
|
47
|
-
<ui:VisualElement name="
|
|
48
|
-
<ui:VisualElement class="timeline-indicator" style="justify-content: flex-start;">
|
|
49
|
-
<ui:VisualElement name="
|
|
50
|
-
<ui:VisualElement class="timeline-line" style="top: 29px; margin-top: 0; margin-bottom: -4px;" />
|
|
51
|
-
</ui:VisualElement>
|
|
52
|
-
<ui:VisualElement style="flex-direction: column; flex-grow: 1;">
|
|
53
|
-
<!-- Row 1:
|
|
54
|
-
<ui:VisualElement name="
|
|
55
|
-
<ui:Label text="Server" name="
|
|
56
|
-
<ui:Button name="btnStartStopServer" text="Start" class="btn-secondary timeline-btn" />
|
|
57
|
-
</ui:VisualElement>
|
|
58
|
-
<!-- Row 2: Authorization -->
|
|
59
|
-
<ui:VisualElement style="flex-direction: row; align-items: center; justify-content: space-between; margin-top: 2px; margin-bottom: 2px;">
|
|
60
|
-
<ui:Label name="labelAuthorizationToken" text="Authorization Token" class="section-desc" style="margin-bottom: 0;" />
|
|
61
|
-
<ui:VisualElement name="segmentAuthorization" />
|
|
62
|
-
</ui:VisualElement>
|
|
63
|
-
<!-- Row 3: Authorization Token -->
|
|
64
|
-
<ui:VisualElement name="tokenSection" style="flex-direction: column; margin-top: 2px; margin-bottom: 2px;">
|
|
65
|
-
<ui:VisualElement style="flex-direction: row;">
|
|
66
|
-
<ui:TextField name="inputAuthorizationToken" label="" placeholder-text="Token" readonly="true" password="true" class="token-input" />
|
|
67
|
-
<ui:Button name="btnGenerateToken" text="New" class="btn-compact" />
|
|
68
|
-
</ui:VisualElement>
|
|
69
|
-
</ui:VisualElement>
|
|
70
|
-
</ui:VisualElement>
|
|
71
|
-
</ui:VisualElement>
|
|
72
|
-
<!-- Point 3: AI Agent -->
|
|
73
|
-
<ui:VisualElement name="TimelinePointAiAgent" class="timeline-point timeline-point-last" style="">
|
|
74
|
-
<ui:VisualElement class="timeline-indicator">
|
|
75
|
-
<ui:VisualElement name="aiAgentStatusCircle" class="status-indicator-circle status-indicator-circle-disconnected" />
|
|
76
|
-
</ui:VisualElement>
|
|
77
|
-
<ui:VisualElement class="timeline-content" style="align-items: flex-start; margin-top: -3px; min-height: 0;">
|
|
78
|
-
<ui:VisualElement name="aiAgentLabelsContainer" />
|
|
79
|
-
</ui:VisualElement>
|
|
80
|
-
</ui:VisualElement>
|
|
81
|
-
</ui:VisualElement>
|
|
82
|
-
<ui:VisualElement class="divider" />
|
|
83
|
-
<!-- Extensions Section ============================== (hidden: extension install flow pending; restore after packages ship) -->
|
|
84
|
-
<ui:Label text="Extensions" class="header" style="display: none;" />
|
|
85
|
-
<ui:VisualElement name="ExtensionsSection" style="display: none;" />
|
|
86
|
-
<ui:VisualElement class="divider" style="display: none;" />
|
|
87
|
-
<!-- Support Section ============================== (hidden:
|
|
88
|
-
<ui:VisualElement style="display: none;">
|
|
89
|
-
<ui:VisualElement>
|
|
90
|
-
<ui:Label text="Found an issue?" class="section-text" style="flex-grow: 1;" />
|
|
91
|
-
</ui:VisualElement>
|
|
92
|
-
<ui:VisualElement class="row-left-align">
|
|
93
|
-
<ui:Button name="btnDiscordHelp" class="btn-secondary btn-with-icon">
|
|
94
|
-
<ui:VisualElement name="btnDiscordHelpIcon" class="btn-icon" />
|
|
95
|
-
<ui:Label text="Help / Talk" class="btn-label" />
|
|
96
|
-
</ui:Button>
|
|
97
|
-
<ui:Button name="btnGitHubIssue" class="btn-secondary btn-with-icon">
|
|
98
|
-
<ui:VisualElement name="btnGitHubIssueIcon" class="btn-icon" />
|
|
99
|
-
<ui:Label text="Bug Report" class="btn-label" />
|
|
100
|
-
</ui:Button>
|
|
101
|
-
<ui:Button name="btnCheckSerialization" text="Check" class="btn-secondary" />
|
|
102
|
-
</ui:VisualElement>
|
|
103
|
-
</ui:VisualElement>
|
|
104
|
-
<ui:VisualElement class="divider" style="display: none;" />
|
|
105
|
-
<!-- Thanks Section ============================== (hidden) -->
|
|
106
|
-
<ui:VisualElement style="display: none;">
|
|
107
|
-
<ui:Label text="Thanks for using <b><color=red>AI</color> Game Developer</b>. If you like it, please give the project a star on GitHub. Sincerely, Ivan Murzak" class="section-text" />
|
|
108
|
-
<ui:Button name="btnGitHubStar" class="btn-secondary btn-with-icon btn-golden btn-floating">
|
|
109
|
-
<ui:VisualElement name="btnGitHubStarIcon" class="btn-icon" />
|
|
110
|
-
<ui:Label text="GitHub Star" class="btn-label" />
|
|
111
|
-
</ui:Button>
|
|
112
|
-
</ui:VisualElement>
|
|
113
|
-
</ui:VisualElement>
|
|
114
|
-
</ui:ScrollView>
|
|
115
|
-
</ui:UXML>
|
|
1
|
+
<ui:UXML xmlns:ui="UnityEngine.UIElements" xmlns:uie="UnityEditor.UIElements" xsi="http://www.w3.org/2001/XMLSchema-instance" engine="UnityEngine.UIElements" editor="UnityEditor.UIElements" noNamespaceSchemaLocation="../../../../../UIElementsSchema/UIElements.xsd" editor-extension-mode="False">
|
|
2
|
+
<ui:ScrollView>
|
|
3
|
+
<ui:VisualElement class="container" style="min-width: 320px;">
|
|
4
|
+
<!-- Header Section -->
|
|
5
|
+
<ui:Box name="contHeader" style="background-color: rgba(222, 222, 222, 0); flex-direction: row; flex-shrink: 0;">
|
|
6
|
+
<ui:VisualElement style="flex-grow: 1; background-color: rgba(0, 0, 0, 0);">
|
|
7
|
+
<ui:DropdownField label="Log Level" name="dropdownLogLevel" class="content-item styled-dropdown" />
|
|
8
|
+
<ui:IntegerField label="Timeout (ms)" name="inputTimeoutMs" value="10000" class="content-item" />
|
|
9
|
+
<ui:TextField picking-mode="Ignore" label="Version" value="0.0.0" readonly="true" name="currentVersion" focusable="false" class="content-item transparent-text-field" />
|
|
10
|
+
</ui:VisualElement>
|
|
11
|
+
<ui:VisualElement name="imgLogoPivot" class="animated-selectable" style="flex-grow: 0; height: 60px; width: 60px; right: 0; margin-left: 15px; flex-shrink: 0; margin-right: 0px; margin-top: 2px; flex-direction: row;">
|
|
12
|
+
<ui:VisualElement name="imgLogo" style="flex-grow: 1; background-color: rgba(0, 0, 0, 0); background-image: url("project://database/Packages/com.atelierai.unity.copilot/Editor/Gizmos/logo_512.png?fileID=2800000&guid=bbb0f64bd8f15164781e01168cd6fa4f&type=3#logo_512"); -unity-background-scale-mode: stretch-to-fill; align-self: stretch;" />
|
|
13
|
+
</ui:VisualElement>
|
|
14
|
+
</ui:Box>
|
|
15
|
+
<ui:VisualElement class="divider" />
|
|
16
|
+
<!-- Connection Section ============================== -->
|
|
17
|
+
<ui:VisualElement class="row" style="margin-top: 0; align-items: center;">
|
|
18
|
+
<ui:Label text="Connection" class="header" />
|
|
19
|
+
<ui:VisualElement name="segmentConnectionMode" style="flex-direction: row; flex-grow: 1; justify-content: flex-end; margin-right: 0;" />
|
|
20
|
+
</ui:VisualElement>
|
|
21
|
+
<ui:TextField picking-mode="Ignore" label="Server URL" value="http://localhost:8080" name="InputServerURL" class="content-item styled-text-field" />
|
|
22
|
+
<!-- Cloud Authorization (visible in Cloud mode only) -->
|
|
23
|
+
<ui:VisualElement name="cloudAuthSection" style="flex-direction: column; margin-bottom: 8px; display: none;">
|
|
24
|
+
<ui:VisualElement style="flex-direction: row; margin-top: 2px; align-items: center;">
|
|
25
|
+
<ui:TextField name="inputCloudToken" label="" placeholder-text="Cloud Token" readonly="true" password="true" style="flex-grow: 1;" class="token-input" />
|
|
26
|
+
<ui:Button name="btnCloudRevoke" text="Revoke" tooltip="Logout from the Cloud server. Clears the stored authentication token and disconnects Unity from the cloud." class="btn-compact btn-alert" style="display: none;" />
|
|
27
|
+
<ui:Button name="btnCloudAuthorize" text="Authorize" tooltip="Authenticate with the Cloud server using device code flow. Opens a browser to complete authorization." class="btn-compact" />
|
|
28
|
+
</ui:VisualElement>
|
|
29
|
+
<ui:Label name="labelCloudAuthStatus" text="" class="section-desc" style="margin-top: 2px; display: none;" />
|
|
30
|
+
</ui:VisualElement>
|
|
31
|
+
<!-- Connection Auth Alert (visible in Cloud mode when not authorized) -->
|
|
32
|
+
<ui:VisualElement name="connectionAlertContainer" />
|
|
33
|
+
<!-- Connection Timeline -->
|
|
34
|
+
<ui:VisualElement name="ConnectionTimeline" class="connection-timeline">
|
|
35
|
+
<!-- Point 1: Unity -->
|
|
36
|
+
<ui:VisualElement name="TimelinePointUnity" class="timeline-point">
|
|
37
|
+
<ui:VisualElement class="timeline-indicator">
|
|
38
|
+
<ui:VisualElement name="connectionStatusCircle" class="status-indicator-circle status-indicator-circle-disconnected" />
|
|
39
|
+
<ui:VisualElement class="timeline-line" style="margin-bottom: -4px;" />
|
|
40
|
+
</ui:VisualElement>
|
|
41
|
+
<ui:VisualElement class="timeline-content">
|
|
42
|
+
<ui:Label text="Unity" name="connectionStatusText" class="timeline-label" />
|
|
43
|
+
<ui:Button name="btnConnectOrDisconnect" text="Connect" class="btn-primary timeline-btn" />
|
|
44
|
+
</ui:VisualElement>
|
|
45
|
+
</ui:VisualElement>
|
|
46
|
+
<!-- Point 2: Server -->
|
|
47
|
+
<ui:VisualElement name="TimelinePointServer" class="timeline-point frame-group frame-server">
|
|
48
|
+
<ui:VisualElement class="timeline-indicator" style="justify-content: flex-start;">
|
|
49
|
+
<ui:VisualElement name="serverStatusCircle" class="status-indicator-circle status-indicator-circle-disconnected" style="margin-top: 13px;" />
|
|
50
|
+
<ui:VisualElement class="timeline-line" style="top: 29px; margin-top: 0; margin-bottom: -4px;" />
|
|
51
|
+
</ui:VisualElement>
|
|
52
|
+
<ui:VisualElement style="flex-direction: column; flex-grow: 1;">
|
|
53
|
+
<!-- Row 1: Server label + Start/Stop button (fixed height, aligns with status circle) -->
|
|
54
|
+
<ui:VisualElement name="serverStatusControl" class="timeline-content" style="min-height: 40px;">
|
|
55
|
+
<ui:Label text="Server" name="serverLabel" class="timeline-label" />
|
|
56
|
+
<ui:Button name="btnStartStopServer" text="Start" class="btn-secondary timeline-btn" />
|
|
57
|
+
</ui:VisualElement>
|
|
58
|
+
<!-- Row 2: Authorization -->
|
|
59
|
+
<ui:VisualElement style="flex-direction: row; align-items: center; justify-content: space-between; margin-top: 2px; margin-bottom: 2px;">
|
|
60
|
+
<ui:Label name="labelAuthorizationToken" text="Authorization Token" class="section-desc" style="margin-bottom: 0;" />
|
|
61
|
+
<ui:VisualElement name="segmentAuthorization" />
|
|
62
|
+
</ui:VisualElement>
|
|
63
|
+
<!-- Row 3: Authorization Token -->
|
|
64
|
+
<ui:VisualElement name="tokenSection" style="flex-direction: column; margin-top: 2px; margin-bottom: 2px;">
|
|
65
|
+
<ui:VisualElement style="flex-direction: row;">
|
|
66
|
+
<ui:TextField name="inputAuthorizationToken" label="" placeholder-text="Token" readonly="true" password="true" class="token-input" />
|
|
67
|
+
<ui:Button name="btnGenerateToken" text="New" class="btn-compact" />
|
|
68
|
+
</ui:VisualElement>
|
|
69
|
+
</ui:VisualElement>
|
|
70
|
+
</ui:VisualElement>
|
|
71
|
+
</ui:VisualElement>
|
|
72
|
+
<!-- Point 3: AI Agent -->
|
|
73
|
+
<ui:VisualElement name="TimelinePointAiAgent" class="timeline-point timeline-point-last" style="">
|
|
74
|
+
<ui:VisualElement class="timeline-indicator">
|
|
75
|
+
<ui:VisualElement name="aiAgentStatusCircle" class="status-indicator-circle status-indicator-circle-disconnected" />
|
|
76
|
+
</ui:VisualElement>
|
|
77
|
+
<ui:VisualElement class="timeline-content" style="align-items: flex-start; margin-top: -3px; min-height: 0;">
|
|
78
|
+
<ui:VisualElement name="aiAgentLabelsContainer" />
|
|
79
|
+
</ui:VisualElement>
|
|
80
|
+
</ui:VisualElement>
|
|
81
|
+
</ui:VisualElement>
|
|
82
|
+
<ui:VisualElement class="divider" />
|
|
83
|
+
<!-- Extensions Section ============================== (hidden: extension install flow pending; restore after packages ship) -->
|
|
84
|
+
<ui:Label text="Extensions" class="header" style="display: none;" />
|
|
85
|
+
<ui:VisualElement name="ExtensionsSection" style="display: none;" />
|
|
86
|
+
<ui:VisualElement class="divider" style="display: none;" />
|
|
87
|
+
<!-- Support Section ============================== (hidden: nothing to configure here; social links retained for reuse) -->
|
|
88
|
+
<ui:VisualElement style="display: none;">
|
|
89
|
+
<ui:VisualElement>
|
|
90
|
+
<ui:Label text="Found an issue?" class="section-text" style="flex-grow: 1;" />
|
|
91
|
+
</ui:VisualElement>
|
|
92
|
+
<ui:VisualElement class="row-left-align">
|
|
93
|
+
<ui:Button name="btnDiscordHelp" class="btn-secondary btn-with-icon">
|
|
94
|
+
<ui:VisualElement name="btnDiscordHelpIcon" class="btn-icon" />
|
|
95
|
+
<ui:Label text="Help / Talk" class="btn-label" />
|
|
96
|
+
</ui:Button>
|
|
97
|
+
<ui:Button name="btnGitHubIssue" class="btn-secondary btn-with-icon">
|
|
98
|
+
<ui:VisualElement name="btnGitHubIssueIcon" class="btn-icon" />
|
|
99
|
+
<ui:Label text="Bug Report" class="btn-label" />
|
|
100
|
+
</ui:Button>
|
|
101
|
+
<ui:Button name="btnCheckSerialization" text="Check" class="btn-secondary" />
|
|
102
|
+
</ui:VisualElement>
|
|
103
|
+
</ui:VisualElement>
|
|
104
|
+
<ui:VisualElement class="divider" style="display: none;" />
|
|
105
|
+
<!-- Thanks Section ============================== (hidden) -->
|
|
106
|
+
<ui:VisualElement style="display: none;">
|
|
107
|
+
<ui:Label text="Thanks for using <b><color=red>AI</color> Game Developer</b>. If you like it, please give the project a star on GitHub. Sincerely, Ivan Murzak" class="section-text" />
|
|
108
|
+
<ui:Button name="btnGitHubStar" class="btn-secondary btn-with-icon btn-golden btn-floating">
|
|
109
|
+
<ui:VisualElement name="btnGitHubStarIcon" class="btn-icon" />
|
|
110
|
+
<ui:Label text="GitHub Star" class="btn-label" />
|
|
111
|
+
</ui:Button>
|
|
112
|
+
</ui:VisualElement>
|
|
113
|
+
</ui:VisualElement>
|
|
114
|
+
</ui:ScrollView>
|
|
115
|
+
</ui:UXML>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|