25 lines
789 B
C++
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;
|
|
};
|