transcript callout이 상태별로 다른 제목과 강조선을 가지도록 정리했습니다. 권한 요청은 확인 포인트와 적용 내용, 도구 결과는 승인 필요, 오류 확인, 부분 완료 점검, 다음 권장 작업으로 구분되게 바꿨습니다. README와 DEVELOPMENT 문서를 갱신했고 dotnet build 기준 경고 0 / 오류 0을 확인했습니다.
This commit is contained in:
@@ -85,6 +85,7 @@ public partial class ChatWindow
|
||||
|
||||
private Border CreateAgentMetaCallout(string title, string body, Brush titleBrush, Brush background, Brush borderBrush)
|
||||
{
|
||||
var accentColor = (titleBrush as SolidColorBrush)?.Color ?? Colors.SteelBlue;
|
||||
return new Border
|
||||
{
|
||||
Background = background,
|
||||
@@ -93,30 +94,60 @@ public partial class ChatWindow
|
||||
CornerRadius = new CornerRadius(8),
|
||||
Padding = new Thickness(7, 5, 7, 5),
|
||||
Margin = new Thickness(11, 2, 0, 0),
|
||||
Child = new StackPanel
|
||||
Child = new Grid
|
||||
{
|
||||
ColumnDefinitions =
|
||||
{
|
||||
new ColumnDefinition { Width = new GridLength(3) },
|
||||
new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) },
|
||||
},
|
||||
Children =
|
||||
{
|
||||
new TextBlock
|
||||
new Border
|
||||
{
|
||||
Text = title,
|
||||
FontSize = 7.75,
|
||||
FontWeight = FontWeights.SemiBold,
|
||||
Foreground = titleBrush,
|
||||
Background = new SolidColorBrush(accentColor),
|
||||
CornerRadius = new CornerRadius(2),
|
||||
},
|
||||
new TextBlock
|
||||
new StackPanel
|
||||
{
|
||||
Text = body,
|
||||
FontSize = 8.1,
|
||||
Foreground = TryFindResource("SecondaryText") as Brush ?? Brushes.DimGray,
|
||||
TextWrapping = TextWrapping.Wrap,
|
||||
Margin = new Thickness(0, 1, 0, 0),
|
||||
Margin = new Thickness(8, 0, 0, 0),
|
||||
Children =
|
||||
{
|
||||
new TextBlock
|
||||
{
|
||||
Text = title,
|
||||
FontSize = 7.75,
|
||||
FontWeight = FontWeights.SemiBold,
|
||||
Foreground = titleBrush,
|
||||
},
|
||||
new TextBlock
|
||||
{
|
||||
Text = body,
|
||||
FontSize = 8.1,
|
||||
Foreground = TryFindResource("SecondaryText") as Brush ?? Brushes.DimGray,
|
||||
TextWrapping = TextWrapping.Wrap,
|
||||
Margin = new Thickness(0, 1, 0, 0),
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private static string GetToolResultCalloutTitle(string statusKind)
|
||||
{
|
||||
return statusKind switch
|
||||
{
|
||||
"error" => "오류 확인",
|
||||
"reject" => "거부됨",
|
||||
"cancel" => "중단됨",
|
||||
"approval_required" => "승인 필요",
|
||||
"partial" => "부분 완료 점검",
|
||||
_ => "다음 권장 작업",
|
||||
};
|
||||
}
|
||||
|
||||
private Border CreateAgentInlineActionButton(string text, string icon, Brush foreground, Brush borderBrush, Action onClick)
|
||||
{
|
||||
var button = new Border
|
||||
@@ -312,7 +343,8 @@ public partial class ChatWindow
|
||||
: string.Equals(permissionPresentation.Severity, "medium", StringComparison.OrdinalIgnoreCase)
|
||||
? BrushFromHex("#FDE68A")
|
||||
: BrushFromHex("#BFDBFE");
|
||||
stack.Children.Add(CreateAgentMetaCallout("확인 포인트", clipped, titleBrush, background, border));
|
||||
var title = evt.Type == AgentEventType.PermissionGranted ? "적용 내용" : "확인 포인트";
|
||||
stack.Children.Add(CreateAgentMetaCallout(title, clipped, titleBrush, background, border));
|
||||
}
|
||||
else if (toolResultPresentation != null)
|
||||
{
|
||||
@@ -334,7 +366,7 @@ public partial class ChatWindow
|
||||
: string.Equals(toolResultPresentation.StatusKind, "approval_required", StringComparison.OrdinalIgnoreCase)
|
||||
? BrushFromHex("#FED7AA")
|
||||
: BrushFromHex("#FDE68A");
|
||||
stack.Children.Add(CreateAgentMetaCallout("다음 권장 작업", clipped, titleBrush, background, border));
|
||||
stack.Children.Add(CreateAgentMetaCallout(GetToolResultCalloutTitle(toolResultPresentation.StatusKind), clipped, titleBrush, background, border));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user