metal-kompanion/src/middleware/guardrailspolicy.h

25 lines
789 B
C++

#pragma once
#include <QObject>
#include <QString>
#include <QVariantMap>
#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;
};