clawsec 0.0.1 → 0.0.2
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/dist/src/actions/block.js +2 -2
- package/dist/src/actions/block.js.map +1 -1
- package/dist/src/actions/confirm.d.ts +1 -1
- package/dist/src/actions/confirm.d.ts.map +1 -1
- package/dist/src/actions/confirm.js +57 -26
- package/dist/src/actions/confirm.js.map +1 -1
- package/dist/src/actions/executor.d.ts +3 -1
- package/dist/src/actions/executor.d.ts.map +1 -1
- package/dist/src/actions/executor.js +48 -11
- package/dist/src/actions/executor.js.map +1 -1
- package/dist/src/actions/warn.js +2 -2
- package/dist/src/actions/warn.js.map +1 -1
- package/dist/src/approval/agent-confirm.d.ts +4 -0
- package/dist/src/approval/agent-confirm.d.ts.map +1 -1
- package/dist/src/approval/agent-confirm.js +14 -0
- package/dist/src/approval/agent-confirm.js.map +1 -1
- package/dist/src/approval/store.d.ts +4 -0
- package/dist/src/approval/store.d.ts.map +1 -1
- package/dist/src/approval/store.js +19 -0
- package/dist/src/approval/store.js.map +1 -1
- package/dist/src/config/loader.d.ts +7 -4
- package/dist/src/config/loader.d.ts.map +1 -1
- package/dist/src/config/loader.js +58 -27
- package/dist/src/config/loader.js.map +1 -1
- package/dist/src/config/schema.d.ts +60 -41
- package/dist/src/config/schema.d.ts.map +1 -1
- package/dist/src/config/schema.js +12 -0
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/config/template-loader.d.ts +34 -0
- package/dist/src/config/template-loader.d.ts.map +1 -0
- package/dist/src/config/template-loader.js +127 -0
- package/dist/src/config/template-loader.js.map +1 -0
- package/dist/src/detectors/destructive/cloud-detector.d.ts +10 -3
- package/dist/src/detectors/destructive/cloud-detector.d.ts.map +1 -1
- package/dist/src/detectors/destructive/cloud-detector.js +45 -5
- package/dist/src/detectors/destructive/cloud-detector.js.map +1 -1
- package/dist/src/detectors/destructive/code-detector.d.ts +9 -2
- package/dist/src/detectors/destructive/code-detector.d.ts.map +1 -1
- package/dist/src/detectors/destructive/code-detector.js +43 -4
- package/dist/src/detectors/destructive/code-detector.js.map +1 -1
- package/dist/src/detectors/destructive/index.d.ts +5 -3
- package/dist/src/detectors/destructive/index.d.ts.map +1 -1
- package/dist/src/detectors/destructive/index.js +42 -10
- package/dist/src/detectors/destructive/index.js.map +1 -1
- package/dist/src/detectors/destructive/shell-detector.d.ts +10 -3
- package/dist/src/detectors/destructive/shell-detector.d.ts.map +1 -1
- package/dist/src/detectors/destructive/shell-detector.js +44 -5
- package/dist/src/detectors/destructive/shell-detector.js.map +1 -1
- package/dist/src/detectors/destructive/types.d.ts +6 -0
- package/dist/src/detectors/destructive/types.d.ts.map +1 -1
- package/dist/src/detectors/exfiltration/cloud-detector.d.ts +3 -2
- package/dist/src/detectors/exfiltration/cloud-detector.d.ts.map +1 -1
- package/dist/src/detectors/exfiltration/cloud-detector.js +21 -3
- package/dist/src/detectors/exfiltration/cloud-detector.js.map +1 -1
- package/dist/src/detectors/exfiltration/http-detector.d.ts +3 -2
- package/dist/src/detectors/exfiltration/http-detector.d.ts.map +1 -1
- package/dist/src/detectors/exfiltration/http-detector.js +21 -3
- package/dist/src/detectors/exfiltration/http-detector.js.map +1 -1
- package/dist/src/detectors/exfiltration/index.d.ts +5 -3
- package/dist/src/detectors/exfiltration/index.d.ts.map +1 -1
- package/dist/src/detectors/exfiltration/index.js +44 -11
- package/dist/src/detectors/exfiltration/index.js.map +1 -1
- package/dist/src/detectors/exfiltration/network-detector.d.ts +3 -2
- package/dist/src/detectors/exfiltration/network-detector.d.ts.map +1 -1
- package/dist/src/detectors/exfiltration/network-detector.js +26 -8
- package/dist/src/detectors/exfiltration/network-detector.js.map +1 -1
- package/dist/src/detectors/exfiltration/types.d.ts +2 -0
- package/dist/src/detectors/exfiltration/types.d.ts.map +1 -1
- package/dist/src/detectors/purchase/domain-detector.d.ts +1 -1
- package/dist/src/detectors/purchase/domain-detector.d.ts.map +1 -1
- package/dist/src/detectors/purchase/domain-detector.js +1 -1
- package/dist/src/detectors/purchase/domain-detector.js.map +1 -1
- package/dist/src/detectors/purchase/form-detector.d.ts +2 -2
- package/dist/src/detectors/purchase/form-detector.d.ts.map +1 -1
- package/dist/src/detectors/purchase/form-detector.js +7 -4
- package/dist/src/detectors/purchase/form-detector.js.map +1 -1
- package/dist/src/detectors/purchase/index.d.ts +5 -3
- package/dist/src/detectors/purchase/index.d.ts.map +1 -1
- package/dist/src/detectors/purchase/index.js +35 -6
- package/dist/src/detectors/purchase/index.js.map +1 -1
- package/dist/src/detectors/purchase/spend-tracker.d.ts +6 -2
- package/dist/src/detectors/purchase/spend-tracker.d.ts.map +1 -1
- package/dist/src/detectors/purchase/spend-tracker.js +19 -3
- package/dist/src/detectors/purchase/spend-tracker.js.map +1 -1
- package/dist/src/detectors/purchase/url-detector.d.ts +2 -2
- package/dist/src/detectors/purchase/url-detector.d.ts.map +1 -1
- package/dist/src/detectors/purchase/url-detector.js +3 -3
- package/dist/src/detectors/purchase/url-detector.js.map +1 -1
- package/dist/src/detectors/secrets/api-key-detector.d.ts +6 -6
- package/dist/src/detectors/secrets/api-key-detector.d.ts.map +1 -1
- package/dist/src/detectors/secrets/api-key-detector.js +33 -7
- package/dist/src/detectors/secrets/api-key-detector.js.map +1 -1
- package/dist/src/detectors/secrets/index.d.ts +5 -3
- package/dist/src/detectors/secrets/index.d.ts.map +1 -1
- package/dist/src/detectors/secrets/index.js +52 -11
- package/dist/src/detectors/secrets/index.js.map +1 -1
- package/dist/src/detectors/secrets/pii-detector.d.ts +2 -2
- package/dist/src/detectors/secrets/pii-detector.d.ts.map +1 -1
- package/dist/src/detectors/secrets/pii-detector.js +3 -3
- package/dist/src/detectors/secrets/pii-detector.js.map +1 -1
- package/dist/src/detectors/secrets/token-detector.d.ts +2 -2
- package/dist/src/detectors/secrets/token-detector.d.ts.map +1 -1
- package/dist/src/detectors/secrets/token-detector.js +3 -3
- package/dist/src/detectors/secrets/token-detector.js.map +1 -1
- package/dist/src/detectors/secrets/types.d.ts +5 -3
- package/dist/src/detectors/secrets/types.d.ts.map +1 -1
- package/dist/src/detectors/website/index.d.ts +5 -3
- package/dist/src/detectors/website/index.d.ts.map +1 -1
- package/dist/src/detectors/website/index.js +21 -6
- package/dist/src/detectors/website/index.js.map +1 -1
- package/dist/src/engine/analyzer.d.ts +3 -1
- package/dist/src/engine/analyzer.d.ts.map +1 -1
- package/dist/src/engine/analyzer.js +66 -10
- package/dist/src/engine/analyzer.js.map +1 -1
- package/dist/src/engine/types.d.ts +4 -1
- package/dist/src/engine/types.d.ts.map +1 -1
- package/dist/src/engine/types.js.map +1 -1
- package/dist/src/hooks/before-agent-start/handler.d.ts +3 -1
- package/dist/src/hooks/before-agent-start/handler.d.ts.map +1 -1
- package/dist/src/hooks/before-agent-start/handler.js +59 -12
- package/dist/src/hooks/before-agent-start/handler.js.map +1 -1
- package/dist/src/hooks/before-tool-call/handler.d.ts +3 -1
- package/dist/src/hooks/before-tool-call/handler.d.ts.map +1 -1
- package/dist/src/hooks/before-tool-call/handler.js +86 -54
- package/dist/src/hooks/before-tool-call/handler.js.map +1 -1
- package/dist/src/hooks/tool-result-persist/handler.d.ts +3 -1
- package/dist/src/hooks/tool-result-persist/handler.d.ts.map +1 -1
- package/dist/src/hooks/tool-result-persist/handler.js +36 -34
- package/dist/src/hooks/tool-result-persist/handler.js.map +1 -1
- package/dist/src/index.d.ts +45 -47
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +120 -96
- package/dist/src/index.js.map +1 -1
- package/dist/src/notifications/index.d.ts.map +1 -1
- package/dist/src/notifications/index.js +2 -1
- package/dist/src/notifications/index.js.map +1 -1
- package/dist/src/notifications/telegram.js +1 -1
- package/dist/src/notifications/telegram.js.map +1 -1
- package/dist/src/notifications/types.d.ts +1 -1
- package/dist/src/notifications/types.d.ts.map +1 -1
- package/dist/src/utils/logger.d.ts +26 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +76 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/openclaw.plugin.json +7 -22
- package/package.json +8 -2
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
* v
|
|
11
11
|
* LLM Analysis (~500ms) -> BLOCK/CONFIRM
|
|
12
12
|
*/
|
|
13
|
+
import { createLogger } from '../utils/logger.js';
|
|
13
14
|
import { compareSeverity } from './types.js';
|
|
14
15
|
import { createCache, createNoOpCache, generateCacheKey, DEFAULT_CACHE_TTL_MS } from './cache.js';
|
|
15
16
|
// Import detector factories
|
|
@@ -51,10 +52,30 @@ function determineAction(detections, config) {
|
|
|
51
52
|
}
|
|
52
53
|
// Get primary detection (highest severity, highest confidence)
|
|
53
54
|
const primary = detections[0];
|
|
54
|
-
const { severity, confidence } = primary;
|
|
55
|
+
const { severity, confidence, category } = primary;
|
|
55
56
|
// Check if LLM is enabled in config
|
|
56
57
|
const llmEnabled = config.llm?.enabled ?? false;
|
|
57
|
-
//
|
|
58
|
+
// FIRST: Check if config specifies an action for this category
|
|
59
|
+
// Skip 'unknown' category as it's not a valid config key
|
|
60
|
+
if (category !== 'unknown') {
|
|
61
|
+
const categoryConfig = config.rules[category];
|
|
62
|
+
if (categoryConfig?.action) {
|
|
63
|
+
// User explicitly configured an action - RESPECT IT
|
|
64
|
+
let configuredAction = categoryConfig.action;
|
|
65
|
+
// Convert 'agent-confirm' to 'confirm' for internal use
|
|
66
|
+
if (configuredAction === 'agent-confirm') {
|
|
67
|
+
configuredAction = 'confirm';
|
|
68
|
+
}
|
|
69
|
+
// Determine if LLM should be involved (if confidence is ambiguous)
|
|
70
|
+
const isAmbiguous = confidence >= 0.5 && confidence <= 0.8;
|
|
71
|
+
const requiresLLM = llmEnabled && isAmbiguous;
|
|
72
|
+
return {
|
|
73
|
+
action: configuredAction,
|
|
74
|
+
requiresLLM
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
// FALLBACK: If no config action specified, use confidence-based logic
|
|
58
79
|
switch (severity) {
|
|
59
80
|
case 'critical':
|
|
60
81
|
if (confidence > 0.8) {
|
|
@@ -77,11 +98,12 @@ function determineAction(detections, config) {
|
|
|
77
98
|
const isAmbiguous = confidence >= 0.5 && confidence <= 0.7;
|
|
78
99
|
return { action: 'warn', requiresLLM: llmEnabled && isAmbiguous };
|
|
79
100
|
}
|
|
80
|
-
case 'medium':
|
|
101
|
+
case 'medium': {
|
|
81
102
|
// Medium severity -> warn
|
|
82
103
|
// May need LLM if confidence is ambiguous
|
|
83
104
|
const isAmbiguousMedium = confidence >= 0.5 && confidence <= 0.8;
|
|
84
105
|
return { action: 'warn', requiresLLM: llmEnabled && isAmbiguousMedium };
|
|
106
|
+
}
|
|
85
107
|
case 'low':
|
|
86
108
|
// Low severity -> allow with logging
|
|
87
109
|
return { action: 'allow', requiresLLM: false };
|
|
@@ -112,6 +134,7 @@ export class HybridAnalyzer {
|
|
|
112
134
|
cacheEnabled;
|
|
113
135
|
cacheTtlMs;
|
|
114
136
|
llmClient;
|
|
137
|
+
logger;
|
|
115
138
|
// Detectors
|
|
116
139
|
purchaseDetector;
|
|
117
140
|
websiteDetector;
|
|
@@ -123,25 +146,26 @@ export class HybridAnalyzer {
|
|
|
123
146
|
this.cacheEnabled = analyzerConfig.enableCache ?? true;
|
|
124
147
|
this.cacheTtlMs = analyzerConfig.cacheTtlMs ?? DEFAULT_CACHE_TTL_MS;
|
|
125
148
|
this.llmClient = analyzerConfig.llmClient;
|
|
149
|
+
this.logger = analyzerConfig.logger ?? createLogger(null, null);
|
|
126
150
|
// Initialize cache
|
|
127
151
|
this.cache = this.cacheEnabled
|
|
128
152
|
? createCache(this.cacheTtlMs)
|
|
129
153
|
: createNoOpCache();
|
|
130
154
|
// Initialize detectors from config
|
|
131
155
|
this.purchaseDetector = this.config.rules.purchase
|
|
132
|
-
? createPurchaseDetector(this.config.rules.purchase)
|
|
156
|
+
? createPurchaseDetector(this.config.rules.purchase, undefined, this.logger)
|
|
133
157
|
: createDefaultPurchaseDetector();
|
|
134
158
|
this.websiteDetector = this.config.rules.website
|
|
135
|
-
? createWebsiteDetector(this.config.rules.website)
|
|
159
|
+
? createWebsiteDetector(this.config.rules.website, this.logger)
|
|
136
160
|
: createDefaultWebsiteDetector();
|
|
137
161
|
this.destructiveDetector = this.config.rules.destructive
|
|
138
|
-
? createDestructiveDetector(this.config.rules.destructive)
|
|
162
|
+
? createDestructiveDetector(this.config.rules.destructive, this.logger)
|
|
139
163
|
: createDefaultDestructiveDetector();
|
|
140
164
|
this.secretsDetector = this.config.rules.secrets
|
|
141
|
-
? createSecretsDetector(this.config.rules.secrets)
|
|
165
|
+
? createSecretsDetector(this.config.rules.secrets, this.logger)
|
|
142
166
|
: createDefaultSecretsDetector();
|
|
143
167
|
this.exfiltrationDetector = this.config.rules.exfiltration
|
|
144
|
-
? createExfiltrationDetector(this.config.rules.exfiltration)
|
|
168
|
+
? createExfiltrationDetector(this.config.rules.exfiltration, this.logger)
|
|
145
169
|
: createDefaultExfiltrationDetector();
|
|
146
170
|
}
|
|
147
171
|
/**
|
|
@@ -149,6 +173,9 @@ export class HybridAnalyzer {
|
|
|
149
173
|
*/
|
|
150
174
|
async analyze(context) {
|
|
151
175
|
const startTime = Date.now();
|
|
176
|
+
const toolName = context.toolName;
|
|
177
|
+
const url = context.url || 'none';
|
|
178
|
+
this.logger.debug(`[Analyzer] Starting analysis: tool=${toolName}, url=${url}`);
|
|
152
179
|
// Check if globally disabled
|
|
153
180
|
if (!this.config.global?.enabled) {
|
|
154
181
|
return {
|
|
@@ -165,13 +192,16 @@ export class HybridAnalyzer {
|
|
|
165
192
|
if (this.cacheEnabled) {
|
|
166
193
|
const cachedResult = this.cache.get(cacheKey);
|
|
167
194
|
if (cachedResult) {
|
|
195
|
+
this.logger.debug(`[Analyzer] Cache hit: key=${cacheKey}`);
|
|
168
196
|
return {
|
|
169
197
|
...cachedResult,
|
|
170
198
|
durationMs: Date.now() - startTime,
|
|
171
199
|
};
|
|
172
200
|
}
|
|
201
|
+
this.logger.debug(`[Analyzer] Cache miss: key=${cacheKey}`);
|
|
173
202
|
}
|
|
174
203
|
// Run all detectors in parallel
|
|
204
|
+
this.logger.debug(`[Analyzer] Running 5 detectors`);
|
|
175
205
|
const detectionResults = await Promise.all([
|
|
176
206
|
this.runPurchaseDetector(context),
|
|
177
207
|
this.runWebsiteDetector(context),
|
|
@@ -179,24 +209,45 @@ export class HybridAnalyzer {
|
|
|
179
209
|
this.runSecretsDetector(context),
|
|
180
210
|
this.runExfiltrationDetector(context),
|
|
181
211
|
]);
|
|
212
|
+
// Log detection results
|
|
213
|
+
for (const result of detectionResults) {
|
|
214
|
+
if (result.detected) {
|
|
215
|
+
this.logger.info(`[Analyzer] Detection: detector=${result.category}, severity=${result.severity}, confidence=${result.confidence}, reason="${result.reason}"`);
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
this.logger.debug(`[Analyzer] No detection: detector=${result.category}`);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
182
221
|
// Convert to unified detections and filter out non-detections
|
|
183
222
|
const detections = detectionResults
|
|
184
223
|
.map(toDetection)
|
|
185
224
|
.filter((d) => d !== null);
|
|
186
225
|
// Sort by severity (critical > high > medium > low) and confidence
|
|
187
226
|
const sortedDetections = sortDetections(detections);
|
|
227
|
+
this.logger.debug(`[Analyzer] Found ${sortedDetections.length} detections, sorted by severity and confidence`);
|
|
188
228
|
// Determine action based on highest severity detection
|
|
189
229
|
let { action, requiresLLM } = determineAction(sortedDetections, this.config);
|
|
230
|
+
this.logger.info(`[Analyzer] Action determined: ${action}, detections=${sortedDetections.length}, requiresLLM=${requiresLLM}`);
|
|
190
231
|
// If LLM analysis is needed and we have an LLM client, perform analysis
|
|
191
232
|
let llmResult;
|
|
192
233
|
if (requiresLLM && this.llmClient && this.llmClient.isAvailable() && sortedDetections[0]) {
|
|
234
|
+
this.logger.info(`[Analyzer] LLM analysis required: confidence in ambiguous range`);
|
|
235
|
+
this.logger.debug(`[Analyzer] Invoking LLM analysis`);
|
|
193
236
|
llmResult = await this.performLLMAnalysis(sortedDetections[0], context);
|
|
237
|
+
this.logger.info(`[Analyzer] LLM response: determination=${llmResult.determination}, confidence=${llmResult.confidence}, suggested_action=${llmResult.suggestedAction}`);
|
|
194
238
|
// Adjust action based on LLM result
|
|
239
|
+
const previousAction = action;
|
|
195
240
|
const adjustedAction = this.adjustActionFromLLM(action, llmResult);
|
|
196
241
|
action = adjustedAction;
|
|
242
|
+
if (previousAction !== action) {
|
|
243
|
+
this.logger.info(`[Analyzer] LLM override: changed action from ${previousAction} to ${action}`);
|
|
244
|
+
}
|
|
197
245
|
// LLM has made its determination, no longer needs LLM
|
|
198
246
|
requiresLLM = false;
|
|
199
247
|
}
|
|
248
|
+
else if (requiresLLM && (!this.llmClient || !this.llmClient.isAvailable())) {
|
|
249
|
+
this.logger.debug(`[Analyzer] LLM not configured or unavailable, using pattern-based action`);
|
|
250
|
+
}
|
|
200
251
|
// Build result
|
|
201
252
|
const result = {
|
|
202
253
|
action,
|
|
@@ -209,7 +260,9 @@ export class HybridAnalyzer {
|
|
|
209
260
|
// Cache the result (unless it still requires LLM - those shouldn't be cached)
|
|
210
261
|
if (this.cacheEnabled && !requiresLLM) {
|
|
211
262
|
this.cache.set(cacheKey, result);
|
|
263
|
+
this.logger.debug(`[Analyzer] Cached result: ttl=${this.cacheTtlMs}ms`);
|
|
212
264
|
}
|
|
265
|
+
this.logger.debug(`[Analyzer] Analysis complete: tool=${toolName}, action=${action}, duration=${Date.now() - startTime}ms`);
|
|
213
266
|
return result;
|
|
214
267
|
}
|
|
215
268
|
/**
|
|
@@ -314,8 +367,10 @@ export class HybridAnalyzer {
|
|
|
314
367
|
context,
|
|
315
368
|
});
|
|
316
369
|
}
|
|
317
|
-
catch {
|
|
370
|
+
catch (error) {
|
|
318
371
|
// Return uncertain on error - don't block the flow
|
|
372
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
373
|
+
this.logger.warn(`[Analyzer] LLM analysis failed: ${errorMessage}, using pattern-based action`);
|
|
319
374
|
return {
|
|
320
375
|
determination: 'uncertain',
|
|
321
376
|
confidence: 0.5,
|
|
@@ -346,12 +401,13 @@ export class HybridAnalyzer {
|
|
|
346
401
|
/**
|
|
347
402
|
* Create an analyzer from configuration
|
|
348
403
|
*/
|
|
349
|
-
export function createAnalyzer(config, options) {
|
|
404
|
+
export function createAnalyzer(config, options, logger) {
|
|
350
405
|
return new HybridAnalyzer({
|
|
351
406
|
config,
|
|
352
407
|
enableCache: options?.enableCache,
|
|
353
408
|
cacheTtlMs: options?.cacheTtlMs,
|
|
354
409
|
llmClient: options?.llmClient,
|
|
410
|
+
logger,
|
|
355
411
|
});
|
|
356
412
|
}
|
|
357
413
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../../src/engine/analyzer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analyzer.js","sourceRoot":"","sources":["../../../src/engine/analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Type definitions for the main detection engine that orchestrates all detectors
|
|
4
4
|
*/
|
|
5
5
|
import type { Severity, ClawsecConfig } from '../config/index.js';
|
|
6
|
+
import type { Logger } from '../utils/logger.js';
|
|
6
7
|
/**
|
|
7
8
|
* Actions that can be returned by the analyzer
|
|
8
9
|
* Note: This extends the config Action type with 'allow' for analysis results
|
|
@@ -11,7 +12,7 @@ export type AnalysisAction = 'allow' | 'block' | 'confirm' | 'warn' | 'log';
|
|
|
11
12
|
/**
|
|
12
13
|
* Threat categories that can be detected
|
|
13
14
|
*/
|
|
14
|
-
export type ThreatCategory = 'purchase' | 'website' | 'destructive' | 'secrets' | 'exfiltration';
|
|
15
|
+
export type ThreatCategory = 'purchase' | 'website' | 'destructive' | 'secrets' | 'exfiltration' | 'unknown';
|
|
15
16
|
/**
|
|
16
17
|
* Detection context provided to the engine
|
|
17
18
|
*/
|
|
@@ -97,6 +98,8 @@ export interface AnalyzerConfig {
|
|
|
97
98
|
cacheTtlMs?: number;
|
|
98
99
|
/** Optional LLM client for analyzing ambiguous detections */
|
|
99
100
|
llmClient?: LLMClient;
|
|
101
|
+
/** Optional logger instance */
|
|
102
|
+
logger?: Logger;
|
|
100
103
|
}
|
|
101
104
|
/**
|
|
102
105
|
* LLM analysis result determination
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/engine/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/engine/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/engine/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/engine/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4KH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA6B;IACxD,QAAQ,EAAE,CAAC;IACX,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,GAAG,EAAE,CAAC;CACP,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,CAAW,EAAE,CAAW;IACtD,OAAO,gBAAgB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { BeforeAgentStartHandler } from '../../index.js';
|
|
8
8
|
import type { ClawsecConfig } from '../../config/schema.js';
|
|
9
|
+
import { type Logger } from '../../utils/logger.js';
|
|
9
10
|
/**
|
|
10
11
|
* Options for creating a before-agent-start handler
|
|
11
12
|
*/
|
|
@@ -27,9 +28,10 @@ export interface BeforeAgentStartHandlerOptions {
|
|
|
27
28
|
*
|
|
28
29
|
* @param config - Clawsec configuration
|
|
29
30
|
* @param options - Optional handler options
|
|
31
|
+
* @param logger - Optional logger instance
|
|
30
32
|
* @returns BeforeAgentStartHandler function
|
|
31
33
|
*/
|
|
32
|
-
export declare function createBeforeAgentStartHandler(config: ClawsecConfig, options?: BeforeAgentStartHandlerOptions): BeforeAgentStartHandler;
|
|
34
|
+
export declare function createBeforeAgentStartHandler(config: ClawsecConfig, options?: BeforeAgentStartHandlerOptions, logger?: Logger): BeforeAgentStartHandler;
|
|
33
35
|
/**
|
|
34
36
|
* Create a default before-agent-start handler with default configuration
|
|
35
37
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/hooks/before-agent-start/handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAGV,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/hooks/before-agent-start/handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAGV,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,8BAA8B,EACxC,MAAM,CAAC,EAAE,MAAM,GACd,uBAAuB,CAqEzB;AAED;;GAEG;AACH,wBAAgB,oCAAoC,IAAI,uBAAuB,CAmE9E"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* when an agent session starts.
|
|
6
6
|
*/
|
|
7
7
|
import { buildSecurityContextPrompt } from './prompts.js';
|
|
8
|
+
import { createLogger } from '../../utils/logger.js';
|
|
8
9
|
/**
|
|
9
10
|
* Create the before-agent-start handler
|
|
10
11
|
*
|
|
@@ -16,24 +17,70 @@ import { buildSecurityContextPrompt } from './prompts.js';
|
|
|
16
17
|
*
|
|
17
18
|
* @param config - Clawsec configuration
|
|
18
19
|
* @param options - Optional handler options
|
|
20
|
+
* @param logger - Optional logger instance
|
|
19
21
|
* @returns BeforeAgentStartHandler function
|
|
20
22
|
*/
|
|
21
|
-
export function createBeforeAgentStartHandler(config, options) {
|
|
23
|
+
export function createBeforeAgentStartHandler(config, options, logger) {
|
|
24
|
+
const log = logger ?? createLogger(null, null);
|
|
22
25
|
const injectPrompt = options?.injectPrompt ?? true;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
+
// Track which sessions have already received security context
|
|
27
|
+
const injectedSessions = new Set();
|
|
28
|
+
return async (context) => {
|
|
29
|
+
try {
|
|
30
|
+
// Normalize context: Extract/generate sessionId if missing
|
|
31
|
+
let sessionId = context.sessionId;
|
|
32
|
+
if (!sessionId && context.messages && context.messages.length > 0) {
|
|
33
|
+
// Try to extract from first message timestamp
|
|
34
|
+
const firstMsg = context.messages[0];
|
|
35
|
+
sessionId = `session_${firstMsg.timestamp || Date.now()}`;
|
|
36
|
+
}
|
|
37
|
+
else if (!sessionId) {
|
|
38
|
+
// Generate from current timestamp
|
|
39
|
+
sessionId = `session_${context.timestamp || Date.now()}`;
|
|
40
|
+
}
|
|
41
|
+
// Validate we have essential data
|
|
42
|
+
if (!context || !sessionId) {
|
|
43
|
+
log.error(`[Hook:before-agent-start] Invalid context received`, context);
|
|
44
|
+
return {}; // Fail-open for invalid context
|
|
45
|
+
}
|
|
46
|
+
log.info(`[Hook:before-agent-start] Entry: session=${sessionId}`);
|
|
47
|
+
// CHECK: If already injected for this session, return empty result
|
|
48
|
+
if (injectedSessions.has(sessionId)) {
|
|
49
|
+
log.debug(`[Hook:before-agent-start] Security context already injected for session=${sessionId}, skipping`);
|
|
50
|
+
return {}; // Empty result - no re-injection
|
|
51
|
+
}
|
|
52
|
+
// If prompt injection is disabled via options, return empty result
|
|
53
|
+
if (!injectPrompt) {
|
|
54
|
+
log.info(`[Hook:before-agent-start] Prompt injection disabled`);
|
|
55
|
+
return {};
|
|
56
|
+
}
|
|
57
|
+
// Build the security context prompt based on config
|
|
58
|
+
let prependContext;
|
|
59
|
+
try {
|
|
60
|
+
prependContext = buildSecurityContextPrompt(config);
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
64
|
+
log.error(`[Hook:before-agent-start] Error building prompt: ${errorMessage}`, error);
|
|
65
|
+
return {}; // Fail-open: allow agent to start without security context
|
|
66
|
+
}
|
|
67
|
+
// Return the result with prependContext (OpenClaw's actual API field)
|
|
68
|
+
if (prependContext) {
|
|
69
|
+
injectedSessions.add(sessionId); // Mark this session as injected
|
|
70
|
+
log.info(`[Hook:before-agent-start] Exit: session=${sessionId}, injected=${prependContext.length} chars`);
|
|
71
|
+
return {
|
|
72
|
+
prependContext,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
log.info(`[Hook:before-agent-start] Exit: session=${sessionId}, no prompt (rules disabled)`);
|
|
26
76
|
return {};
|
|
27
77
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
return {
|
|
33
|
-
systemPromptAddition,
|
|
34
|
-
};
|
|
78
|
+
catch (error) {
|
|
79
|
+
// Top-level catch for any unexpected errors
|
|
80
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
81
|
+
log.error(`[Hook:before-agent-start] Unhandled error: ${errorMessage}`, error);
|
|
82
|
+
return {}; // Fail-open: allow agent to start without security context
|
|
35
83
|
}
|
|
36
|
-
return {};
|
|
37
84
|
};
|
|
38
85
|
}
|
|
39
86
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/hooks/before-agent-start/handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../src/hooks/before-agent-start/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import type { Analyzer } from '../../engine/types.js';
|
|
|
9
9
|
import type { ActionExecutor } from '../../actions/types.js';
|
|
10
10
|
import type { ClawsecConfig } from '../../config/schema.js';
|
|
11
11
|
import type { AgentConfirmHandler } from '../../approval/agent-confirm.js';
|
|
12
|
+
import { type Logger } from '../../utils/logger.js';
|
|
12
13
|
/**
|
|
13
14
|
* Options for creating a before-tool-call handler
|
|
14
15
|
*/
|
|
@@ -32,9 +33,10 @@ export interface BeforeToolCallHandlerOptions {
|
|
|
32
33
|
*
|
|
33
34
|
* @param config - Clawsec configuration
|
|
34
35
|
* @param options - Optional custom components
|
|
36
|
+
* @param logger - Optional logger instance
|
|
35
37
|
* @returns BeforeToolCallHandler function
|
|
36
38
|
*/
|
|
37
|
-
export declare function createBeforeToolCallHandler(config: ClawsecConfig, options?: BeforeToolCallHandlerOptions): BeforeToolCallHandler;
|
|
39
|
+
export declare function createBeforeToolCallHandler(config: ClawsecConfig, options?: BeforeToolCallHandlerOptions, logger?: Logger): BeforeToolCallHandler;
|
|
38
40
|
/**
|
|
39
41
|
* Create a default before-tool-call handler with default configuration
|
|
40
42
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/hooks/before-tool-call/handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAGV,qBAAqB,EAGtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,QAAQ,EAGT,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAA+B,MAAM,wBAAwB,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/hooks/before-tool-call/handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAGV,qBAAqB,EAGtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EACV,QAAQ,EAGT,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAA+B,MAAM,wBAAwB,CAAC;AAC1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAK3E,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,4CAA4C;IAC5C,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAkGD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,4BAA4B,EACtC,MAAM,CAAC,EAAE,MAAM,GACd,qBAAqB,CAsGvB;AAED;;GAEG;AACH,wBAAgB,kCAAkC,IAAI,qBAAqB,CAmE1E"}
|