From 84770abb20d62f021944a27dd6465396ad1cebe7 Mon Sep 17 00:00:00 2001 From: Petr Mironychev <9195189+Palm1r@users.noreply.github.com> Date: Fri, 10 Oct 2025 13:17:16 +0200 Subject: [PATCH] fix: Remove duplicate enum --- providers/ClaudeProvider.cpp | 7 +++++-- providers/LMStudioProvider.cpp | 3 ++- providers/LlamaCppProvider.cpp | 3 ++- providers/MistralAIProvider.cpp | 3 ++- providers/OpenAICompatProvider.cpp | 3 ++- providers/OpenAIProvider.cpp | 3 ++- tools/ToolsManager.cpp | 8 ++------ tools/ToolsManager.hpp | 5 ++--- 8 files changed, 19 insertions(+), 16 deletions(-) diff --git a/providers/ClaudeProvider.cpp b/providers/ClaudeProvider.cpp index fc77e67..08c5005 100644 --- a/providers/ClaudeProvider.cpp +++ b/providers/ClaudeProvider.cpp @@ -100,7 +100,8 @@ void ClaudeProvider::prepareRequest( if (supportsTools() && type == LLMCore::RequestType::Chat && Settings::chatAssistantSettings().useTools()) { - auto toolsDefinitions = m_toolsManager->getToolsDefinitions(Tools::ToolSchemaFormat::Claude); + auto toolsDefinitions = m_toolsManager->getToolsDefinitions( + LLMCore::ToolSchemaFormat::Claude); if (!toolsDefinitions.isEmpty()) { request["tools"] = toolsDefinitions; LOG_MESSAGE(QString("Added %1 tools to Claude request").arg(toolsDefinitions.size())); @@ -195,7 +196,9 @@ LLMCore::ProviderID ClaudeProvider::providerID() const void ClaudeProvider::sendRequest( const LLMCore::RequestID &requestId, const QUrl &url, const QJsonObject &payload) { - if (!m_messages.contains(requestId)) { + if (m_dataBuffers.contains(requestId)) { + m_dataBuffers[requestId].responseContent.clear(); + } else { m_dataBuffers[requestId].clear(); } diff --git a/providers/LMStudioProvider.cpp b/providers/LMStudioProvider.cpp index 1620430..532e5a2 100644 --- a/providers/LMStudioProvider.cpp +++ b/providers/LMStudioProvider.cpp @@ -251,7 +251,8 @@ void LMStudioProvider::prepareRequest( if (supportsTools() && type == LLMCore::RequestType::Chat && Settings::chatAssistantSettings().useTools()) { - auto toolsDefinitions = m_toolsManager->getToolsDefinitions(Tools::ToolSchemaFormat::OpenAI); + auto toolsDefinitions = m_toolsManager->getToolsDefinitions( + LLMCore::ToolSchemaFormat::OpenAI); if (!toolsDefinitions.isEmpty()) { request["tools"] = toolsDefinitions; LOG_MESSAGE(QString("Added %1 tools to LMStudio request").arg(toolsDefinitions.size())); diff --git a/providers/LlamaCppProvider.cpp b/providers/LlamaCppProvider.cpp index 0b74cb1..1eea264 100644 --- a/providers/LlamaCppProvider.cpp +++ b/providers/LlamaCppProvider.cpp @@ -102,7 +102,8 @@ void LlamaCppProvider::prepareRequest( if (supportsTools() && type == LLMCore::RequestType::Chat && Settings::chatAssistantSettings().useTools()) { - auto toolsDefinitions = m_toolsManager->getToolsDefinitions(Tools::ToolSchemaFormat::OpenAI); + auto toolsDefinitions = m_toolsManager->getToolsDefinitions( + LLMCore::ToolSchemaFormat::OpenAI); if (!toolsDefinitions.isEmpty()) { request["tools"] = toolsDefinitions; LOG_MESSAGE(QString("Added %1 tools to llama.cpp request").arg(toolsDefinitions.size())); diff --git a/providers/MistralAIProvider.cpp b/providers/MistralAIProvider.cpp index d2bd071..1102acd 100644 --- a/providers/MistralAIProvider.cpp +++ b/providers/MistralAIProvider.cpp @@ -272,7 +272,8 @@ void MistralAIProvider::prepareRequest( if (supportsTools() && type == LLMCore::RequestType::Chat && Settings::chatAssistantSettings().useTools()) { - auto toolsDefinitions = m_toolsManager->getToolsDefinitions(Tools::ToolSchemaFormat::OpenAI); + auto toolsDefinitions = m_toolsManager->getToolsDefinitions( + LLMCore::ToolSchemaFormat::OpenAI); if (!toolsDefinitions.isEmpty()) { request["tools"] = toolsDefinitions; LOG_MESSAGE(QString("Added %1 tools to Mistral request").arg(toolsDefinitions.size())); diff --git a/providers/OpenAICompatProvider.cpp b/providers/OpenAICompatProvider.cpp index 1178afb..975f151 100644 --- a/providers/OpenAICompatProvider.cpp +++ b/providers/OpenAICompatProvider.cpp @@ -102,7 +102,8 @@ void OpenAICompatProvider::prepareRequest( if (supportsTools() && type == LLMCore::RequestType::Chat && Settings::chatAssistantSettings().useTools()) { - auto toolsDefinitions = m_toolsManager->getToolsDefinitions(Tools::ToolSchemaFormat::OpenAI); + auto toolsDefinitions = m_toolsManager->getToolsDefinitions( + LLMCore::ToolSchemaFormat::OpenAI); if (!toolsDefinitions.isEmpty()) { request["tools"] = toolsDefinitions; LOG_MESSAGE( diff --git a/providers/OpenAIProvider.cpp b/providers/OpenAIProvider.cpp index a39a04c..42e9fde 100644 --- a/providers/OpenAIProvider.cpp +++ b/providers/OpenAIProvider.cpp @@ -103,7 +103,8 @@ void OpenAIProvider::prepareRequest( if (supportsTools() && type == LLMCore::RequestType::Chat && Settings::chatAssistantSettings().useTools()) { - auto toolsDefinitions = m_toolsManager->getToolsDefinitions(Tools::ToolSchemaFormat::OpenAI); + auto toolsDefinitions = m_toolsManager->getToolsDefinitions( + LLMCore::ToolSchemaFormat::OpenAI); if (!toolsDefinitions.isEmpty()) { request["tools"] = toolsDefinitions; LOG_MESSAGE(QString("Added %1 tools to OpenAI request").arg(toolsDefinitions.size())); diff --git a/tools/ToolsManager.cpp b/tools/ToolsManager.cpp index f26f6b3..8d9c60e 100644 --- a/tools/ToolsManager.cpp +++ b/tools/ToolsManager.cpp @@ -75,17 +75,13 @@ void ToolsManager::executeToolCall( LOG_MESSAGE(QString("ToolsManager: Started async execution of %1").arg(toolName)); } -QJsonArray ToolsManager::getToolsDefinitions(ToolSchemaFormat format) const +QJsonArray ToolsManager::getToolsDefinitions(LLMCore::ToolSchemaFormat format) const { if (!m_toolsFactory) { return QJsonArray(); } - LLMCore::ToolSchemaFormat coreFormat = (format == ToolSchemaFormat::OpenAI) - ? LLMCore::ToolSchemaFormat::OpenAI - : LLMCore::ToolSchemaFormat::Claude; - - return m_toolsFactory->getToolsDefinitions(coreFormat); + return m_toolsFactory->getToolsDefinitions(format); } void ToolsManager::cleanupRequest(const QString &requestId) diff --git a/tools/ToolsManager.hpp b/tools/ToolsManager.hpp index ee82182..e0a13db 100644 --- a/tools/ToolsManager.hpp +++ b/tools/ToolsManager.hpp @@ -26,11 +26,10 @@ #include "ToolHandler.hpp" #include "ToolsFactory.hpp" +#include namespace QodeAssist::Tools { -enum class ToolSchemaFormat { OpenAI, Claude }; - struct PendingTool { QString id; @@ -53,7 +52,7 @@ public: const QString &toolName, const QJsonObject &input); - QJsonArray getToolsDefinitions(ToolSchemaFormat format) const; + QJsonArray getToolsDefinitions(LLMCore::ToolSchemaFormat format) const; void cleanupRequest(const QString &requestId); ToolsFactory *toolsFactory() const;