Files
AX-Copilot-Codex/src/AxCopilot/Services/Agent/PermissionModePresentationCatalog.cs
lacvet d5c1266d3e
Some checks failed
Release Gate / gate (push) Has been cancelled
상태선/권한 카탈로그 구조 정리와 계획 모드 표현 잔재 제거
- OperationalStatusPresentationCatalog를 추가해 compact strip과 quick strip의 색상/노출 계산을 AppStateService 밖으로 분리함

- PermissionRequestPresentationCatalog와 ToolResultPresentationCatalog에 Kind/Description 메타를 추가해 transcript fallback 설명을 타입 기반으로 정리함

- PermissionModePresentationCatalog와 ChatWindow.PermissionPresentation에서 제거된 계획 모드 표현 분기를 걷어 권한 UI를 실제 지원 모드만 다루도록 단순화함

- README, DEVELOPMENT, claw-code parity plan 문서를 2026-04-06 09:36 (KST) 기준으로 갱신함

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0 / 오류 0)
2026-04-06 09:44:53 +09:00

42 lines
1.3 KiB
C#

namespace AxCopilot.Services.Agent;
internal sealed record PermissionModePresentation(
string Mode,
string Icon,
string Title,
string Description,
string ColorHex);
internal static class PermissionModePresentationCatalog
{
public static readonly IReadOnlyList<PermissionModePresentation> Ordered = new[]
{
new PermissionModePresentation(
PermissionModeCatalog.Default,
"\uE8D7",
"권한 요청",
"변경하기 전에 항상 확인합니다.",
"#2563EB"),
new PermissionModePresentation(
PermissionModeCatalog.AcceptEdits,
"\uE73E",
"편집 자동 승인",
"모든 파일 편집을 자동 승인합니다.",
"#107C10"),
new PermissionModePresentation(
PermissionModeCatalog.BypassPermissions,
"\uE814",
"권한 건너뛰기",
"파일 편집과 명령 실행까지 모두 자동 허용합니다.",
"#B45309"),
};
public static PermissionModePresentation Resolve(string? mode)
{
var normalized = PermissionModeCatalog.NormalizeGlobalMode(mode);
return Ordered.FirstOrDefault(item =>
string.Equals(item.Mode, normalized, StringComparison.OrdinalIgnoreCase))
?? Ordered[0];
}
}