using AxCopilot.Models; namespace AxCopilot.Services.Agent; internal static class AgentTabSettingsResolver { public static bool IsCodeTab(string? activeTab) => string.Equals(activeTab, "Code", StringComparison.OrdinalIgnoreCase); public static bool IsCoworkTab(string? activeTab) => string.Equals(activeTab, "Cowork", StringComparison.OrdinalIgnoreCase); public static bool IsPostToolVerificationEnabled(string? activeTab, LlmSettings llm) { if (IsCodeTab(activeTab)) return llm.Code.EnableCodeVerification; if (IsCoworkTab(activeTab)) return llm.EnableCoworkVerification; return false; } public static IEnumerable EnumerateCodeTabDisabledTools(CodeSettings code) { // Plan mode tools are legacy compatibility only and stay disabled // regardless of any persisted value. yield return "enter_plan_mode"; yield return "exit_plan_mode"; if (!code.EnableWorktreeTools) { yield return "enter_worktree"; yield return "exit_worktree"; } if (!code.EnableTeamTools) { yield return "team_create"; yield return "team_delete"; } if (!code.EnableCronTools) { yield return "cron_create"; yield return "cron_delete"; yield return "cron_list"; } } }