AX Agent 코워크·코드 흐름과 컨텍스트 관리를 claude-code 기준으로 대폭 정리

- 코워크·코드 프롬프트, 도구 선택, 문서 생성/검증 흐름을 claude-code 동등 품질 기준으로 재정렬함

- OpenAI/vLLM 경로의 오래된 tool history를 평탄화하고 최근 이력만 구조화해 컨텍스트 직렬화를 경량화함

- AX Agent UI를 테마 기준으로 재구성하고 플랜 승인/오버레이/이벤트 렌더링/명령 입력 상호작용을 개선함

- 파일 후보 제안, 반복 경로 정체 복구, LSP 보강, 문서·PPT 처리 개선, 설정/서비스 인터페이스 정리를 함께 반영함

- README.md 및 docs/DEVELOPMENT.md를 작업 시점별로 갱신함

- 검증: dotnet build src/AxCopilot/AxCopilot.csproj -c Release -v minimal -p:OutputPath=bin\\verify\\ -p:IntermediateOutputPath=obj\\verify\\ (경고 0, 오류 0)
This commit is contained in:
2026-04-12 22:02:14 +09:00
parent b8f4df1892
commit fb0bea41f7
137 changed files with 18532 additions and 1144 deletions

View File

@@ -185,6 +185,14 @@ public class LauncherSettings
[JsonPropertyName("enableIconAnimation")]
public bool EnableIconAnimation { get; set; } = true;
/// <summary>채팅 본문 런처 아이콘 랜덤 애니메이션. false이면 숨쉬기만. 기본 false.</summary>
[JsonPropertyName("enableChatIconRandomAnimation")]
public bool EnableChatIconRandomAnimation { get; set; } = false;
/// <summary>채팅 본문 런처 아이콘 글로우 강도. strong/medium/weak. 기본 medium.</summary>
[JsonPropertyName("chatIconGlowIntensity")]
public string ChatIconGlowIntensity { get; set; } = "medium";
/// <summary>런처 안내 문구 랜덤 출력 활성화. false이면 고정 문구. 기본 true.</summary>
[JsonPropertyName("enableRandomPlaceholder")]
public bool EnableRandomPlaceholder { get; set; } = true;
@@ -804,10 +812,18 @@ public class LlmSettings
[JsonPropertyName("recentPromptTemplates")]
public List<string> RecentPromptTemplates { get; set; } = new();
/// <summary>작업 폴더 경로. 빈 문자열이면 미선택.</summary>
/// <summary>작업 폴더 경로. 빈 문자열이면 미선택. (레거시 — 탭별 경로 미지정 시 폴백)</summary>
[JsonPropertyName("workFolder")]
public string WorkFolder { get; set; } = "";
/// <summary>코워크(Cowork) 탭 전용 작업 폴더.</summary>
[JsonPropertyName("coworkWorkFolder")]
public string CoworkWorkFolder { get; set; } = "";
/// <summary>코드(Code) 탭 전용 작업 폴더.</summary>
[JsonPropertyName("codeWorkFolder")]
public string CodeWorkFolder { get; set; } = "";
/// <summary>최근 사용한 작업 폴더 목록.</summary>
[JsonPropertyName("recentWorkFolders")]
public List<string> RecentWorkFolders { get; set; } = new();
@@ -885,9 +901,9 @@ public class LlmSettings
[JsonPropertyName("maxTestFixIterations")]
public int MaxTestFixIterations { get; set; } = 5;
/// <summary>에이전트 로그 표시 수준. simple | detailed | debug</summary>
/// <summary>에이전트 로그 표시 수준. hidden | simple | detailed | debug</summary>
[JsonPropertyName("agentLogLevel")]
public string AgentLogLevel { get; set; } = "simple";
public string AgentLogLevel { get; set; } = "detailed";
/// <summary>AX Agent UI 표현 수준. rich | balanced | simple</summary>
[JsonPropertyName("agentUiExpressionLevel")]
@@ -1055,6 +1071,14 @@ public class LlmSettings
[JsonPropertyName("enableChatRainbowGlow")]
public bool EnableChatRainbowGlow { get; set; } = false;
/// <summary>새로운 계획 뷰어(V2 사이드바 레이아웃) 사용. 기본 true.</summary>
[JsonPropertyName("enableNewPlanViewer")]
public bool EnableNewPlanViewer { get; set; } = true;
/// <summary>새로운 채팅 렌더링(V2 상세 이력) 사용. 기본 false.</summary>
[JsonPropertyName("enableNewChatRendering")]
public bool EnableNewChatRendering { get; set; } = false;
/// <summary>AX Agent 전용 테마. system | light | dark</summary>
[JsonPropertyName("agentTheme")]
public string AgentTheme { get; set; } = "system";
@@ -1069,6 +1093,11 @@ public class LlmSettings
[JsonPropertyName("notifyOnComplete")]
public bool NotifyOnComplete { get; set; } = false;
/// <summary>코워크 작업 완료 후 문서 자동 처리 방식.
/// "none" = 아무것도 안하기, "open" = 문서 실행(기본 앱), "preview" = 미리보기 뷰어.</summary>
[JsonPropertyName("coworkOnComplete")]
public string CoworkOnComplete { get; set; } = "none";
/// <summary>AI 대화창에서 팁 알림 표시 여부.</summary>
[JsonPropertyName("showTips")]
public bool ShowTips { get; set; } = false;
@@ -1315,6 +1344,18 @@ public class CodeSettings
/// <summary>Code 탭에서 Cron 도구(cron create/list/delete) 사용 여부. 기본 true.</summary>
[JsonPropertyName("enableCronTools")]
public bool EnableCronTools { get; set; } = true;
/// <summary>
/// Code 탭 빈 화면 마스코트 캐릭터 출동 수준.
/// "none"=출동 안하기, "one"=한명만(1), "few"=적게(3), "mid"=중간(6), "all"=전부(9+)
/// 기본 "none" (메모리 절약).
/// </summary>
[JsonPropertyName("mascotLevel")]
public string MascotLevel { get; set; } = "none";
/// <summary>(하위호환) 이전 bool 설정 — 무시됨. MascotLevel로 대체.</summary>
[JsonPropertyName("enableMascotCharacter")]
public bool EnableMascotCharacter { get; set; } = false;
}
/// <summary>사용자 정의 커스텀 프리셋 (settings.json에 저장).</summary>