8#include <unordered_map>
10#include <nlohmann/json-schema.hpp>
11#include <nlohmann/json.hpp>
15using json = nlohmann::json;
16using nlohmann::json_schema::json_validator;
31 ValidationResult(
bool valid,
const QString &error = QString(),
const QString &schema = QString(),
32 const QString &command = QString(),
const QString &path = QString())
77 ValidationResult validateAgainstSchema(
const json &data,
const json &schema,
const QString &commandType,
const std::string &cacheKey);
78 QString extractErrorPath(
const QString &errorMsg);
82 json m_commandSchemas;
83 json m_responseSchemas;
84 std::unique_ptr<json_validator> m_validator;
88 std::unordered_map<std::string, std::unique_ptr<json_validator>> m_validatorCache;
90 bool m_schemaLoaded =
false;
static json qjsonToNlohmann(const QJsonObject &qjson)
ValidationResult validateCommand(const QJsonObject &command)
json findResponseSchema(const QString &commandName) const
MCPValidator(const QString &schemaPath)
static QJsonObject nlohmannToQJson(const json &nlohmannJson)
QString schemaPath() const
bool isSchemaLoaded() const
ValidationResult validateResponse(const QJsonObject &response, const QString &expectedCommand=QString())
json findCommandSchema(const QString &commandName) const
Result of JSON schema validation.
ValidationResult(bool valid, const QString &error=QString(), const QString &schema=QString(), const QString &command=QString(), const QString &path=QString())
ValidationResult()=default