#pragma once #include #include #include #include "kompanion_mw_export.h" /** GuardrailsPolicy: approve/deny tool requests before execution */ class GuardrailsPolicy : public QObject { Q_OBJECT public: explicit GuardrailsPolicy(QObject *parent=nullptr); virtual ~GuardrailsPolicy() = default; struct Decision { bool allow; QString reason; }; virtual Decision evaluate(const QString &toolName, const QVariantMap &args) const = 0; }; /** DefaultGuardrails: permissive, placeholder for identity.json loading */ class KOMPANION_MW_EXPORT DefaultGuardrails : public GuardrailsPolicy { Q_OBJECT public: explicit DefaultGuardrails(QObject *parent=nullptr); Decision evaluate(const QString &toolName, const QVariantMap &args) const override; };