재구성 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:
@@ -178,6 +178,7 @@ public class SettingsViewModel : INotifyPropertyChanged
|
||||
private string _vllmEndpoint = "";
|
||||
private string _vllmApiKey = "";
|
||||
private string _vllmModel = "";
|
||||
private bool _vllmAllowInsecureTls;
|
||||
private string _geminiApiKey = "";
|
||||
private string _geminiModel = "gemini-2.5-flash";
|
||||
private string _sigmoidApiKey = "";
|
||||
@@ -215,6 +216,7 @@ public class SettingsViewModel : INotifyPropertyChanged
|
||||
public string VllmEndpoint { get => _vllmEndpoint; set { _vllmEndpoint = value; OnPropertyChanged(); } }
|
||||
public string VllmApiKey { get => _vllmApiKey; set { _vllmApiKey = value; OnPropertyChanged(); } }
|
||||
public string VllmModel { get => _vllmModel; set { _vllmModel = value; OnPropertyChanged(); } }
|
||||
public bool VllmAllowInsecureTls { get => _vllmAllowInsecureTls; set { _vllmAllowInsecureTls = value; OnPropertyChanged(); } }
|
||||
|
||||
// ── Gemini 설정 ──
|
||||
public string GeminiApiKey { get => _geminiApiKey; set { _geminiApiKey = value; OnPropertyChanged(); } }
|
||||
@@ -285,6 +287,20 @@ public class SettingsViewModel : INotifyPropertyChanged
|
||||
set { _maxRetryOnError = Math.Clamp(value, 0, 10); OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private bool _enableProactiveContextCompact;
|
||||
public bool EnableProactiveContextCompact
|
||||
{
|
||||
get => _enableProactiveContextCompact;
|
||||
set { _enableProactiveContextCompact = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private int _contextCompactTriggerPercent;
|
||||
public int ContextCompactTriggerPercent
|
||||
{
|
||||
get => _contextCompactTriggerPercent;
|
||||
set { _contextCompactTriggerPercent = Math.Clamp(value, 50, 95); OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private string _agentLogLevel;
|
||||
public string AgentLogLevel
|
||||
{
|
||||
@@ -292,6 +308,22 @@ public class SettingsViewModel : INotifyPropertyChanged
|
||||
set { _agentLogLevel = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private string _agentUiExpressionLevel = "balanced";
|
||||
public string AgentUiExpressionLevel
|
||||
{
|
||||
get => _agentUiExpressionLevel;
|
||||
set
|
||||
{
|
||||
_agentUiExpressionLevel = (value ?? "balanced").Trim().ToLowerInvariant() switch
|
||||
{
|
||||
"rich" => "rich",
|
||||
"simple" => "simple",
|
||||
_ => "balanced",
|
||||
};
|
||||
OnPropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
private int _planDiffSeverityMediumCount = 2;
|
||||
public int PlanDiffSeverityMediumCount
|
||||
{
|
||||
@@ -479,6 +511,20 @@ public class SettingsViewModel : INotifyPropertyChanged
|
||||
set { _slashPopupPageSize = Math.Clamp(value, 3, 10); OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private int _maxFavoriteSlashCommands = 10;
|
||||
public int MaxFavoriteSlashCommands
|
||||
{
|
||||
get => _maxFavoriteSlashCommands;
|
||||
set { _maxFavoriteSlashCommands = Math.Clamp(value, 1, 30); OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
private int _maxRecentSlashCommands = 20;
|
||||
public int MaxRecentSlashCommands
|
||||
{
|
||||
get => _maxRecentSlashCommands;
|
||||
set { _maxRecentSlashCommands = Math.Clamp(value, 5, 50); OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
// ── 드래그&드롭 AI ──
|
||||
private bool _enableDragDropAiActions = true;
|
||||
public bool EnableDragDropAiActions
|
||||
@@ -988,7 +1034,17 @@ public class SettingsViewModel : INotifyPropertyChanged
|
||||
_autoPreview = llm.AutoPreview;
|
||||
_maxAgentIterations = llm.MaxAgentIterations > 0 ? llm.MaxAgentIterations : 25;
|
||||
_maxRetryOnError = llm.MaxRetryOnError > 0 ? llm.MaxRetryOnError : 3;
|
||||
_enableProactiveContextCompact = llm.EnableProactiveContextCompact;
|
||||
_contextCompactTriggerPercent = llm.ContextCompactTriggerPercent > 0
|
||||
? Math.Clamp(llm.ContextCompactTriggerPercent, 50, 95)
|
||||
: 80;
|
||||
_agentLogLevel = llm.AgentLogLevel;
|
||||
_agentUiExpressionLevel = (llm.AgentUiExpressionLevel ?? "balanced").Trim().ToLowerInvariant() switch
|
||||
{
|
||||
"rich" => "rich",
|
||||
"simple" => "simple",
|
||||
_ => "balanced",
|
||||
};
|
||||
_planDiffSeverityMediumCount = llm.PlanDiffSeverityMediumCount > 0 ? Math.Clamp(llm.PlanDiffSeverityMediumCount, 1, 20) : 2;
|
||||
_planDiffSeverityHighCount = llm.PlanDiffSeverityHighCount > 0 ? Math.Clamp(llm.PlanDiffSeverityHighCount, 1, 30) : 5;
|
||||
_planDiffSeverityMediumRatioPercent = llm.PlanDiffSeverityMediumRatioPercent > 0 ? Math.Clamp(llm.PlanDiffSeverityMediumRatioPercent, 1, 100) : 25;
|
||||
@@ -1013,6 +1069,8 @@ public class SettingsViewModel : INotifyPropertyChanged
|
||||
_enableForkSkillDelegationEnforcement = llm.EnableForkSkillDelegationEnforcement;
|
||||
_skillsFolderPath = llm.SkillsFolderPath;
|
||||
_slashPopupPageSize = llm.SlashPopupPageSize > 0 ? Math.Clamp(llm.SlashPopupPageSize, 3, 10) : 6;
|
||||
_maxFavoriteSlashCommands = llm.MaxFavoriteSlashCommands > 0 ? Math.Clamp(llm.MaxFavoriteSlashCommands, 1, 30) : 10;
|
||||
_maxRecentSlashCommands = llm.MaxRecentSlashCommands > 0 ? Math.Clamp(llm.MaxRecentSlashCommands, 5, 50) : 20;
|
||||
_enableDragDropAiActions = llm.EnableDragDropAiActions;
|
||||
_dragDropAutoSend = llm.DragDropAutoSend;
|
||||
_enableCodeReview = llm.Code.EnableCodeReview;
|
||||
@@ -1033,6 +1091,7 @@ public class SettingsViewModel : INotifyPropertyChanged
|
||||
_ollamaModel = llm.OllamaModel;
|
||||
_vllmEndpoint = llm.VllmEndpoint;
|
||||
_vllmModel = llm.VllmModel;
|
||||
_vllmAllowInsecureTls = llm.VllmAllowInsecureTls;
|
||||
_geminiModel = string.IsNullOrEmpty(llm.GeminiModel) ? "gemini-2.5-flash" : llm.GeminiModel;
|
||||
_sigmoidModel = string.IsNullOrEmpty(llm.ClaudeModel) ? "cl" + "aude-sonnet-4-6" : llm.ClaudeModel;
|
||||
|
||||
@@ -1087,6 +1146,7 @@ public class SettingsViewModel : INotifyPropertyChanged
|
||||
Service = rm.Service,
|
||||
Endpoint = rm.Endpoint,
|
||||
ApiKey = rm.ApiKey,
|
||||
AllowInsecureTls = rm.AllowInsecureTls,
|
||||
AuthType = rm.AuthType ?? "bearer",
|
||||
Cp4dUrl = rm.Cp4dUrl ?? "",
|
||||
Cp4dUsername = rm.Cp4dUsername ?? "",
|
||||
@@ -1412,7 +1472,10 @@ public class SettingsViewModel : INotifyPropertyChanged
|
||||
s.Llm.AutoPreview = _autoPreview;
|
||||
s.Llm.MaxAgentIterations = _maxAgentIterations;
|
||||
s.Llm.MaxRetryOnError = _maxRetryOnError;
|
||||
s.Llm.EnableProactiveContextCompact = _enableProactiveContextCompact;
|
||||
s.Llm.ContextCompactTriggerPercent = _contextCompactTriggerPercent;
|
||||
s.Llm.AgentLogLevel = _agentLogLevel;
|
||||
s.Llm.AgentUiExpressionLevel = _agentUiExpressionLevel;
|
||||
s.Llm.PlanDiffSeverityMediumCount = _planDiffSeverityMediumCount;
|
||||
s.Llm.PlanDiffSeverityHighCount = _planDiffSeverityHighCount;
|
||||
s.Llm.PlanDiffSeverityMediumRatioPercent = _planDiffSeverityMediumRatioPercent;
|
||||
@@ -1437,6 +1500,8 @@ public class SettingsViewModel : INotifyPropertyChanged
|
||||
s.Llm.EnableForkSkillDelegationEnforcement = _enableForkSkillDelegationEnforcement;
|
||||
s.Llm.SkillsFolderPath = _skillsFolderPath;
|
||||
s.Llm.SlashPopupPageSize = _slashPopupPageSize;
|
||||
s.Llm.MaxFavoriteSlashCommands = _maxFavoriteSlashCommands;
|
||||
s.Llm.MaxRecentSlashCommands = _maxRecentSlashCommands;
|
||||
s.Llm.EnableDragDropAiActions = _enableDragDropAiActions;
|
||||
s.Llm.DragDropAutoSend = _dragDropAutoSend;
|
||||
s.Llm.Code.EnableCodeReview = _enableCodeReview;
|
||||
@@ -1457,6 +1522,7 @@ public class SettingsViewModel : INotifyPropertyChanged
|
||||
s.Llm.OllamaModel = _ollamaModel;
|
||||
s.Llm.VllmEndpoint = _vllmEndpoint;
|
||||
s.Llm.VllmModel = _vllmModel;
|
||||
s.Llm.VllmAllowInsecureTls = _vllmAllowInsecureTls;
|
||||
s.Llm.GeminiModel = _geminiModel;
|
||||
s.Llm.ClaudeModel = _sigmoidModel;
|
||||
s.Llm.GeminiApiKey = _geminiApiKey;
|
||||
@@ -1502,6 +1568,7 @@ public class SettingsViewModel : INotifyPropertyChanged
|
||||
Service = rm.Service,
|
||||
Endpoint = rm.Endpoint,
|
||||
ApiKey = rm.ApiKey,
|
||||
AllowInsecureTls = rm.AllowInsecureTls,
|
||||
AuthType = rm.AuthType ?? "bearer",
|
||||
Cp4dUrl = rm.Cp4dUrl ?? "",
|
||||
Cp4dUsername = rm.Cp4dUsername ?? "",
|
||||
@@ -1820,6 +1887,7 @@ public class RegisteredModelRow : INotifyPropertyChanged
|
||||
private string _service = "ollama";
|
||||
private string _endpoint = "";
|
||||
private string _apiKey = "";
|
||||
private bool _allowInsecureTls;
|
||||
|
||||
/// <summary>UI 표시용 별칭</summary>
|
||||
public string Alias
|
||||
@@ -1856,6 +1924,13 @@ public class RegisteredModelRow : INotifyPropertyChanged
|
||||
set { _apiKey = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
/// <summary>이 모델 요청 시 TLS 인증서 검증을 생략합니다.</summary>
|
||||
public bool AllowInsecureTls
|
||||
{
|
||||
get => _allowInsecureTls;
|
||||
set { _allowInsecureTls = value; OnPropertyChanged(); }
|
||||
}
|
||||
|
||||
// ── CP4D 인증 필드 ──────────────────────────────────────────────────
|
||||
|
||||
private string _authType = "bearer";
|
||||
|
||||
Reference in New Issue
Block a user