From bc0ae50be583b814ba11e2c62584e70152702882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=A7=CE=B3=CF=86=CF=84=20Kompanion?= Date: Thu, 16 Oct 2025 20:43:54 +0200 Subject: [PATCH] Add some debug output and simplify overyl complex code --- src/main.cpp | 1 + src/mcp/KompanionQtServer.cpp | 33 ++++++++------------------------- 2 files changed, 9 insertions(+), 25 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index d282b61..9e31cc3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -22,6 +22,7 @@ #include #endif + #include "mcp/KomMcpServer.hpp" #include "mcp/KompanionQtServer.hpp" #include "mcp/RegisterTools.hpp" diff --git a/src/mcp/KompanionQtServer.cpp b/src/mcp/KompanionQtServer.cpp index 1b379b9..d2d015e 100644 --- a/src/mcp/KompanionQtServer.cpp +++ b/src/mcp/KompanionQtServer.cpp @@ -18,11 +18,10 @@ #include #include +#include using namespace Qt::Literals::StringLiterals; namespace { -const QString kSchemaResource = QStringLiteral(":/kompanion/ToolSchemas.json"); - QString normaliseToolName(const QString &defaultNamespace, const QString &rawName) { if (rawName.contains('.')) { @@ -103,31 +102,13 @@ KompanionQtServer::KompanionQtServer(const QString &backend, KomMcpServer *logic QList KompanionQtServer::loadToolsFromSchema() const { QList tools; -const QStringList candidates = { - kSchemaResource, - QStringLiteral(":/ToolSchemas.json"), - QStandardPaths::locate(QStandardPaths::GenericDataLocation, - QStringLiteral("kompanion/mcp/ToolSchemas.json")), - QStandardPaths::locate(QStandardPaths::AppDataLocation, - QStringLiteral("kompanion/mcp/ToolSchemas.json")) -}; - -QFile schemaFile; -for (const QString &candidate : candidates) { - if (candidate.isEmpty()) - continue; - schemaFile.setFileName(candidate); - if (schemaFile.open(QIODevice::ReadOnly)) { - break; + QFile kSchemaResource(":/kompanion/ToolSchemas.json"); + if (!kSchemaResource.open(QIODevice::ReadOnly)) { + qWarning() << "[KompanionQtServer] Failed to open tool schema"; + return tools; } -} -if (!schemaFile.isOpen()) { - qWarning() << "[KompanionQtServer] Failed to open tool schema (resource or installed copy):" << candidates; - return tools; -} - - const auto doc = QJsonDocument::fromJson(schemaFile.readAll()); + const auto doc = QJsonDocument::fromJson(kSchemaResource.readAll()); if (!doc.isObject()) { qWarning() << "[KompanionQtServer] Tool schema resource is not a JSON object"; return tools; @@ -143,7 +124,9 @@ if (!schemaFile.isOpen()) { for (auto it = toolDefs.constBegin(); it != toolDefs.constEnd(); ++it) { const QString fullName = normaliseToolName(defaultNamespace, it.key()); + if (!m_logic->hasTool(fullName.toStdString())) { + qDebug() << "skipping " << fullName << " that does not fit"; continue; }