Some checks failed
Release Gate / gate (push) Has been cancelled
- 권한 팝업 핵심 영역에 Deny(활용하지 않음) 포함, 고급은 DontAsk만 유지 - LoadConversationSettings가 대화 권한 미설정 시 탭 기본권한(Chat=Deny, Cowork/Code=DefaultAgentPermission) 즉시 적용 - PermissionModePresentationCatalog 한글 라벨/설명 문자열 정리 - README/DEVELOPMENT 이력(2026-04-04 15:52 KST) 동기화
60 lines
2.1 KiB
C#
60 lines
2.1 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.Deny,
|
|
"\uE711",
|
|
"활용하지 않음",
|
|
"파일 읽기만 허용하고 생성/수정/삭제는 차단합니다.",
|
|
"#107C10"),
|
|
new PermissionModePresentation(
|
|
PermissionModeCatalog.Default,
|
|
"\uE8D7",
|
|
"소극 활용",
|
|
"변경 전 확인하고, 필요한 경우에만 파일 접근을 진행합니다.",
|
|
"#2563EB"),
|
|
new PermissionModePresentation(
|
|
PermissionModeCatalog.AcceptEdits,
|
|
"\uE73E",
|
|
"적극 활용",
|
|
"파일 편집 도구를 자동 승인하고 명령 실행은 계속 확인합니다.",
|
|
"#107C10"),
|
|
new PermissionModePresentation(
|
|
PermissionModeCatalog.Plan,
|
|
"\uE7C3",
|
|
"계획 중심",
|
|
"쓰기 전 계획과 승인 흐름을 우선합니다.",
|
|
"#4338CA"),
|
|
new PermissionModePresentation(
|
|
PermissionModeCatalog.BypassPermissions,
|
|
"\uE814",
|
|
"완전 자동",
|
|
"권한 확인을 대부분 생략합니다. 민감한 작업은 주의하세요.",
|
|
"#B45309"),
|
|
new PermissionModePresentation(
|
|
PermissionModeCatalog.DontAsk,
|
|
"\uE8A5",
|
|
"질문 없이 진행",
|
|
"권한 질문 없이 진행합니다. 자동 실행 범위를 점검하세요.",
|
|
"#B91C1C"),
|
|
};
|
|
|
|
public static PermissionModePresentation Resolve(string? mode)
|
|
{
|
|
var normalized = PermissionModeCatalog.NormalizeGlobalMode(mode);
|
|
return Ordered.FirstOrDefault(item =>
|
|
string.Equals(item.Mode, normalized, StringComparison.OrdinalIgnoreCase))
|
|
?? Ordered[1];
|
|
}
|
|
}
|