재구성 AX Agent 설정과 채팅 UI를 Claude형 구조로
Some checks failed
Release Gate / gate (push) Has been cancelled
Some checks failed
Release Gate / gate (push) Has been cancelled
This commit is contained in:
@@ -112,6 +112,36 @@
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
<Style x:Key="SettingsNavBtn" TargetType="RadioButton">
|
||||
<Setter Property="Foreground" Value="{DynamicResource SecondaryText}"/>
|
||||
<Setter Property="FontSize" Value="13"/>
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="Padding" Value="14,10"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="RadioButton">
|
||||
<Border x:Name="Bd"
|
||||
Background="Transparent"
|
||||
CornerRadius="10"
|
||||
Padding="{TemplateBinding Padding}">
|
||||
<ContentPresenter VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="IsMouseOver" Value="True">
|
||||
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource ItemHoverBackground}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource PrimaryText}"/>
|
||||
</Trigger>
|
||||
<Trigger Property="IsChecked" Value="True">
|
||||
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource HintBackground}"/>
|
||||
<Setter Property="Foreground" Value="{DynamicResource PrimaryText}"/>
|
||||
<Setter Property="FontWeight" Value="Bold"/>
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
<!-- 모든 드롭다운 메뉴는 코드-비하인드에서 커스텀 Popup으로 렌더링 -->
|
||||
</Window.Resources>
|
||||
|
||||
@@ -185,7 +215,9 @@
|
||||
<!-- 좌측: 사이드바 -->
|
||||
<!-- ══════════════════════════════════════════════════════ -->
|
||||
<Border x:Name="SidebarPanel" Grid.Column="1"
|
||||
Background="{DynamicResource ItemBackground}">
|
||||
Background="{DynamicResource LauncherBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
BorderThickness="0,0,1,0">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="52"/>
|
||||
@@ -198,14 +230,14 @@
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- 헤더: 로고 + 새 대화 -->
|
||||
<Grid Grid.Row="0" Margin="14,0">
|
||||
<Grid Grid.Row="0" Margin="16,0">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
|
||||
<Border Background="{DynamicResource AccentColor}" CornerRadius="6"
|
||||
Width="24" Height="24">
|
||||
<TextBlock Text="" FontFamily="Segoe MDL2 Assets" FontSize="12"
|
||||
<Border Background="{DynamicResource AccentColor}" CornerRadius="8"
|
||||
Width="28" Height="28">
|
||||
<TextBlock Text="" FontFamily="Segoe MDL2 Assets" FontSize="14"
|
||||
Foreground="White" HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
<TextBlock Text="AX Agent" FontSize="13.5" FontWeight="SemiBold"
|
||||
<TextBlock Text="AX Agent" FontSize="14.5" FontWeight="SemiBold"
|
||||
Foreground="{DynamicResource PrimaryText}"
|
||||
VerticalAlignment="Center" Margin="10,0,0,0"/>
|
||||
</StackPanel>
|
||||
@@ -219,8 +251,9 @@
|
||||
</Grid>
|
||||
|
||||
<!-- 검색 -->
|
||||
<Border Grid.Row="1" Background="{DynamicResource HintBackground}"
|
||||
CornerRadius="10" Margin="12,0,12,6" Padding="10,6">
|
||||
<Border Grid.Row="1" Background="{DynamicResource ItemBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}" BorderThickness="1"
|
||||
CornerRadius="14" Margin="12,2,12,8" Padding="12,7">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
@@ -299,12 +332,12 @@
|
||||
</Border>
|
||||
|
||||
<!-- 탭별 좌측 메뉴 -->
|
||||
<Border Grid.Row="3" Margin="12,0,12,6"
|
||||
Background="{DynamicResource HintBackground}"
|
||||
<Border Grid.Row="3" Margin="12,0,12,8"
|
||||
Background="{DynamicResource ItemBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
BorderThickness="1"
|
||||
CornerRadius="10"
|
||||
Padding="10,8">
|
||||
CornerRadius="14"
|
||||
Padding="12,10">
|
||||
<StackPanel>
|
||||
<StackPanel Orientation="Horizontal" Margin="0,0,0,4" Visibility="Collapsed">
|
||||
<TextBlock x:Name="SidebarModeBadgeIcon" Text=""
|
||||
@@ -648,6 +681,21 @@
|
||||
<Border Grid.Row="0" Background="{DynamicResource LauncherBackground}"
|
||||
BorderBrush="{DynamicResource SeparatorColor}" BorderThickness="0,0,0,1">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel Grid.Column="0"
|
||||
Orientation="Horizontal"
|
||||
VerticalAlignment="Center"
|
||||
Margin="46,0,0,0">
|
||||
<TextBlock x:Name="CurrentTabTitle"
|
||||
Text="AX Agent"
|
||||
FontSize="13"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{DynamicResource PrimaryText}"/>
|
||||
</StackPanel>
|
||||
<!-- 좌: 사이드바 토글 -->
|
||||
<Button x:Name="BtnToggleSidebar" Style="{StaticResource GhostBtn}"
|
||||
HorizontalAlignment="Left" VerticalAlignment="Center" Margin="8,0"
|
||||
@@ -658,9 +706,10 @@
|
||||
</Button>
|
||||
|
||||
<!-- 중앙: 탭 메뉴 -->
|
||||
<Border HorizontalAlignment="Center" VerticalAlignment="Center"
|
||||
<Border Grid.Column="1"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Center"
|
||||
Background="{DynamicResource HintBackground}"
|
||||
CornerRadius="10" Padding="3"
|
||||
CornerRadius="12" Padding="4"
|
||||
WindowChrome.IsHitTestVisibleInChrome="True">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<RadioButton x:Name="TabChat" Content="Chat" Style="{StaticResource TopTabBtn}"
|
||||
@@ -676,7 +725,8 @@
|
||||
</Border>
|
||||
|
||||
<!-- 우: 최소화 + 최대화 + 닫기 -->
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right"
|
||||
<StackPanel Grid.Column="2"
|
||||
Orientation="Horizontal" HorizontalAlignment="Right"
|
||||
VerticalAlignment="Center" Margin="0,0,4,0"
|
||||
WindowChrome.IsHitTestVisibleInChrome="True">
|
||||
<Button Style="{StaticResource GhostBtn}" Click="BtnMinimize_Click" ToolTip="최소화">
|
||||
@@ -744,9 +794,10 @@
|
||||
<ScrollViewer x:Name="MessageScroll" Grid.Row="3"
|
||||
VerticalScrollBarVisibility="Auto"
|
||||
HorizontalScrollBarVisibility="Disabled"
|
||||
Background="{DynamicResource LauncherBackground}">
|
||||
Background="{DynamicResource LauncherBackground}"
|
||||
Padding="22,20,22,0">
|
||||
<StackPanel x:Name="MessagePanel"
|
||||
Margin="0,34,0,22"
|
||||
Margin="0,20,0,28"
|
||||
HorizontalAlignment="Stretch">
|
||||
<StackPanel.RenderTransform>
|
||||
<TranslateTransform/>
|
||||
@@ -757,7 +808,7 @@
|
||||
<!-- 빈 상태 -->
|
||||
<StackPanel x:Name="EmptyState" Grid.Row="3"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Center"
|
||||
MaxWidth="520">
|
||||
MaxWidth="660">
|
||||
|
||||
<!-- 부유 AI 아이콘 -->
|
||||
<Border x:Name="EmptyIcon" CornerRadius="24" Width="72" Height="72"
|
||||
@@ -791,11 +842,11 @@
|
||||
HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
||||
</Border>
|
||||
|
||||
<TextBlock x:Name="EmptyStateTitle" Text="작업 유형을 선택하세요" FontSize="18" FontWeight="SemiBold"
|
||||
<TextBlock x:Name="EmptyStateTitle" Text="작업 유형을 선택하세요" FontSize="22" FontWeight="SemiBold"
|
||||
Foreground="{DynamicResource PrimaryText}" HorizontalAlignment="Center"/>
|
||||
<TextBlock x:Name="EmptyStateDesc" Text="주제에 맞는 전문 프리셋이 자동 적용됩니다"
|
||||
FontSize="12" Foreground="{DynamicResource SecondaryText}"
|
||||
HorizontalAlignment="Center" Margin="0,8,0,24"/>
|
||||
FontSize="12.5" Foreground="{DynamicResource SecondaryText}"
|
||||
HorizontalAlignment="Center" Margin="0,10,0,28"/>
|
||||
|
||||
<!-- 대화 주제 버튼 (프리셋에서 동적 생성) -->
|
||||
<WrapPanel x:Name="TopicButtonPanel" HorizontalAlignment="Center"
|
||||
@@ -992,15 +1043,18 @@
|
||||
</Border>
|
||||
|
||||
<!-- ── 입력 바 ── -->
|
||||
<Border Grid.Row="4" Margin="48,0,48,20">
|
||||
<Border Grid.Row="4"
|
||||
Margin="28,0,28,22"
|
||||
HorizontalAlignment="Center"
|
||||
MaxWidth="980">
|
||||
<StackPanel>
|
||||
<Border x:Name="DraftPreviewCard"
|
||||
Visibility="Collapsed"
|
||||
Background="{DynamicResource ItemBackground}"
|
||||
Background="{DynamicResource LauncherBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
BorderThickness="1"
|
||||
CornerRadius="18"
|
||||
Padding="12,10,12,10"
|
||||
CornerRadius="22"
|
||||
Padding="14,12,14,12"
|
||||
Margin="0,0,0,10">
|
||||
<Border.Effect>
|
||||
<DropShadowEffect BlurRadius="14" ShadowDepth="0" Opacity="0.06"/>
|
||||
@@ -1056,7 +1110,7 @@
|
||||
<StackPanel x:Name="DraftQueuePanel"
|
||||
Visibility="Collapsed"
|
||||
Margin="0,0,0,10"/>
|
||||
<Border x:Name="InputGlowBorder" CornerRadius="26" Opacity="0"
|
||||
<Border x:Name="InputGlowBorder" CornerRadius="30" Opacity="0"
|
||||
Margin="-3" IsHitTestVisible="False">
|
||||
<Border.BorderBrush>
|
||||
<LinearGradientBrush x:Name="RainbowBrush" StartPoint="0,0" EndPoint="1,1">
|
||||
@@ -1078,11 +1132,11 @@
|
||||
</Border>
|
||||
<!-- 실제 입력 영역 -->
|
||||
<Border x:Name="InputBorder"
|
||||
Background="{DynamicResource ItemBackground}"
|
||||
CornerRadius="22" Padding="6"
|
||||
BorderBrush="{DynamicResource BorderColor}" BorderThickness="1">
|
||||
Background="{DynamicResource LauncherBackground}"
|
||||
CornerRadius="28" Padding="8"
|
||||
BorderBrush="{DynamicResource BorderColor}" BorderThickness="1.2">
|
||||
<Border.Effect>
|
||||
<DropShadowEffect BlurRadius="18" ShadowDepth="0" Opacity="0.08"/>
|
||||
<DropShadowEffect BlurRadius="22" ShadowDepth="0" Opacity="0.10"/>
|
||||
</Border.Effect>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
@@ -1093,7 +1147,7 @@
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Row 0: 모델 셀렉터 + 템플릿 버튼 -->
|
||||
<Grid Grid.Row="0" Margin="5,1,5,2">
|
||||
<Grid Grid.Row="0" Margin="8,4,8,6">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
@@ -1104,8 +1158,8 @@
|
||||
Grid.Column="0"
|
||||
HorizontalAlignment="Left"
|
||||
Margin="0"
|
||||
MinHeight="26"
|
||||
Padding="9,2.5"
|
||||
MinHeight="30"
|
||||
Padding="11,4"
|
||||
Click="BtnModelSelector_Click"
|
||||
ToolTip="모델/추론 빠른 설정"
|
||||
WindowChrome.IsHitTestVisibleInChrome="True">
|
||||
@@ -1128,9 +1182,9 @@
|
||||
Grid.Column="2"
|
||||
HorizontalAlignment="Right"
|
||||
Margin="0"
|
||||
MinHeight="26"
|
||||
MinHeight="30"
|
||||
MinWidth="60"
|
||||
Padding="7,2.5"
|
||||
Padding="10,4"
|
||||
Click="BtnTemplateSelector_Click"
|
||||
ToolTip="프롬프트 템플릿"
|
||||
WindowChrome.IsHitTestVisibleInChrome="True">
|
||||
@@ -1151,9 +1205,9 @@
|
||||
<!-- Row 1: 통합 설정 패널 -->
|
||||
<Border x:Name="InlineSettingsPanel"
|
||||
Grid.Row="1"
|
||||
Margin="8,2,8,3"
|
||||
Padding="9,8,9,7"
|
||||
CornerRadius="12"
|
||||
Margin="8,2,8,6"
|
||||
Padding="11,10,11,9"
|
||||
CornerRadius="14"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
BorderThickness="1"
|
||||
Background="{DynamicResource SecondaryBackground}"
|
||||
@@ -1275,7 +1329,7 @@
|
||||
</ItemsControl>
|
||||
|
||||
<!-- 입력 영역 (Row 3) -->
|
||||
<Grid Grid.Row="3">
|
||||
<Grid Grid.Row="3" Margin="2,0,2,2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
@@ -1290,7 +1344,7 @@
|
||||
Foreground="{DynamicResource PrimaryText}"
|
||||
Background="Transparent"
|
||||
CaretBrush="{DynamicResource AccentColor}"
|
||||
BorderThickness="0" Padding="12,8"
|
||||
BorderThickness="0" Padding="14,10"
|
||||
VerticalContentAlignment="Top"
|
||||
AcceptsReturn="True"
|
||||
PreviewKeyDown="InputBox_PreviewKeyDown"
|
||||
@@ -1330,7 +1384,7 @@
|
||||
|
||||
<!-- 파일 첨부 -->
|
||||
<Button x:Name="BtnAttach" Style="{StaticResource GhostBtn}" Grid.Column="1"
|
||||
Width="34" Height="34" Margin="0,0,2,0" VerticalAlignment="Bottom"
|
||||
Width="36" Height="36" Margin="0,0,4,0" VerticalAlignment="Bottom"
|
||||
Click="BtnAttach_Click" ToolTip="파일 첨부"
|
||||
WindowChrome.IsHitTestVisibleInChrome="True"
|
||||
AllowDrop="True">
|
||||
@@ -1340,7 +1394,7 @@
|
||||
|
||||
<!-- 내보내기 -->
|
||||
<Button Style="{StaticResource GhostBtn}" Grid.Column="2"
|
||||
Width="34" Height="34" Margin="0,0,2,0" VerticalAlignment="Bottom"
|
||||
Width="36" Height="36" Margin="0,0,4,0" VerticalAlignment="Bottom"
|
||||
Click="BtnExport_Click" ToolTip="대화 내보내기"
|
||||
WindowChrome.IsHitTestVisibleInChrome="True">
|
||||
<TextBlock Text="" FontFamily="Segoe MDL2 Assets" FontSize="14"
|
||||
@@ -1349,7 +1403,7 @@
|
||||
|
||||
<!-- 일시정지 -->
|
||||
<Border x:Name="BtnPause" Grid.Column="3"
|
||||
Width="32" Height="32" Margin="0,0,2,0"
|
||||
Width="34" Height="34" Margin="0,0,4,0"
|
||||
CornerRadius="8" Cursor="Hand"
|
||||
Background="{DynamicResource ItemHoverBackground}" Visibility="Collapsed"
|
||||
VerticalAlignment="Bottom"
|
||||
@@ -1363,7 +1417,7 @@
|
||||
|
||||
<!-- 중지/전송 -->
|
||||
<Button x:Name="BtnStop" Grid.Column="3"
|
||||
Width="38" Height="38" Margin="4,0,4,0"
|
||||
Width="40" Height="40" Margin="4,0,4,0"
|
||||
Cursor="Hand" Click="BtnStop_Click"
|
||||
VerticalAlignment="Bottom" Visibility="Collapsed"
|
||||
WindowChrome.IsHitTestVisibleInChrome="True">
|
||||
@@ -1378,7 +1432,7 @@
|
||||
</Button.Template>
|
||||
</Button>
|
||||
<Button x:Name="BtnSend" Grid.Column="4"
|
||||
Width="38" Height="38" Margin="4,0,4,0"
|
||||
Width="42" Height="42" Margin="6,0,4,0"
|
||||
Cursor="Hand" Click="BtnSend_Click"
|
||||
VerticalAlignment="Bottom">
|
||||
<Button.Template>
|
||||
@@ -1657,6 +1711,507 @@
|
||||
</Border>
|
||||
</Grid>
|
||||
|
||||
<!-- ══ AX Agent 설정 오버레이 (채팅 화면 내부 전체 덮기) ══ -->
|
||||
<Border x:Name="AgentSettingsOverlay"
|
||||
Grid.Column="2"
|
||||
Grid.ColumnSpan="3"
|
||||
Background="{DynamicResource LauncherBackground}"
|
||||
Visibility="Collapsed"
|
||||
Panel.ZIndex="120">
|
||||
<Grid Margin="0">
|
||||
<Border Background="{DynamicResource LauncherBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
BorderThickness="1"
|
||||
CornerRadius="0"
|
||||
Padding="0">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="220"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Grid.RowSpan="2"
|
||||
Grid.Column="0"
|
||||
Background="{DynamicResource LauncherBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
BorderThickness="0,0,1,0">
|
||||
<StackPanel Margin="24,26,20,18">
|
||||
<TextBlock Text="AX Agent 설정"
|
||||
FontSize="26"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{DynamicResource PrimaryText}"
|
||||
Margin="0,0,0,8"/>
|
||||
<TextBlock Text="핵심 동작과 연결 설정을 이 화면에서 바로 관리합니다."
|
||||
FontSize="12.5"
|
||||
TextWrapping="Wrap"
|
||||
Foreground="{DynamicResource SecondaryText}"
|
||||
Margin="0,0,0,20"/>
|
||||
<TextBlock Text="환경"
|
||||
FontSize="11"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{DynamicResource SecondaryText}"
|
||||
Margin="6,0,0,10"/>
|
||||
<RadioButton x:Name="OverlayNavCommon"
|
||||
Content="일반"
|
||||
GroupName="OverlayNav"
|
||||
Style="{StaticResource SettingsNavBtn}"
|
||||
HorizontalAlignment="Stretch"
|
||||
Checked="OverlayNav_Checked"
|
||||
Tag="common"
|
||||
IsChecked="True"/>
|
||||
<RadioButton x:Name="OverlayNavService"
|
||||
Content="서비스와 모델"
|
||||
GroupName="OverlayNav"
|
||||
Style="{StaticResource SettingsNavBtn}"
|
||||
HorizontalAlignment="Stretch"
|
||||
Margin="0,6,0,0"
|
||||
Checked="OverlayNav_Checked"
|
||||
Tag="service"/>
|
||||
<RadioButton x:Name="OverlayNavPermission"
|
||||
Content="권한과 실행"
|
||||
GroupName="OverlayNav"
|
||||
Style="{StaticResource SettingsNavBtn}"
|
||||
HorizontalAlignment="Stretch"
|
||||
Margin="0,6,0,0"
|
||||
Checked="OverlayNav_Checked"
|
||||
Tag="permission"/>
|
||||
<RadioButton x:Name="OverlayNavAdvanced"
|
||||
Content="고급"
|
||||
GroupName="OverlayNav"
|
||||
Style="{StaticResource SettingsNavBtn}"
|
||||
HorizontalAlignment="Stretch"
|
||||
Margin="0,6,0,0"
|
||||
Checked="OverlayNav_Checked"
|
||||
Tag="advanced"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<Grid Grid.Row="0" Grid.Column="1" Margin="16,14,16,10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Style="{StaticResource GhostBtn}"
|
||||
Padding="10,6"
|
||||
Click="BtnOverlaySettingsClose_Click"
|
||||
ToolTip="대화로 돌아가기">
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text=""
|
||||
FontFamily="Segoe MDL2 Assets"
|
||||
FontSize="12"
|
||||
Foreground="{DynamicResource SecondaryText}"
|
||||
Margin="0,0,6,0"/>
|
||||
<TextBlock Text="설정"
|
||||
FontSize="12.5"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{DynamicResource PrimaryText}"/>
|
||||
</StackPanel>
|
||||
</Button>
|
||||
<StackPanel Grid.Column="1" Orientation="Vertical" Margin="16,0,0,0">
|
||||
<TextBlock Text="AX Agent 설정"
|
||||
FontSize="24"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{DynamicResource PrimaryText}"/>
|
||||
<TextBlock Text="채팅을 벗어나지 않고 AX Agent 전용 설정을 정리합니다"
|
||||
Margin="0,6,0,0"
|
||||
FontSize="12.5"
|
||||
Foreground="{DynamicResource SecondaryText}"/>
|
||||
</StackPanel>
|
||||
<Button Grid.Column="2"
|
||||
Style="{StaticResource GhostBtn}"
|
||||
Padding="8,6"
|
||||
Click="BtnOverlaySettingsClose_Click"
|
||||
ToolTip="설정 닫기">
|
||||
<TextBlock Text=""
|
||||
FontFamily="Segoe MDL2 Assets"
|
||||
FontSize="12"
|
||||
Foreground="{DynamicResource SecondaryText}"/>
|
||||
</Button>
|
||||
</Grid>
|
||||
<ScrollViewer Grid.Row="1" Grid.Column="1"
|
||||
VerticalScrollBarVisibility="Auto"
|
||||
HorizontalScrollBarVisibility="Disabled"
|
||||
Padding="16,4,16,16">
|
||||
<StackPanel>
|
||||
<Border x:Name="OverlaySectionService"
|
||||
Background="{DynamicResource ItemBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
BorderThickness="1"
|
||||
CornerRadius="12"
|
||||
Padding="12"
|
||||
Margin="0,0,0,10">
|
||||
<StackPanel>
|
||||
<TextBlock Text="사용 서비스"
|
||||
FontSize="12"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{DynamicResource PrimaryText}"/>
|
||||
<TextBlock Text="대화에 사용할 LLM 서비스와 모델을 선택합니다."
|
||||
Margin="0,4,0,10"
|
||||
FontSize="11"
|
||||
Foreground="{DynamicResource SecondaryText}"/>
|
||||
<WrapPanel Margin="0,0,0,8">
|
||||
<Border x:Name="OverlaySvcOllamaCard"
|
||||
Cursor="Hand"
|
||||
CornerRadius="10"
|
||||
BorderThickness="1"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
Padding="10,8"
|
||||
Margin="0,0,8,8"
|
||||
MouseLeftButtonUp="OverlaySvcOllamaCard_MouseLeftButtonUp">
|
||||
<TextBlock Text="Ollama" FontSize="12" Foreground="{DynamicResource PrimaryText}"/>
|
||||
</Border>
|
||||
<Border x:Name="OverlaySvcVllmCard"
|
||||
Cursor="Hand"
|
||||
CornerRadius="10"
|
||||
BorderThickness="1"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
Padding="10,8"
|
||||
Margin="0,0,8,8"
|
||||
MouseLeftButtonUp="OverlaySvcVllmCard_MouseLeftButtonUp">
|
||||
<TextBlock Text="vLLM" FontSize="12" Foreground="{DynamicResource PrimaryText}"/>
|
||||
</Border>
|
||||
<Border x:Name="OverlaySvcGeminiCard"
|
||||
Cursor="Hand"
|
||||
CornerRadius="10"
|
||||
BorderThickness="1"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
Padding="10,8"
|
||||
Margin="0,0,8,8"
|
||||
MouseLeftButtonUp="OverlaySvcGeminiCard_MouseLeftButtonUp">
|
||||
<TextBlock Text="Gemini" FontSize="12" Foreground="{DynamicResource PrimaryText}"/>
|
||||
</Border>
|
||||
<Border x:Name="OverlaySvcClaudeCard"
|
||||
Cursor="Hand"
|
||||
CornerRadius="10"
|
||||
BorderThickness="1"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
Padding="10,8"
|
||||
Margin="0,0,8,8"
|
||||
MouseLeftButtonUp="OverlaySvcClaudeCard_MouseLeftButtonUp">
|
||||
<TextBlock Text="Claude" FontSize="12" Foreground="{DynamicResource PrimaryText}"/>
|
||||
</Border>
|
||||
</WrapPanel>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel Margin="0,0,6,0">
|
||||
<TextBlock Text="서비스"
|
||||
FontSize="11"
|
||||
Foreground="{DynamicResource SecondaryText}"
|
||||
Margin="0,0,0,6"/>
|
||||
<ComboBox x:Name="CmbOverlayService"
|
||||
Height="30"
|
||||
SelectionChanged="CmbOverlayService_SelectionChanged"/>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Column="1" Margin="6,0,0,0">
|
||||
<TextBlock Text="모델"
|
||||
FontSize="11"
|
||||
Foreground="{DynamicResource SecondaryText}"
|
||||
Margin="0,0,0,6"/>
|
||||
<ComboBox x:Name="CmbOverlayModel"
|
||||
Height="30"
|
||||
SelectionChanged="CmbOverlayModel_SelectionChanged"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<Grid x:Name="OverlayServiceDetailPanel" Margin="0,12,0,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel Margin="0,0,6,0">
|
||||
<TextBlock x:Name="OverlayEndpointLabel"
|
||||
Text="기본 서버 주소"
|
||||
FontSize="11.5"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{DynamicResource PrimaryText}"/>
|
||||
<TextBlock x:Name="OverlayEndpointHint"
|
||||
Text="선택한 서비스의 기본 연결 주소를 입력합니다."
|
||||
Margin="0,4,0,6"
|
||||
FontSize="11"
|
||||
Foreground="{DynamicResource SecondaryText}"/>
|
||||
<TextBox x:Name="TxtOverlayServiceEndpoint"
|
||||
Padding="9,7"
|
||||
Background="{DynamicResource LauncherBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
BorderThickness="1"
|
||||
Foreground="{DynamicResource PrimaryText}"
|
||||
FontSize="12"/>
|
||||
</StackPanel>
|
||||
<StackPanel Grid.Column="1" Margin="6,0,0,0">
|
||||
<TextBlock x:Name="OverlayApiKeyLabel"
|
||||
Text="API 키"
|
||||
FontSize="11.5"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{DynamicResource PrimaryText}"/>
|
||||
<TextBlock x:Name="OverlayApiKeyHint"
|
||||
Text="접근 제어가 필요한 경우에만 입력합니다."
|
||||
Margin="0,4,0,6"
|
||||
FontSize="11"
|
||||
Foreground="{DynamicResource SecondaryText}"/>
|
||||
<PasswordBox x:Name="TxtOverlayServiceApiKey"
|
||||
Padding="9,7"
|
||||
Background="{DynamicResource LauncherBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
BorderThickness="1"
|
||||
FontSize="12"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<Border x:Name="OverlaySectionQuick"
|
||||
Background="{DynamicResource ItemBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
BorderThickness="1"
|
||||
CornerRadius="12"
|
||||
Padding="12">
|
||||
<StackPanel>
|
||||
<TextBlock Text="빠른 제어"
|
||||
FontSize="12"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{DynamicResource PrimaryText}"/>
|
||||
<TextBlock Text="Codex/Claude 스타일로 핵심 기능만 간결하게 제공합니다."
|
||||
Margin="0,4,0,10"
|
||||
FontSize="11"
|
||||
Foreground="{DynamicResource SecondaryText}"/>
|
||||
<WrapPanel>
|
||||
<Button x:Name="BtnOverlayFastMode"
|
||||
Style="{StaticResource OutlineHoverBtn}"
|
||||
Margin="0,0,8,8"
|
||||
Padding="11,6"
|
||||
Content="Fast"
|
||||
Click="BtnInlineFastMode_Click"/>
|
||||
<Button x:Name="BtnOverlayReasoning"
|
||||
Style="{StaticResource OutlineHoverBtn}"
|
||||
Margin="0,0,8,8"
|
||||
Padding="11,6"
|
||||
Content="Reasoning"
|
||||
Click="BtnInlineReasoning_Click"/>
|
||||
<Button x:Name="BtnOverlayPlanMode"
|
||||
Style="{StaticResource OutlineHoverBtn}"
|
||||
Margin="0,0,8,8"
|
||||
Padding="11,6"
|
||||
Content="Plan"
|
||||
Click="BtnInlinePlanMode_Click"/>
|
||||
<Button x:Name="BtnOverlayPermission"
|
||||
Style="{StaticResource OutlineHoverBtn}"
|
||||
Margin="0,0,8,8"
|
||||
Padding="11,6"
|
||||
Content="권한"
|
||||
Click="BtnInlinePermission_Click"/>
|
||||
</WrapPanel>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<Border x:Name="OverlaySectionDetail"
|
||||
Background="{DynamicResource ItemBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
BorderThickness="1"
|
||||
CornerRadius="12"
|
||||
Padding="12"
|
||||
Margin="0,10,0,0">
|
||||
<StackPanel>
|
||||
<TextBlock x:Name="OverlayAnchorCommon"
|
||||
Text="상세 설정"
|
||||
FontSize="14"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{DynamicResource PrimaryText}"/>
|
||||
<TextBlock Text="트레이의 AX Agent 설정 항목을 이 화면으로 통합합니다."
|
||||
Margin="0,4,0,10"
|
||||
FontSize="11"
|
||||
Foreground="{DynamicResource SecondaryText}"/>
|
||||
<Grid x:Name="OverlayAiEnabledRow" Margin="0,0,0,12">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel>
|
||||
<TextBlock Text="AX Agent 사용"
|
||||
FontSize="12.5"
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{DynamicResource PrimaryText}"/>
|
||||
<TextBlock Text="비활성화하면 AX Agent 대화 기능이 숨겨집니다."
|
||||
Margin="0,4,0,0"
|
||||
FontSize="11"
|
||||
Foreground="{DynamicResource SecondaryText}"/>
|
||||
</StackPanel>
|
||||
<CheckBox x:Name="ChkOverlayAiEnabled"
|
||||
Grid.Column="1"
|
||||
VerticalAlignment="Center"
|
||||
Style="{StaticResource ToggleSwitch}"/>
|
||||
</Grid>
|
||||
<WrapPanel x:Name="OverlayThemePanel" Margin="0,0,0,8">
|
||||
<Border x:Name="OverlayThemeSystemCard"
|
||||
Cursor="Hand"
|
||||
CornerRadius="10"
|
||||
BorderThickness="1"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
Padding="10,8"
|
||||
Margin="0,0,8,8"
|
||||
MouseLeftButtonUp="OverlayThemeSystemCard_MouseLeftButtonUp">
|
||||
<TextBlock Text="System" FontSize="12" Foreground="{DynamicResource PrimaryText}"/>
|
||||
</Border>
|
||||
<Border x:Name="OverlayThemeLightCard"
|
||||
Cursor="Hand"
|
||||
CornerRadius="10"
|
||||
BorderThickness="1"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
Padding="10,8"
|
||||
Margin="0,0,8,8"
|
||||
MouseLeftButtonUp="OverlayThemeLightCard_MouseLeftButtonUp">
|
||||
<TextBlock Text="Light" FontSize="12" Foreground="{DynamicResource PrimaryText}"/>
|
||||
</Border>
|
||||
<Border x:Name="OverlayThemeDarkCard"
|
||||
Cursor="Hand"
|
||||
CornerRadius="10"
|
||||
BorderThickness="1"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
Padding="10,8"
|
||||
Margin="0,0,8,8"
|
||||
MouseLeftButtonUp="OverlayThemeDarkCard_MouseLeftButtonUp">
|
||||
<TextBlock Text="Dark" FontSize="12" Foreground="{DynamicResource PrimaryText}"/>
|
||||
</Border>
|
||||
</WrapPanel>
|
||||
<StackPanel x:Name="OverlayModelEditorPanel">
|
||||
<TextBlock Text="등록 모델"
|
||||
FontSize="11"
|
||||
Foreground="{DynamicResource SecondaryText}"
|
||||
Margin="0,4,0,6"/>
|
||||
<TextBox x:Name="TxtOverlayModelInput"
|
||||
Padding="8,6"
|
||||
Background="{DynamicResource ItemBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
BorderThickness="1"
|
||||
Foreground="{DynamicResource PrimaryText}"
|
||||
FontSize="12"/>
|
||||
<WrapPanel x:Name="OverlayModelChipPanel" Margin="0,10,0,0"/>
|
||||
</StackPanel>
|
||||
<Grid x:Name="OverlayAnchorPermission" Margin="12,12,0,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="운영 모드"
|
||||
Foreground="{DynamicResource PrimaryText}"
|
||||
VerticalAlignment="Center"/>
|
||||
<Button x:Name="BtnOverlayOperationMode"
|
||||
Grid.Column="1"
|
||||
MinWidth="140"
|
||||
Style="{StaticResource OutlineHoverBtn}"
|
||||
Click="BtnOverlayOperationMode_Click"/>
|
||||
</Grid>
|
||||
<Grid x:Name="OverlayFolderDataUsageRow" Margin="0,8,0,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="폴더 데이터 활용"
|
||||
Foreground="{DynamicResource PrimaryText}"
|
||||
VerticalAlignment="Center"/>
|
||||
<Button x:Name="BtnOverlayFolderDataUsage"
|
||||
Grid.Column="1"
|
||||
MinWidth="140"
|
||||
Style="{StaticResource OutlineHoverBtn}"
|
||||
Click="BtnOverlayFolderDataUsage_Click"/>
|
||||
</Grid>
|
||||
<Grid x:Name="OverlayTlsRow" Margin="0,8,0,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="vLLM SSL 인증서 검증 우회 허용"
|
||||
Foreground="{DynamicResource PrimaryText}"
|
||||
VerticalAlignment="Center"/>
|
||||
<CheckBox x:Name="ChkOverlayVllmAllowInsecureTls"
|
||||
Grid.Column="1"
|
||||
VerticalAlignment="Center"/>
|
||||
</Grid>
|
||||
<Grid x:Name="OverlayAnchorAdvanced" Margin="0,14,0,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="압축 시작 한도(%)"
|
||||
Foreground="{DynamicResource PrimaryText}"
|
||||
VerticalAlignment="Center"/>
|
||||
<TextBox x:Name="TxtOverlayContextCompactTriggerPercent"
|
||||
Grid.Column="1"
|
||||
Padding="8,5"
|
||||
Background="{DynamicResource ItemBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
BorderThickness="1"
|
||||
Foreground="{DynamicResource PrimaryText}"
|
||||
FontSize="12"/>
|
||||
</Grid>
|
||||
<Grid x:Name="OverlayMaxContextTokensRow" Margin="0,8,0,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="최대 컨텍스트 토큰"
|
||||
Foreground="{DynamicResource PrimaryText}"
|
||||
VerticalAlignment="Center"/>
|
||||
<TextBox x:Name="TxtOverlayMaxContextTokens"
|
||||
Grid.Column="1"
|
||||
Padding="8,5"
|
||||
Background="{DynamicResource ItemBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
BorderThickness="1"
|
||||
Foreground="{DynamicResource PrimaryText}"
|
||||
FontSize="12"/>
|
||||
</Grid>
|
||||
<Grid x:Name="OverlayMaxRetryRow" Margin="0,8,0,0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="120"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Text="오류 재시도 횟수"
|
||||
Foreground="{DynamicResource PrimaryText}"
|
||||
VerticalAlignment="Center"/>
|
||||
<TextBox x:Name="TxtOverlayMaxRetryOnError"
|
||||
Grid.Column="1"
|
||||
Padding="8,5"
|
||||
Background="{DynamicResource ItemBackground}"
|
||||
BorderBrush="{DynamicResource BorderColor}"
|
||||
BorderThickness="1"
|
||||
Foreground="{DynamicResource PrimaryText}"
|
||||
FontSize="12"/>
|
||||
</Grid>
|
||||
<WrapPanel x:Name="OverlayAdvancedTogglePanel" Margin="0,14,0,0">
|
||||
<CheckBox x:Name="ChkOverlayEnableProactiveCompact" Content="자동 컨텍스트 압축" Margin="0,0,14,8"/>
|
||||
<CheckBox x:Name="ChkOverlayEnableSkillSystem" Content="스킬 시스템" Margin="0,0,14,8"/>
|
||||
<CheckBox x:Name="ChkOverlayEnableToolHooks" Content="도구 훅 사용" Margin="0,0,14,8"/>
|
||||
<CheckBox x:Name="ChkOverlayEnableHookInputMutation" Content="입력 변형 반영" Margin="0,0,14,8"/>
|
||||
<CheckBox x:Name="ChkOverlayEnableHookPermissionUpdate" Content="권한 갱신 반영" Margin="0,0,14,8"/>
|
||||
<CheckBox x:Name="ChkOverlayEnableCoworkVerification" Content="Cowork 검증" Margin="0,0,14,8"/>
|
||||
<CheckBox x:Name="ChkOverlayEnableCodeVerification" Content="Code 검증" Margin="0,0,14,8"/>
|
||||
<CheckBox x:Name="ChkOverlayEnableParallelTools" Content="병렬 도구 실행" Margin="0,0,14,8"/>
|
||||
</WrapPanel>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
<Border Background="{DynamicResource LauncherBackground}"
|
||||
Margin="0,12,0,0"
|
||||
Padding="0">
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Button Content="저장"
|
||||
Background="{DynamicResource AccentColor}"
|
||||
Foreground="White"
|
||||
BorderThickness="0"
|
||||
Padding="12,6"
|
||||
Cursor="Hand"
|
||||
Click="BtnOverlaySave_Click"/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- ══ 미리보기 스플리터 (Column 3) ══ -->
|
||||
<GridSplitter x:Name="PreviewSplitter" Grid.Column="3" Width="5"
|
||||
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
|
||||
|
||||
Reference in New Issue
Block a user