From af90d3cad2f514e56d91b2894b48d3265d01825c Mon Sep 17 00:00:00 2001 From: Petr Mironychev <9195189+Palm1r@users.noreply.github.com> Date: Mon, 3 Nov 2025 09:01:20 +0100 Subject: [PATCH] refactor: Move build tools to experimental tools --- settings/SettingsConstants.hpp | 1 + settings/ToolsSettings.cpp | 10 +++++++++- settings/ToolsSettings.hpp | 1 + tools/ToolsFactory.cpp | 4 ++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/settings/SettingsConstants.hpp b/settings/SettingsConstants.hpp index 8a4f98b..3958c54 100644 --- a/settings/SettingsConstants.hpp +++ b/settings/SettingsConstants.hpp @@ -90,6 +90,7 @@ const char CA_ALLOW_FILE_SYSTEM_READ[] = "QodeAssist.caAllowFileSystemRead"; const char CA_ALLOW_FILE_SYSTEM_WRITE[] = "QodeAssist.caAllowFileSystemWrite"; const char CA_ALLOW_ACCESS_OUTSIDE_PROJECT[] = "QodeAssist.caAllowAccessOutsideProject"; const char CA_ENABLE_EDIT_FILE_TOOL[] = "QodeAssist.caEnableEditFileTool"; +const char CA_ENABLE_BUILD_PROJECT_TOOL[] = "QodeAssist.caEnableBuildProjectTool"; const char QODE_ASSIST_GENERAL_OPTIONS_ID[] = "QodeAssist.GeneralOptions"; const char QODE_ASSIST_GENERAL_SETTINGS_PAGE_ID[] = "QodeAssist.1GeneralSettingsPageId"; diff --git a/settings/ToolsSettings.cpp b/settings/ToolsSettings.cpp index d7a9eb2..cf79316 100644 --- a/settings/ToolsSettings.cpp +++ b/settings/ToolsSettings.cpp @@ -82,6 +82,13 @@ ToolsSettings::ToolsSettings() "This feature is under testing and may have unexpected behavior.")); enableEditFileTool.setDefaultValue(false); + enableBuildProjectTool.setSettingsKey(Constants::CA_ENABLE_BUILD_PROJECT_TOOL); + enableBuildProjectTool.setLabelText(Tr::tr("Enable Build Project Tool (Experimental)")); + enableBuildProjectTool.setToolTip( + Tr::tr("Enable the experimental build_project tool that allows AI to build the current " + "project. This feature is under testing and may have unexpected behavior.")); + enableBuildProjectTool.setDefaultValue(false); + resetToDefaults.m_buttonText = Tr::tr("Reset Page to Defaults"); readSettings(); @@ -106,7 +113,7 @@ ToolsSettings::ToolsSettings() Space{8}, Group{ title(Tr::tr("Experimental Features")), - Column{enableEditFileTool, autoApplyFileEdits}}, + Column{enableEditFileTool, enableBuildProjectTool, autoApplyFileEdits}}, Stretch{1}}; }); } @@ -136,6 +143,7 @@ void ToolsSettings::resetSettingsToDefaults() resetAspect(allowAccessOutsideProject); resetAspect(autoApplyFileEdits); resetAspect(enableEditFileTool); + resetAspect(enableBuildProjectTool); writeSettings(); } } diff --git a/settings/ToolsSettings.hpp b/settings/ToolsSettings.hpp index b15f92d..df02407 100644 --- a/settings/ToolsSettings.hpp +++ b/settings/ToolsSettings.hpp @@ -39,6 +39,7 @@ public: // Experimental features Utils::BoolAspect enableEditFileTool{this}; + Utils::BoolAspect enableBuildProjectTool{this}; Utils::BoolAspect autoApplyFileEdits{this}; private: diff --git a/tools/ToolsFactory.cpp b/tools/ToolsFactory.cpp index b4608e8..a31c064 100644 --- a/tools/ToolsFactory.cpp +++ b/tools/ToolsFactory.cpp @@ -95,6 +95,10 @@ QJsonArray ToolsFactory::getToolsDefinitions(LLMCore::ToolSchemaFormat format) c continue; } + if (it.value()->name() == "build_project" && !settings.enableBuildProjectTool()) { + continue; + } + const auto requiredPerms = it.value()->requiredPermissions(); bool hasPermission = true;