refactor: Move build tools to experimental tools

This commit is contained in:
Petr Mironychev
2025-11-03 09:01:20 +01:00
parent 9b90aaa06e
commit af90d3cad2
4 changed files with 15 additions and 1 deletions

View File

@ -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";

View File

@ -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();
}
}

View File

@ -39,6 +39,7 @@ public:
// Experimental features
Utils::BoolAspect enableEditFileTool{this};
Utils::BoolAspect enableBuildProjectTool{this};
Utils::BoolAspect autoApplyFileEdits{this};
private:

View File

@ -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;