@stanchat/clawguard 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +95 -0
- package/clawdbot.plugin.json +34 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +288 -0
- package/dist/cli.js.map +1 -0
- package/dist/consent.d.ts +13 -0
- package/dist/consent.d.ts.map +1 -0
- package/dist/consent.js +178 -0
- package/dist/consent.js.map +1 -0
- package/dist/hooks.d.ts +28 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +351 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +33 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin.d.ts +24 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +229 -0
- package/dist/plugin.js.map +1 -0
- package/dist/postinstall.d.ts +3 -0
- package/dist/postinstall.d.ts.map +1 -0
- package/dist/postinstall.js +82 -0
- package/dist/postinstall.js.map +1 -0
- package/hooks/before-tool-call/HOOK.md +22 -0
- package/hooks/before-tool-call/handler.ts +285 -0
- package/hooks/clawguard/HOOK.md +53 -0
- package/hooks/clawguard/handler.d.ts +17 -0
- package/hooks/clawguard/handler.d.ts.map +1 -0
- package/hooks/clawguard/handler.js +271 -0
- package/hooks/clawguard/handler.js.map +1 -0
- package/hooks/clawguard/handler.ts +326 -0
- package/package.json +49 -0
package/dist/hooks.js
ADDED
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.approveAction = approveAction;
|
|
37
|
+
exports.denyAction = denyAction;
|
|
38
|
+
exports.listPendingApprovals = listPendingApprovals;
|
|
39
|
+
exports.beforeToolCall = beforeToolCall;
|
|
40
|
+
exports.afterToolCall = afterToolCall;
|
|
41
|
+
const consent_1 = require("./consent");
|
|
42
|
+
const fs = __importStar(require("fs"));
|
|
43
|
+
const path = __importStar(require("path"));
|
|
44
|
+
const os = __importStar(require("os"));
|
|
45
|
+
const LOG_DIR = path.join(os.homedir(), ".clawguard", "logs");
|
|
46
|
+
const POLICY_FILE = path.join(os.homedir(), ".clawguard", "policy.json");
|
|
47
|
+
const PENDING_DIR = path.join(os.homedir(), ".clawguard", "pending");
|
|
48
|
+
const DEFAULT_POLICY = [
|
|
49
|
+
{ tool: "shell.exec", decision: "review", reason: "Terminal commands can modify your system" },
|
|
50
|
+
{ tool: "fs.write", decision: "review", reason: "File writes can overwrite important data" },
|
|
51
|
+
{ tool: "fs.delete", decision: "blocked", reason: "File deletion is high-risk" },
|
|
52
|
+
{ tool: "fs.unlink", decision: "blocked", reason: "File deletion is high-risk" },
|
|
53
|
+
{ tool: "http.request", decision: "approved", reason: "Network requests allowed by default" },
|
|
54
|
+
{ tool: "env.read", decision: "blocked", reason: "Credential access is restricted" },
|
|
55
|
+
{ tool: "env.get", decision: "blocked", reason: "Credential access is restricted" }
|
|
56
|
+
];
|
|
57
|
+
const DANGEROUS_PATTERNS = [
|
|
58
|
+
/rm\s+(-rf?|--recursive|--force)\s+[\/~]/i,
|
|
59
|
+
/rm\s+-[rf]{2}\s+/i,
|
|
60
|
+
/mkfs\./i,
|
|
61
|
+
/dd\s+if=.*of=\/dev/i,
|
|
62
|
+
/>\s*\/dev\/sd[a-z]/i,
|
|
63
|
+
/chmod\s+777\s+\//i,
|
|
64
|
+
/curl.*\|\s*(ba)?sh/i,
|
|
65
|
+
/wget.*\|\s*(ba)?sh/i,
|
|
66
|
+
/eval\s*\(/i,
|
|
67
|
+
/:(){.*}:/i,
|
|
68
|
+
/fork\s*bomb/i
|
|
69
|
+
];
|
|
70
|
+
const INJECTION_PATTERNS = [
|
|
71
|
+
/ignore\s+(previous|all|prior)\s+(instructions?|prompts?)/i,
|
|
72
|
+
/disregard\s+(your|the|all)\s+(instructions?|rules?|guidelines?)/i,
|
|
73
|
+
/you\s+are\s+now\s+(a|in|acting)/i,
|
|
74
|
+
/new\s+instructions?:/i,
|
|
75
|
+
/system\s*:\s*you/i,
|
|
76
|
+
/\[INST\]/i,
|
|
77
|
+
/<\|im_start\|>/i,
|
|
78
|
+
/jailbreak/i,
|
|
79
|
+
/bypass\s+(security|filter|restriction)/i
|
|
80
|
+
];
|
|
81
|
+
function loadPolicy() {
|
|
82
|
+
try {
|
|
83
|
+
if (fs.existsSync(POLICY_FILE)) {
|
|
84
|
+
return JSON.parse(fs.readFileSync(POLICY_FILE, "utf-8"));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch { }
|
|
88
|
+
return DEFAULT_POLICY;
|
|
89
|
+
}
|
|
90
|
+
function classifyTool(tool) {
|
|
91
|
+
const policy = loadPolicy();
|
|
92
|
+
return policy.find(r => tool.startsWith(r.tool) || tool === r.tool) || null;
|
|
93
|
+
}
|
|
94
|
+
function checkDangerousCommand(args) {
|
|
95
|
+
const argsStr = JSON.stringify(args);
|
|
96
|
+
for (const pattern of DANGEROUS_PATTERNS) {
|
|
97
|
+
if (pattern.test(argsStr)) {
|
|
98
|
+
return `Dangerous command pattern detected: ${pattern.source}`;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
function checkInjection(args) {
|
|
104
|
+
const argsStr = JSON.stringify(args);
|
|
105
|
+
for (const pattern of INJECTION_PATTERNS) {
|
|
106
|
+
if (pattern.test(argsStr)) {
|
|
107
|
+
return `Possible prompt injection: ${pattern.source}`;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
function logAction(context, result) {
|
|
113
|
+
if (!fs.existsSync(LOG_DIR)) {
|
|
114
|
+
fs.mkdirSync(LOG_DIR, { recursive: true });
|
|
115
|
+
}
|
|
116
|
+
const logEntry = {
|
|
117
|
+
ts: new Date().toISOString(),
|
|
118
|
+
tool: context.tool,
|
|
119
|
+
args: context.args,
|
|
120
|
+
allowed: result.allowed,
|
|
121
|
+
reason: result.reason,
|
|
122
|
+
sessionId: context.sessionId,
|
|
123
|
+
agentId: context.agentId
|
|
124
|
+
};
|
|
125
|
+
const logFile = path.join(LOG_DIR, `${new Date().toISOString().split("T")[0]}.jsonl`);
|
|
126
|
+
fs.appendFileSync(logFile, JSON.stringify(logEntry) + "\n");
|
|
127
|
+
}
|
|
128
|
+
function generateApprovalId() {
|
|
129
|
+
return `${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
130
|
+
}
|
|
131
|
+
function createPendingApproval(context, reason) {
|
|
132
|
+
if (!fs.existsSync(PENDING_DIR)) {
|
|
133
|
+
fs.mkdirSync(PENDING_DIR, { recursive: true });
|
|
134
|
+
}
|
|
135
|
+
const approval = {
|
|
136
|
+
id: generateApprovalId(),
|
|
137
|
+
tool: context.tool,
|
|
138
|
+
args: context.args,
|
|
139
|
+
reason,
|
|
140
|
+
createdAt: new Date().toISOString(),
|
|
141
|
+
status: "pending"
|
|
142
|
+
};
|
|
143
|
+
const filePath = path.join(PENDING_DIR, `${approval.id}.json`);
|
|
144
|
+
fs.writeFileSync(filePath, JSON.stringify(approval, null, 2));
|
|
145
|
+
console.log(`\x1b[33m🦞 Action requires approval: ${context.tool}\x1b[0m`);
|
|
146
|
+
console.log(` Reason: ${reason}`);
|
|
147
|
+
console.log(` Approve via dashboard or: openclaw clawguard approve ${approval.id}`);
|
|
148
|
+
return approval;
|
|
149
|
+
}
|
|
150
|
+
function checkApprovalStatus(id) {
|
|
151
|
+
const filePath = path.join(PENDING_DIR, `${id}.json`);
|
|
152
|
+
try {
|
|
153
|
+
if (fs.existsSync(filePath)) {
|
|
154
|
+
return JSON.parse(fs.readFileSync(filePath, "utf-8"));
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
catch { }
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
async function waitForApproval(id, timeoutMs = 30000) {
|
|
161
|
+
const startTime = Date.now();
|
|
162
|
+
const pollInterval = 500;
|
|
163
|
+
while (Date.now() - startTime < timeoutMs) {
|
|
164
|
+
const approval = checkApprovalStatus(id);
|
|
165
|
+
if (approval && approval.status !== "pending") {
|
|
166
|
+
return approval.status === "approved";
|
|
167
|
+
}
|
|
168
|
+
await new Promise(resolve => setTimeout(resolve, pollInterval));
|
|
169
|
+
}
|
|
170
|
+
console.log(`\x1b[31m🦞 Approval timed out after ${timeoutMs / 1000}s - action denied\x1b[0m`);
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
function approveAction(id) {
|
|
174
|
+
const filePath = path.join(PENDING_DIR, `${id}.json`);
|
|
175
|
+
try {
|
|
176
|
+
if (fs.existsSync(filePath)) {
|
|
177
|
+
const approval = JSON.parse(fs.readFileSync(filePath, "utf-8"));
|
|
178
|
+
approval.status = "approved";
|
|
179
|
+
approval.resolvedAt = new Date().toISOString();
|
|
180
|
+
fs.writeFileSync(filePath, JSON.stringify(approval, null, 2));
|
|
181
|
+
return true;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
catch { }
|
|
185
|
+
return false;
|
|
186
|
+
}
|
|
187
|
+
function denyAction(id) {
|
|
188
|
+
const filePath = path.join(PENDING_DIR, `${id}.json`);
|
|
189
|
+
try {
|
|
190
|
+
if (fs.existsSync(filePath)) {
|
|
191
|
+
const approval = JSON.parse(fs.readFileSync(filePath, "utf-8"));
|
|
192
|
+
approval.status = "denied";
|
|
193
|
+
approval.resolvedAt = new Date().toISOString();
|
|
194
|
+
fs.writeFileSync(filePath, JSON.stringify(approval, null, 2));
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
catch { }
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
function listPendingApprovals() {
|
|
202
|
+
if (!fs.existsSync(PENDING_DIR))
|
|
203
|
+
return [];
|
|
204
|
+
const files = fs.readdirSync(PENDING_DIR).filter(f => f.endsWith(".json"));
|
|
205
|
+
const approvals = [];
|
|
206
|
+
for (const file of files) {
|
|
207
|
+
try {
|
|
208
|
+
const approval = JSON.parse(fs.readFileSync(path.join(PENDING_DIR, file), "utf-8"));
|
|
209
|
+
if (approval.status === "pending") {
|
|
210
|
+
approvals.push(approval);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
catch { }
|
|
214
|
+
}
|
|
215
|
+
return approvals.sort((a, b) => b.createdAt.localeCompare(a.createdAt));
|
|
216
|
+
}
|
|
217
|
+
async function beforeToolCall(context) {
|
|
218
|
+
const config = (0, consent_1.loadConfig)();
|
|
219
|
+
if (!config.enabled) {
|
|
220
|
+
return { allowed: true, reason: "Clawguard disabled" };
|
|
221
|
+
}
|
|
222
|
+
const injection = checkInjection(context.args);
|
|
223
|
+
if (injection) {
|
|
224
|
+
const result = {
|
|
225
|
+
allowed: false,
|
|
226
|
+
reason: injection
|
|
227
|
+
};
|
|
228
|
+
if (config.showMode) {
|
|
229
|
+
result.allowed = true;
|
|
230
|
+
result.showModeNotice = `[SHOW MODE] Would have BLOCKED: ${injection}`;
|
|
231
|
+
console.log(`\x1b[33m🦞 ${result.showModeNotice}\x1b[0m`);
|
|
232
|
+
decrementShowMode(config);
|
|
233
|
+
}
|
|
234
|
+
logAction(context, result);
|
|
235
|
+
return result;
|
|
236
|
+
}
|
|
237
|
+
const dangerous = checkDangerousCommand(context.args);
|
|
238
|
+
if (dangerous) {
|
|
239
|
+
const result = {
|
|
240
|
+
allowed: false,
|
|
241
|
+
reason: dangerous
|
|
242
|
+
};
|
|
243
|
+
if (config.showMode) {
|
|
244
|
+
result.allowed = true;
|
|
245
|
+
result.showModeNotice = `[SHOW MODE] Would have BLOCKED: ${dangerous}`;
|
|
246
|
+
console.log(`\x1b[33m🦞 ${result.showModeNotice}\x1b[0m`);
|
|
247
|
+
decrementShowMode(config);
|
|
248
|
+
}
|
|
249
|
+
logAction(context, result);
|
|
250
|
+
return result;
|
|
251
|
+
}
|
|
252
|
+
const rule = classifyTool(context.tool);
|
|
253
|
+
if (!rule) {
|
|
254
|
+
const result = { allowed: true, reason: "No policy match - allowed" };
|
|
255
|
+
logAction(context, result);
|
|
256
|
+
if (config.showMode)
|
|
257
|
+
decrementShowMode(config);
|
|
258
|
+
return result;
|
|
259
|
+
}
|
|
260
|
+
if (rule.decision === "approved") {
|
|
261
|
+
const result = { allowed: true, reason: rule.reason };
|
|
262
|
+
logAction(context, result);
|
|
263
|
+
if (config.showMode)
|
|
264
|
+
decrementShowMode(config);
|
|
265
|
+
return result;
|
|
266
|
+
}
|
|
267
|
+
if (rule.decision === "blocked") {
|
|
268
|
+
const result = {
|
|
269
|
+
allowed: false,
|
|
270
|
+
reason: rule.reason
|
|
271
|
+
};
|
|
272
|
+
if (config.showMode) {
|
|
273
|
+
result.allowed = true;
|
|
274
|
+
result.showModeNotice = `[SHOW MODE] Would have BLOCKED: ${context.tool} - ${rule.reason}`;
|
|
275
|
+
console.log(`\x1b[33m🦞 ${result.showModeNotice}\x1b[0m`);
|
|
276
|
+
decrementShowMode(config);
|
|
277
|
+
}
|
|
278
|
+
logAction(context, result);
|
|
279
|
+
return result;
|
|
280
|
+
}
|
|
281
|
+
if (rule.decision === "review") {
|
|
282
|
+
if (config.protectionLevel === "relaxed") {
|
|
283
|
+
const result = { allowed: true, reason: "Relaxed mode - auto-approved" };
|
|
284
|
+
logAction(context, result);
|
|
285
|
+
if (config.showMode)
|
|
286
|
+
decrementShowMode(config);
|
|
287
|
+
return result;
|
|
288
|
+
}
|
|
289
|
+
if (config.showMode) {
|
|
290
|
+
const result = {
|
|
291
|
+
allowed: true,
|
|
292
|
+
reason: rule.reason,
|
|
293
|
+
showModeNotice: `[SHOW MODE] Would REQUIRE APPROVAL: ${context.tool} - ${rule.reason}`
|
|
294
|
+
};
|
|
295
|
+
console.log(`\x1b[33m🦞 ${result.showModeNotice}\x1b[0m`);
|
|
296
|
+
decrementShowMode(config);
|
|
297
|
+
logAction(context, result);
|
|
298
|
+
return result;
|
|
299
|
+
}
|
|
300
|
+
const pending = createPendingApproval(context, rule.reason);
|
|
301
|
+
const approved = await waitForApproval(pending.id);
|
|
302
|
+
const result = {
|
|
303
|
+
allowed: approved,
|
|
304
|
+
reason: approved ? "Manually approved" : "Approval denied or timed out",
|
|
305
|
+
pendingApprovalId: pending.id
|
|
306
|
+
};
|
|
307
|
+
logAction(context, result);
|
|
308
|
+
return result;
|
|
309
|
+
}
|
|
310
|
+
const defaultResult = { allowed: true, reason: "Default allow" };
|
|
311
|
+
logAction(context, defaultResult);
|
|
312
|
+
return defaultResult;
|
|
313
|
+
}
|
|
314
|
+
function decrementShowMode(config) {
|
|
315
|
+
if (!config.showMode)
|
|
316
|
+
return;
|
|
317
|
+
config.showModeActionsRemaining--;
|
|
318
|
+
if (config.showModeActionsRemaining <= 0) {
|
|
319
|
+
console.log(`
|
|
320
|
+
\x1b[32m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
321
|
+
🦞 Show Mode Complete!
|
|
322
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\x1b[0m
|
|
323
|
+
|
|
324
|
+
You've seen how Clawguard works. Ready to enable protection?
|
|
325
|
+
|
|
326
|
+
Run: \x1b[1mopenclaw clawguard enable\x1b[0m
|
|
327
|
+
|
|
328
|
+
Or view the dashboard: \x1b[1mopenclaw clawguard dashboard\x1b[0m
|
|
329
|
+
`);
|
|
330
|
+
config.showMode = false;
|
|
331
|
+
}
|
|
332
|
+
else if (config.showModeActionsRemaining === 5) {
|
|
333
|
+
console.log(`\x1b[36m🦞 Show Mode: ${config.showModeActionsRemaining} actions remaining before full protection available\x1b[0m`);
|
|
334
|
+
}
|
|
335
|
+
(0, consent_1.saveConfig)(config);
|
|
336
|
+
}
|
|
337
|
+
async function afterToolCall(context, result) {
|
|
338
|
+
// Log successful completions for audit trail
|
|
339
|
+
const logEntry = {
|
|
340
|
+
ts: new Date().toISOString(),
|
|
341
|
+
tool: context.tool,
|
|
342
|
+
phase: "after",
|
|
343
|
+
success: true
|
|
344
|
+
};
|
|
345
|
+
if (!fs.existsSync(LOG_DIR)) {
|
|
346
|
+
fs.mkdirSync(LOG_DIR, { recursive: true });
|
|
347
|
+
}
|
|
348
|
+
const logFile = path.join(LOG_DIR, `${new Date().toISOString().split("T")[0]}.jsonl`);
|
|
349
|
+
fs.appendFileSync(logFile, JSON.stringify(logEntry) + "\n");
|
|
350
|
+
}
|
|
351
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { beforeToolCall, afterToolCall, approveAction, denyAction, listPendingApprovals } from "./hooks";
|
|
2
|
+
export { runConsentFlow, loadConfig, saveConfig } from "./consent";
|
|
3
|
+
export declare function isEnabled(): boolean;
|
|
4
|
+
export declare function isShowMode(): boolean;
|
|
5
|
+
export declare function getProtectionLevel(): "relaxed" | "balanced" | "strict";
|
|
6
|
+
export declare const skillInfo: {
|
|
7
|
+
name: string;
|
|
8
|
+
version: string;
|
|
9
|
+
description: string;
|
|
10
|
+
author: string;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAInE,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAgB,UAAU,IAAI,OAAO,CAEpC;AAED,wBAAgB,kBAAkB,IAAI,SAAS,GAAG,UAAU,GAAG,QAAQ,CAEtE;AAED,eAAO,MAAM,SAAS;;;;;CAKrB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.skillInfo = exports.saveConfig = exports.loadConfig = exports.runConsentFlow = exports.listPendingApprovals = exports.denyAction = exports.approveAction = exports.afterToolCall = exports.beforeToolCall = void 0;
|
|
4
|
+
exports.isEnabled = isEnabled;
|
|
5
|
+
exports.isShowMode = isShowMode;
|
|
6
|
+
exports.getProtectionLevel = getProtectionLevel;
|
|
7
|
+
var hooks_1 = require("./hooks");
|
|
8
|
+
Object.defineProperty(exports, "beforeToolCall", { enumerable: true, get: function () { return hooks_1.beforeToolCall; } });
|
|
9
|
+
Object.defineProperty(exports, "afterToolCall", { enumerable: true, get: function () { return hooks_1.afterToolCall; } });
|
|
10
|
+
Object.defineProperty(exports, "approveAction", { enumerable: true, get: function () { return hooks_1.approveAction; } });
|
|
11
|
+
Object.defineProperty(exports, "denyAction", { enumerable: true, get: function () { return hooks_1.denyAction; } });
|
|
12
|
+
Object.defineProperty(exports, "listPendingApprovals", { enumerable: true, get: function () { return hooks_1.listPendingApprovals; } });
|
|
13
|
+
var consent_1 = require("./consent");
|
|
14
|
+
Object.defineProperty(exports, "runConsentFlow", { enumerable: true, get: function () { return consent_1.runConsentFlow; } });
|
|
15
|
+
Object.defineProperty(exports, "loadConfig", { enumerable: true, get: function () { return consent_1.loadConfig; } });
|
|
16
|
+
Object.defineProperty(exports, "saveConfig", { enumerable: true, get: function () { return consent_1.saveConfig; } });
|
|
17
|
+
const consent_2 = require("./consent");
|
|
18
|
+
function isEnabled() {
|
|
19
|
+
return (0, consent_2.loadConfig)().enabled;
|
|
20
|
+
}
|
|
21
|
+
function isShowMode() {
|
|
22
|
+
return (0, consent_2.loadConfig)().showMode;
|
|
23
|
+
}
|
|
24
|
+
function getProtectionLevel() {
|
|
25
|
+
return (0, consent_2.loadConfig)().protectionLevel;
|
|
26
|
+
}
|
|
27
|
+
exports.skillInfo = {
|
|
28
|
+
name: "clawguard",
|
|
29
|
+
version: "1.0.0",
|
|
30
|
+
description: "AI Safety for OpenClaw - monitors actions, blocks dangers, requires approval",
|
|
31
|
+
author: "Averecion"
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAKA,8BAEC;AAED,gCAEC;AAED,gDAEC;AAfD,iCAAyG;AAAhG,uGAAA,cAAc,OAAA;AAAE,sGAAA,aAAa,OAAA;AAAE,sGAAA,aAAa,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,6GAAA,oBAAoB,OAAA;AACvF,qCAAmE;AAA1D,yGAAA,cAAc,OAAA;AAAE,qGAAA,UAAU,OAAA;AAAE,qGAAA,UAAU,OAAA;AAE/C,uCAAuC;AAEvC,SAAgB,SAAS;IACvB,OAAO,IAAA,oBAAU,GAAE,CAAC,OAAO,CAAC;AAC9B,CAAC;AAED,SAAgB,UAAU;IACxB,OAAO,IAAA,oBAAU,GAAE,CAAC,QAAQ,CAAC;AAC/B,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,IAAA,oBAAU,GAAE,CAAC,eAAe,CAAC;AACtC,CAAC;AAEY,QAAA,SAAS,GAAG;IACvB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,8EAA8E;IAC3F,MAAM,EAAE,WAAW;CACpB,CAAC"}
|
package/dist/plugin.d.ts
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare const id = "clawguard";
|
|
2
|
+
export declare const name = "Clawguard";
|
|
3
|
+
interface PluginApi {
|
|
4
|
+
id: string;
|
|
5
|
+
config: Record<string, unknown>;
|
|
6
|
+
logger: {
|
|
7
|
+
info: (msg: string) => void;
|
|
8
|
+
warn: (msg: string) => void;
|
|
9
|
+
error: (msg: string) => void;
|
|
10
|
+
debug: (msg: string) => void;
|
|
11
|
+
};
|
|
12
|
+
registerHook: (events: string | string[], handler: (event: unknown, ctx?: unknown) => unknown | Promise<unknown>, opts?: {
|
|
13
|
+
name?: string;
|
|
14
|
+
}) => void;
|
|
15
|
+
registerHooksFromDir?(dir: string): void;
|
|
16
|
+
}
|
|
17
|
+
export declare function register(api: PluginApi): void;
|
|
18
|
+
declare const _default: {
|
|
19
|
+
id: string;
|
|
20
|
+
name: string;
|
|
21
|
+
register: typeof register;
|
|
22
|
+
};
|
|
23
|
+
export default _default;
|
|
24
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,EAAE,cAAc,CAAC;AAC9B,eAAO,MAAM,IAAI,cAAc,CAAC;AAkChC,UAAU,SAAS;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAC5B,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAC5B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAC7B,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;KAC9B,CAAC;IACF,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACpJ,oBAAoB,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AA4ID,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAsE7C;;;;;;AAED,wBAAsC"}
|