llm-trust-guard 4.0.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/LICENSE +21 -0
- package/README.md +318 -0
- package/dist/guards/agent-communication-guard.d.ts +169 -0
- package/dist/guards/agent-communication-guard.d.ts.map +1 -0
- package/dist/guards/agent-communication-guard.js +468 -0
- package/dist/guards/agent-communication-guard.js.map +1 -0
- package/dist/guards/autonomy-escalation-guard.d.ts +137 -0
- package/dist/guards/autonomy-escalation-guard.d.ts.map +1 -0
- package/dist/guards/autonomy-escalation-guard.js +470 -0
- package/dist/guards/autonomy-escalation-guard.js.map +1 -0
- package/dist/guards/circuit-breaker.d.ts +142 -0
- package/dist/guards/circuit-breaker.d.ts.map +1 -0
- package/dist/guards/circuit-breaker.js +347 -0
- package/dist/guards/circuit-breaker.js.map +1 -0
- package/dist/guards/code-execution-guard.d.ts +114 -0
- package/dist/guards/code-execution-guard.d.ts.map +1 -0
- package/dist/guards/code-execution-guard.js +467 -0
- package/dist/guards/code-execution-guard.js.map +1 -0
- package/dist/guards/conversation-guard.d.ts +73 -0
- package/dist/guards/conversation-guard.d.ts.map +1 -0
- package/dist/guards/conversation-guard.js +281 -0
- package/dist/guards/conversation-guard.js.map +1 -0
- package/dist/guards/drift-detector.d.ts +182 -0
- package/dist/guards/drift-detector.d.ts.map +1 -0
- package/dist/guards/drift-detector.js +480 -0
- package/dist/guards/drift-detector.js.map +1 -0
- package/dist/guards/encoding-detector.d.ts +76 -0
- package/dist/guards/encoding-detector.d.ts.map +1 -0
- package/dist/guards/encoding-detector.js +698 -0
- package/dist/guards/encoding-detector.js.map +1 -0
- package/dist/guards/execution-monitor.d.ts +73 -0
- package/dist/guards/execution-monitor.d.ts.map +1 -0
- package/dist/guards/execution-monitor.js +205 -0
- package/dist/guards/execution-monitor.js.map +1 -0
- package/dist/guards/input-sanitizer.d.ts +87 -0
- package/dist/guards/input-sanitizer.d.ts.map +1 -0
- package/dist/guards/input-sanitizer.js +301 -0
- package/dist/guards/input-sanitizer.js.map +1 -0
- package/dist/guards/mcp-security-guard.d.ts +204 -0
- package/dist/guards/mcp-security-guard.d.ts.map +1 -0
- package/dist/guards/mcp-security-guard.js +618 -0
- package/dist/guards/mcp-security-guard.js.map +1 -0
- package/dist/guards/memory-guard.d.ts +124 -0
- package/dist/guards/memory-guard.d.ts.map +1 -0
- package/dist/guards/memory-guard.js +476 -0
- package/dist/guards/memory-guard.js.map +1 -0
- package/dist/guards/multimodal-guard.d.ts +93 -0
- package/dist/guards/multimodal-guard.d.ts.map +1 -0
- package/dist/guards/multimodal-guard.js +507 -0
- package/dist/guards/multimodal-guard.js.map +1 -0
- package/dist/guards/output-filter.d.ts +76 -0
- package/dist/guards/output-filter.d.ts.map +1 -0
- package/dist/guards/output-filter.js +289 -0
- package/dist/guards/output-filter.js.map +1 -0
- package/dist/guards/policy-gate.d.ts +57 -0
- package/dist/guards/policy-gate.d.ts.map +1 -0
- package/dist/guards/policy-gate.js +182 -0
- package/dist/guards/policy-gate.js.map +1 -0
- package/dist/guards/prompt-leakage-guard.d.ts +110 -0
- package/dist/guards/prompt-leakage-guard.d.ts.map +1 -0
- package/dist/guards/prompt-leakage-guard.js +529 -0
- package/dist/guards/prompt-leakage-guard.js.map +1 -0
- package/dist/guards/rag-guard.d.ts +188 -0
- package/dist/guards/rag-guard.d.ts.map +1 -0
- package/dist/guards/rag-guard.js +769 -0
- package/dist/guards/rag-guard.js.map +1 -0
- package/dist/guards/schema-validator.d.ts +35 -0
- package/dist/guards/schema-validator.d.ts.map +1 -0
- package/dist/guards/schema-validator.js +316 -0
- package/dist/guards/schema-validator.js.map +1 -0
- package/dist/guards/state-persistence-guard.d.ts +153 -0
- package/dist/guards/state-persistence-guard.d.ts.map +1 -0
- package/dist/guards/state-persistence-guard.js +484 -0
- package/dist/guards/state-persistence-guard.js.map +1 -0
- package/dist/guards/tenant-boundary.d.ts +67 -0
- package/dist/guards/tenant-boundary.d.ts.map +1 -0
- package/dist/guards/tenant-boundary.js +187 -0
- package/dist/guards/tenant-boundary.js.map +1 -0
- package/dist/guards/tool-chain-validator.d.ts +102 -0
- package/dist/guards/tool-chain-validator.d.ts.map +1 -0
- package/dist/guards/tool-chain-validator.js +480 -0
- package/dist/guards/tool-chain-validator.js.map +1 -0
- package/dist/guards/tool-registry.d.ts +45 -0
- package/dist/guards/tool-registry.d.ts.map +1 -0
- package/dist/guards/tool-registry.js +155 -0
- package/dist/guards/tool-registry.js.map +1 -0
- package/dist/guards/trust-exploitation-guard.d.ts +134 -0
- package/dist/guards/trust-exploitation-guard.d.ts.map +1 -0
- package/dist/guards/trust-exploitation-guard.js +354 -0
- package/dist/guards/trust-exploitation-guard.js.map +1 -0
- package/dist/index.d.ts +133 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +430 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/express.d.ts +119 -0
- package/dist/integrations/express.d.ts.map +1 -0
- package/dist/integrations/express.js +244 -0
- package/dist/integrations/express.js.map +1 -0
- package/dist/integrations/index.d.ts +9 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +26 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/langchain.d.ts +165 -0
- package/dist/integrations/langchain.d.ts.map +1 -0
- package/dist/integrations/langchain.js +308 -0
- package/dist/integrations/langchain.js.map +1 -0
- package/dist/integrations/openai.d.ts +205 -0
- package/dist/integrations/openai.d.ts.map +1 -0
- package/dist/integrations/openai.js +380 -0
- package/dist/integrations/openai.js.map +1 -0
- package/dist/types/index.d.ts +245 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encoding-detector.js","sourceRoot":"","sources":["../../src/guards/encoding-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* L6: Execution Monitor
|
|
3
|
+
*
|
|
4
|
+
* Prevents resource exhaustion attacks by enforcing:
|
|
5
|
+
* - Rate limiting per user/session
|
|
6
|
+
* - Timeout limits on operations
|
|
7
|
+
* - Resource quotas (max operations per window)
|
|
8
|
+
* - Cost tracking for expensive operations
|
|
9
|
+
*/
|
|
10
|
+
export interface ExecutionMonitorConfig {
|
|
11
|
+
maxRequestsPerMinute?: number;
|
|
12
|
+
maxRequestsPerHour?: number;
|
|
13
|
+
defaultTimeoutMs?: number;
|
|
14
|
+
maxTimeoutMs?: number;
|
|
15
|
+
maxConcurrentOperations?: number;
|
|
16
|
+
operationCosts?: Record<string, number>;
|
|
17
|
+
maxCostPerMinute?: number;
|
|
18
|
+
maxCostPerHour?: number;
|
|
19
|
+
trackByUser?: boolean;
|
|
20
|
+
trackBySession?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface ExecutionMonitorResult {
|
|
23
|
+
allowed: boolean;
|
|
24
|
+
reason?: string;
|
|
25
|
+
violations: string[];
|
|
26
|
+
rate_limit_info: {
|
|
27
|
+
requests_this_minute: number;
|
|
28
|
+
requests_this_hour: number;
|
|
29
|
+
max_per_minute: number;
|
|
30
|
+
max_per_hour: number;
|
|
31
|
+
};
|
|
32
|
+
cost_info: {
|
|
33
|
+
cost_this_minute: number;
|
|
34
|
+
cost_this_hour: number;
|
|
35
|
+
operation_cost: number;
|
|
36
|
+
max_per_minute: number;
|
|
37
|
+
max_per_hour: number;
|
|
38
|
+
};
|
|
39
|
+
throttled: boolean;
|
|
40
|
+
retry_after_ms?: number;
|
|
41
|
+
}
|
|
42
|
+
export declare class ExecutionMonitor {
|
|
43
|
+
private config;
|
|
44
|
+
private userLimits;
|
|
45
|
+
private sessionLimits;
|
|
46
|
+
private globalLimits;
|
|
47
|
+
constructor(config?: ExecutionMonitorConfig);
|
|
48
|
+
/**
|
|
49
|
+
* Check if an operation should be allowed based on rate limits and quotas
|
|
50
|
+
*/
|
|
51
|
+
check(toolName: string, userId?: string, sessionId?: string, requestId?: string): ExecutionMonitorResult;
|
|
52
|
+
/**
|
|
53
|
+
* Mark an operation as complete (decrements concurrent operation count)
|
|
54
|
+
*/
|
|
55
|
+
completeOperation(userId?: string, sessionId?: string): void;
|
|
56
|
+
/**
|
|
57
|
+
* Get rate limit status for a user/session
|
|
58
|
+
*/
|
|
59
|
+
getStatus(userId?: string, sessionId?: string): {
|
|
60
|
+
requests_per_minute: number;
|
|
61
|
+
requests_per_hour: number;
|
|
62
|
+
concurrent_operations: number;
|
|
63
|
+
cost_per_minute: number;
|
|
64
|
+
cost_per_hour: number;
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Reset rate limits for a user/session
|
|
68
|
+
*/
|
|
69
|
+
reset(userId?: string, sessionId?: string): void;
|
|
70
|
+
private getEntry;
|
|
71
|
+
private cleanupEntries;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=execution-monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-monitor.d.ts","sourceRoot":"","sources":["../../src/guards/execution-monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,sBAAsB;IAErC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,EAAE;QACf,oBAAoB,EAAE,MAAM,CAAC;QAC7B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,SAAS,EAAE;QACT,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAQD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,UAAU,CAA0C;IAC5D,OAAO,CAAC,aAAa,CAA0C;IAC/D,OAAO,CAAC,YAAY,CAIlB;gBAEU,MAAM,GAAE,sBAA2B;IAe/C;;OAEG;IACH,KAAK,CACH,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,EAClB,SAAS,GAAE,MAAW,GACrB,sBAAsB;IAiHzB;;OAEG;IACH,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAO5D;;OAEG;IACH,SAAS,CACP,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB;QACD,mBAAmB,EAAE,MAAM,CAAC;QAC5B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,qBAAqB,EAAE,MAAM,CAAC;QAC9B,eAAe,EAAE,MAAM,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;KACvB;IAoBD;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAgBhD,OAAO,CAAC,QAAQ;IA2BhB,OAAO,CAAC,cAAc;CASvB"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* L6: Execution Monitor
|
|
4
|
+
*
|
|
5
|
+
* Prevents resource exhaustion attacks by enforcing:
|
|
6
|
+
* - Rate limiting per user/session
|
|
7
|
+
* - Timeout limits on operations
|
|
8
|
+
* - Resource quotas (max operations per window)
|
|
9
|
+
* - Cost tracking for expensive operations
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ExecutionMonitor = void 0;
|
|
13
|
+
class ExecutionMonitor {
|
|
14
|
+
constructor(config = {}) {
|
|
15
|
+
this.userLimits = new Map();
|
|
16
|
+
this.sessionLimits = new Map();
|
|
17
|
+
this.globalLimits = {
|
|
18
|
+
requests: [],
|
|
19
|
+
costs: [],
|
|
20
|
+
concurrentOperations: 0,
|
|
21
|
+
};
|
|
22
|
+
this.config = {
|
|
23
|
+
maxRequestsPerMinute: config.maxRequestsPerMinute ?? 60,
|
|
24
|
+
maxRequestsPerHour: config.maxRequestsPerHour ?? 1000,
|
|
25
|
+
defaultTimeoutMs: config.defaultTimeoutMs ?? 30000,
|
|
26
|
+
maxTimeoutMs: config.maxTimeoutMs ?? 120000,
|
|
27
|
+
maxConcurrentOperations: config.maxConcurrentOperations ?? 10,
|
|
28
|
+
operationCosts: config.operationCosts ?? {},
|
|
29
|
+
maxCostPerMinute: config.maxCostPerMinute ?? 100,
|
|
30
|
+
maxCostPerHour: config.maxCostPerHour ?? 1000,
|
|
31
|
+
trackByUser: config.trackByUser ?? true,
|
|
32
|
+
trackBySession: config.trackBySession ?? true,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Check if an operation should be allowed based on rate limits and quotas
|
|
37
|
+
*/
|
|
38
|
+
check(toolName, userId, sessionId, requestId = "") {
|
|
39
|
+
const now = Date.now();
|
|
40
|
+
const oneMinuteAgo = now - 60000;
|
|
41
|
+
const oneHourAgo = now - 3600000;
|
|
42
|
+
const violations = [];
|
|
43
|
+
// Get operation cost
|
|
44
|
+
const operationCost = this.config.operationCosts?.[toolName] ?? 1;
|
|
45
|
+
// Get or create rate limit entries
|
|
46
|
+
const entry = this.getEntry(userId, sessionId);
|
|
47
|
+
// Clean up old entries
|
|
48
|
+
this.cleanupEntries(entry, oneMinuteAgo, oneHourAgo);
|
|
49
|
+
// Count requests
|
|
50
|
+
const requestsThisMinute = entry.requests.filter((t) => t > oneMinuteAgo).length;
|
|
51
|
+
const requestsThisHour = entry.requests.filter((t) => t > oneHourAgo).length;
|
|
52
|
+
// Calculate costs
|
|
53
|
+
const costThisMinute = entry.costs
|
|
54
|
+
.filter((c) => c.timestamp > oneMinuteAgo)
|
|
55
|
+
.reduce((sum, c) => sum + c.cost, 0);
|
|
56
|
+
const costThisHour = entry.costs
|
|
57
|
+
.filter((c) => c.timestamp > oneHourAgo)
|
|
58
|
+
.reduce((sum, c) => sum + c.cost, 0);
|
|
59
|
+
// Check rate limits
|
|
60
|
+
let throttled = false;
|
|
61
|
+
let retryAfterMs;
|
|
62
|
+
if (requestsThisMinute >= this.config.maxRequestsPerMinute) {
|
|
63
|
+
violations.push("RATE_LIMIT_MINUTE_EXCEEDED");
|
|
64
|
+
throttled = true;
|
|
65
|
+
// Calculate when the oldest request in the minute window will expire
|
|
66
|
+
const oldestInMinute = entry.requests
|
|
67
|
+
.filter((t) => t > oneMinuteAgo)
|
|
68
|
+
.sort()[0];
|
|
69
|
+
retryAfterMs = oldestInMinute
|
|
70
|
+
? oldestInMinute + 60000 - now
|
|
71
|
+
: 60000;
|
|
72
|
+
}
|
|
73
|
+
if (requestsThisHour >= this.config.maxRequestsPerHour) {
|
|
74
|
+
violations.push("RATE_LIMIT_HOUR_EXCEEDED");
|
|
75
|
+
throttled = true;
|
|
76
|
+
const oldestInHour = entry.requests
|
|
77
|
+
.filter((t) => t > oneHourAgo)
|
|
78
|
+
.sort()[0];
|
|
79
|
+
retryAfterMs = Math.max(retryAfterMs ?? 0, oldestInHour ? oldestInHour + 3600000 - now : 3600000);
|
|
80
|
+
}
|
|
81
|
+
// Check cost limits
|
|
82
|
+
if (costThisMinute + operationCost > this.config.maxCostPerMinute) {
|
|
83
|
+
violations.push("COST_LIMIT_MINUTE_EXCEEDED");
|
|
84
|
+
throttled = true;
|
|
85
|
+
}
|
|
86
|
+
if (costThisHour + operationCost > this.config.maxCostPerHour) {
|
|
87
|
+
violations.push("COST_LIMIT_HOUR_EXCEEDED");
|
|
88
|
+
throttled = true;
|
|
89
|
+
}
|
|
90
|
+
// Check concurrent operations
|
|
91
|
+
if (entry.concurrentOperations >= this.config.maxConcurrentOperations) {
|
|
92
|
+
violations.push("MAX_CONCURRENT_OPERATIONS_EXCEEDED");
|
|
93
|
+
throttled = true;
|
|
94
|
+
}
|
|
95
|
+
const allowed = !throttled;
|
|
96
|
+
// Record request if allowed
|
|
97
|
+
if (allowed) {
|
|
98
|
+
entry.requests.push(now);
|
|
99
|
+
entry.costs.push({ timestamp: now, cost: operationCost });
|
|
100
|
+
entry.concurrentOperations++;
|
|
101
|
+
}
|
|
102
|
+
if (!allowed) {
|
|
103
|
+
console.log(`[ExecutionMonitor:${requestId}] BLOCKED: ${violations.join(", ")}`);
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
allowed,
|
|
107
|
+
reason: allowed ? undefined : `Rate limit exceeded: ${violations.join(", ")}`,
|
|
108
|
+
violations,
|
|
109
|
+
rate_limit_info: {
|
|
110
|
+
requests_this_minute: requestsThisMinute,
|
|
111
|
+
requests_this_hour: requestsThisHour,
|
|
112
|
+
max_per_minute: this.config.maxRequestsPerMinute,
|
|
113
|
+
max_per_hour: this.config.maxRequestsPerHour,
|
|
114
|
+
},
|
|
115
|
+
cost_info: {
|
|
116
|
+
cost_this_minute: costThisMinute,
|
|
117
|
+
cost_this_hour: costThisHour,
|
|
118
|
+
operation_cost: operationCost,
|
|
119
|
+
max_per_minute: this.config.maxCostPerMinute,
|
|
120
|
+
max_per_hour: this.config.maxCostPerHour,
|
|
121
|
+
},
|
|
122
|
+
throttled,
|
|
123
|
+
retry_after_ms: retryAfterMs,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Mark an operation as complete (decrements concurrent operation count)
|
|
128
|
+
*/
|
|
129
|
+
completeOperation(userId, sessionId) {
|
|
130
|
+
const entry = this.getEntry(userId, sessionId);
|
|
131
|
+
if (entry.concurrentOperations > 0) {
|
|
132
|
+
entry.concurrentOperations--;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Get rate limit status for a user/session
|
|
137
|
+
*/
|
|
138
|
+
getStatus(userId, sessionId) {
|
|
139
|
+
const now = Date.now();
|
|
140
|
+
const oneMinuteAgo = now - 60000;
|
|
141
|
+
const oneHourAgo = now - 3600000;
|
|
142
|
+
const entry = this.getEntry(userId, sessionId);
|
|
143
|
+
return {
|
|
144
|
+
requests_per_minute: entry.requests.filter((t) => t > oneMinuteAgo)
|
|
145
|
+
.length,
|
|
146
|
+
requests_per_hour: entry.requests.filter((t) => t > oneHourAgo).length,
|
|
147
|
+
concurrent_operations: entry.concurrentOperations,
|
|
148
|
+
cost_per_minute: entry.costs
|
|
149
|
+
.filter((c) => c.timestamp > oneMinuteAgo)
|
|
150
|
+
.reduce((sum, c) => sum + c.cost, 0),
|
|
151
|
+
cost_per_hour: entry.costs
|
|
152
|
+
.filter((c) => c.timestamp > oneHourAgo)
|
|
153
|
+
.reduce((sum, c) => sum + c.cost, 0),
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Reset rate limits for a user/session
|
|
158
|
+
*/
|
|
159
|
+
reset(userId, sessionId) {
|
|
160
|
+
if (sessionId && this.config.trackBySession) {
|
|
161
|
+
this.sessionLimits.delete(sessionId);
|
|
162
|
+
}
|
|
163
|
+
if (userId && this.config.trackByUser) {
|
|
164
|
+
this.userLimits.delete(userId);
|
|
165
|
+
}
|
|
166
|
+
if (!userId && !sessionId) {
|
|
167
|
+
this.globalLimits = {
|
|
168
|
+
requests: [],
|
|
169
|
+
costs: [],
|
|
170
|
+
concurrentOperations: 0,
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
getEntry(userId, sessionId) {
|
|
175
|
+
// Priority: session > user > global
|
|
176
|
+
if (sessionId && this.config.trackBySession) {
|
|
177
|
+
if (!this.sessionLimits.has(sessionId)) {
|
|
178
|
+
this.sessionLimits.set(sessionId, {
|
|
179
|
+
requests: [],
|
|
180
|
+
costs: [],
|
|
181
|
+
concurrentOperations: 0,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
return this.sessionLimits.get(sessionId);
|
|
185
|
+
}
|
|
186
|
+
if (userId && this.config.trackByUser) {
|
|
187
|
+
if (!this.userLimits.has(userId)) {
|
|
188
|
+
this.userLimits.set(userId, {
|
|
189
|
+
requests: [],
|
|
190
|
+
costs: [],
|
|
191
|
+
concurrentOperations: 0,
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
return this.userLimits.get(userId);
|
|
195
|
+
}
|
|
196
|
+
return this.globalLimits;
|
|
197
|
+
}
|
|
198
|
+
cleanupEntries(entry, oneMinuteAgo, oneHourAgo) {
|
|
199
|
+
// Keep only requests within the hour window
|
|
200
|
+
entry.requests = entry.requests.filter((t) => t > oneHourAgo);
|
|
201
|
+
entry.costs = entry.costs.filter((c) => c.timestamp > oneHourAgo);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
exports.ExecutionMonitor = ExecutionMonitor;
|
|
205
|
+
//# sourceMappingURL=execution-monitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-monitor.js","sourceRoot":"","sources":["../../src/guards/execution-monitor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* L1 Input Sanitizer (v2)
|
|
3
|
+
*
|
|
4
|
+
* Detects prompt injection patterns and PAP (Persuasive Adversarial Prompts) in user input.
|
|
5
|
+
* First line of defense against manipulation attempts.
|
|
6
|
+
*
|
|
7
|
+
* Enhanced Features (v2):
|
|
8
|
+
* - 40 Persuasion technique detection (PAP attacks)
|
|
9
|
+
* - Psychological manipulation detection
|
|
10
|
+
* - Authority/scarcity/urgency exploitation detection
|
|
11
|
+
* - Emotional manipulation detection
|
|
12
|
+
* - Multi-technique attack detection
|
|
13
|
+
*/
|
|
14
|
+
import { SanitizerResult } from "../types";
|
|
15
|
+
interface InjectionPattern {
|
|
16
|
+
pattern: RegExp;
|
|
17
|
+
weight: number;
|
|
18
|
+
name: string;
|
|
19
|
+
}
|
|
20
|
+
type PersuasionCategory = "authority" | "scarcity" | "social_proof" | "reciprocity" | "commitment" | "liking" | "fear" | "logical_appeal" | "evidence" | "emotional";
|
|
21
|
+
export interface InputSanitizerConfig {
|
|
22
|
+
threshold?: number;
|
|
23
|
+
customPatterns?: InjectionPattern[];
|
|
24
|
+
logMatches?: boolean;
|
|
25
|
+
/** Enable PAP (Persuasive Adversarial Prompts) detection */
|
|
26
|
+
detectPAP?: boolean;
|
|
27
|
+
/** PAP detection threshold (0-1, default 0.4) */
|
|
28
|
+
papThreshold?: number;
|
|
29
|
+
/** Minimum number of different persuasion techniques to trigger alert */
|
|
30
|
+
minPersuasionTechniques?: number;
|
|
31
|
+
/** Block if multiple persuasion categories used (compound attack) */
|
|
32
|
+
blockCompoundPersuasion?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/** Extended result type for PAP-aware sanitization */
|
|
35
|
+
export interface PAPSanitizerResult extends SanitizerResult {
|
|
36
|
+
pap?: {
|
|
37
|
+
detected: boolean;
|
|
38
|
+
techniques: string[];
|
|
39
|
+
categories: PersuasionCategory[];
|
|
40
|
+
compoundAttack: boolean;
|
|
41
|
+
persuasionScore: number;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export declare class InputSanitizer {
|
|
45
|
+
private patterns;
|
|
46
|
+
private threshold;
|
|
47
|
+
private logMatches;
|
|
48
|
+
private detectPAP;
|
|
49
|
+
private papThreshold;
|
|
50
|
+
private minPersuasionTechniques;
|
|
51
|
+
private blockCompoundPersuasion;
|
|
52
|
+
constructor(config?: InputSanitizerConfig);
|
|
53
|
+
/**
|
|
54
|
+
* Sanitize input and detect injection patterns (including PAP)
|
|
55
|
+
*/
|
|
56
|
+
sanitize(input: string, requestId?: string): PAPSanitizerResult;
|
|
57
|
+
/**
|
|
58
|
+
* Detect persuasion techniques (PAP attacks)
|
|
59
|
+
*/
|
|
60
|
+
private detectPersuasionTechniques;
|
|
61
|
+
/**
|
|
62
|
+
* Basic input sanitization
|
|
63
|
+
*/
|
|
64
|
+
private basicSanitize;
|
|
65
|
+
/**
|
|
66
|
+
* Add custom pattern at runtime
|
|
67
|
+
*/
|
|
68
|
+
addPattern(pattern: RegExp, weight: number, name: string): void;
|
|
69
|
+
/**
|
|
70
|
+
* Set threshold
|
|
71
|
+
*/
|
|
72
|
+
setThreshold(threshold: number): void;
|
|
73
|
+
/**
|
|
74
|
+
* Set PAP detection threshold
|
|
75
|
+
*/
|
|
76
|
+
setPAPThreshold(threshold: number): void;
|
|
77
|
+
/**
|
|
78
|
+
* Enable/disable PAP detection
|
|
79
|
+
*/
|
|
80
|
+
setPAPDetection(enabled: boolean): void;
|
|
81
|
+
/**
|
|
82
|
+
* Get PAP statistics for monitoring
|
|
83
|
+
*/
|
|
84
|
+
static getPAPCategories(): PersuasionCategory[];
|
|
85
|
+
}
|
|
86
|
+
export {};
|
|
87
|
+
//# sourceMappingURL=input-sanitizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-sanitizer.d.ts","sourceRoot":"","sources":["../../src/guards/input-sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,UAAU,gBAAgB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAUD,KAAK,kBAAkB,GACnB,WAAW,GACX,UAAU,GACV,cAAc,GACd,aAAa,GACb,YAAY,GACZ,QAAQ,GACR,MAAM,GACN,gBAAgB,GAChB,UAAU,GACV,WAAW,CAAC;AAkKhB,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,qEAAqE;IACrE,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,sDAAsD;AACtD,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,GAAG,CAAC,EAAE;QACJ,QAAQ,EAAE,OAAO,CAAC;QAClB,UAAU,EAAE,MAAM,EAAE,CAAC;QACrB,UAAU,EAAE,kBAAkB,EAAE,CAAC;QACjC,cAAc,EAAE,OAAO,CAAC;QACxB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,uBAAuB,CAAS;IACxC,OAAO,CAAC,uBAAuB,CAAU;gBAE7B,MAAM,GAAE,oBAAyB;IAU7C;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,MAAW,GAAG,kBAAkB;IAwEnE;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA8BlC;;OAEG;IACH,OAAO,CAAC,aAAa;IASrB;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI/D;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrC;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIvC;;OAEG;IACH,MAAM,CAAC,gBAAgB,IAAI,kBAAkB,EAAE;CAGhD"}
|