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,380 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* OpenAI Integration for llm-trust-guard
|
|
4
|
+
*
|
|
5
|
+
* Provides wrappers and utilities for securing OpenAI API calls.
|
|
6
|
+
* Works with both the official OpenAI SDK and direct API calls.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.OpenAISecurityError = exports.SecureOpenAI = void 0;
|
|
10
|
+
exports.createMessageValidator = createMessageValidator;
|
|
11
|
+
exports.wrapOpenAIClient = wrapOpenAIClient;
|
|
12
|
+
const index_js_1 = require("../index.js");
|
|
13
|
+
/**
|
|
14
|
+
* Secure wrapper for OpenAI API calls
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import OpenAI from 'openai';
|
|
19
|
+
* import { SecureOpenAI } from 'llm-trust-guard/integrations/openai';
|
|
20
|
+
*
|
|
21
|
+
* const openai = new OpenAI();
|
|
22
|
+
* const secure = new SecureOpenAI({
|
|
23
|
+
* validateInput: true,
|
|
24
|
+
* filterOutput: true,
|
|
25
|
+
* throwOnViolation: true
|
|
26
|
+
* });
|
|
27
|
+
*
|
|
28
|
+
* // Validate messages before sending
|
|
29
|
+
* const messages = [
|
|
30
|
+
* { role: 'system', content: 'You are a helpful assistant.' },
|
|
31
|
+
* { role: 'user', content: userInput }
|
|
32
|
+
* ];
|
|
33
|
+
*
|
|
34
|
+
* const validatedMessages = secure.validateMessages(messages, sessionId);
|
|
35
|
+
* if (!validatedMessages.allowed) {
|
|
36
|
+
* throw new Error(`Blocked: ${validatedMessages.violations.join(', ')}`);
|
|
37
|
+
* }
|
|
38
|
+
*
|
|
39
|
+
* // Make the API call
|
|
40
|
+
* const completion = await openai.chat.completions.create({
|
|
41
|
+
* model: 'gpt-4',
|
|
42
|
+
* messages: validatedMessages.messages
|
|
43
|
+
* });
|
|
44
|
+
*
|
|
45
|
+
* // Filter the response
|
|
46
|
+
* const safeResponse = secure.filterResponse(completion);
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
class SecureOpenAI {
|
|
50
|
+
constructor(config = {}) {
|
|
51
|
+
this.config = {
|
|
52
|
+
validateInput: true,
|
|
53
|
+
filterOutput: true,
|
|
54
|
+
validateFunctions: true,
|
|
55
|
+
throwOnViolation: false,
|
|
56
|
+
...config,
|
|
57
|
+
};
|
|
58
|
+
this.inputSanitizer = new index_js_1.InputSanitizer(config.sanitizerConfig);
|
|
59
|
+
this.encodingDetector = new index_js_1.EncodingDetector();
|
|
60
|
+
this.memoryGuard = new index_js_1.MemoryGuard();
|
|
61
|
+
this.outputFilter = new index_js_1.OutputFilter(config.outputConfig);
|
|
62
|
+
this.toolChainValidator = new index_js_1.ToolChainValidator();
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Validate a single message content
|
|
66
|
+
*/
|
|
67
|
+
validateContent(content, requestId) {
|
|
68
|
+
const reqId = requestId || `oai-${Date.now()}`;
|
|
69
|
+
// Input sanitization
|
|
70
|
+
const sanitizeResult = this.inputSanitizer.sanitize(content, reqId);
|
|
71
|
+
if (!sanitizeResult.allowed) {
|
|
72
|
+
this.handleViolation("input_sanitization", sanitizeResult);
|
|
73
|
+
return {
|
|
74
|
+
allowed: false,
|
|
75
|
+
violations: sanitizeResult.violations,
|
|
76
|
+
sanitized: sanitizeResult.sanitizedInput,
|
|
77
|
+
details: sanitizeResult,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
// Encoding detection
|
|
81
|
+
const encodingResult = this.encodingDetector.detect(content, reqId);
|
|
82
|
+
if (!encodingResult.allowed) {
|
|
83
|
+
this.handleViolation("encoding_attack", encodingResult);
|
|
84
|
+
return {
|
|
85
|
+
allowed: false,
|
|
86
|
+
violations: encodingResult.violations,
|
|
87
|
+
details: encodingResult,
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
allowed: true,
|
|
92
|
+
violations: [],
|
|
93
|
+
sanitized: sanitizeResult.sanitizedInput,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Validate an array of chat messages
|
|
98
|
+
*/
|
|
99
|
+
validateMessages(messages, sessionId, requestId) {
|
|
100
|
+
const reqId = requestId || `oai-msgs-${Date.now()}`;
|
|
101
|
+
const violations = [];
|
|
102
|
+
const validatedMessages = [];
|
|
103
|
+
for (let i = 0; i < messages.length; i++) {
|
|
104
|
+
const msg = messages[i];
|
|
105
|
+
// Skip messages without content
|
|
106
|
+
if (!msg.content) {
|
|
107
|
+
validatedMessages.push(msg);
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
// Only validate user messages by default (system messages are trusted)
|
|
111
|
+
if (msg.role === "user") {
|
|
112
|
+
const result = this.validateContent(msg.content, `${reqId}-${i}`);
|
|
113
|
+
if (!result.allowed) {
|
|
114
|
+
violations.push(`message[${i}]: ${result.violations.join(", ")}`);
|
|
115
|
+
if (this.config.throwOnViolation) {
|
|
116
|
+
throw new OpenAISecurityError("Message validation failed", violations);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
validatedMessages.push({
|
|
120
|
+
...msg,
|
|
121
|
+
content: result.sanitized || msg.content,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
validatedMessages.push(msg);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// Validate context coherence
|
|
129
|
+
const contextContents = messages
|
|
130
|
+
.filter((m) => m.role === "system" || m.role === "assistant")
|
|
131
|
+
.map((m) => m.content)
|
|
132
|
+
.filter((c) => c !== null);
|
|
133
|
+
if (contextContents.length > 0) {
|
|
134
|
+
const contextResult = this.memoryGuard.validateContextInjection(contextContents, sessionId, reqId);
|
|
135
|
+
if (!contextResult.allowed) {
|
|
136
|
+
violations.push(`context: ${contextResult.violations.join(", ")}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return {
|
|
140
|
+
allowed: violations.length === 0,
|
|
141
|
+
messages: validatedMessages,
|
|
142
|
+
violations,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Validate function/tool definitions
|
|
147
|
+
*/
|
|
148
|
+
validateFunctions(functions, sessionId) {
|
|
149
|
+
const violations = [];
|
|
150
|
+
for (const func of functions) {
|
|
151
|
+
// Check function name for suspicious patterns
|
|
152
|
+
if (/^(system|admin|root|exec|eval|shell)/i.test(func.name)) {
|
|
153
|
+
violations.push(`Suspicious function name: ${func.name}`);
|
|
154
|
+
}
|
|
155
|
+
// Check description for injection attempts
|
|
156
|
+
if (func.description) {
|
|
157
|
+
const result = this.validateContent(func.description);
|
|
158
|
+
if (!result.allowed) {
|
|
159
|
+
violations.push(`Function ${func.name} description: ${result.violations.join(", ")}`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (violations.length > 0) {
|
|
164
|
+
this.handleViolation("function_validation", { violations });
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
allowed: violations.length === 0,
|
|
168
|
+
violations,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Validate a function/tool call before execution
|
|
173
|
+
*/
|
|
174
|
+
validateFunctionCall(name, args, sessionId) {
|
|
175
|
+
// Validate through tool chain validator
|
|
176
|
+
const result = this.toolChainValidator.validate(sessionId, name);
|
|
177
|
+
if (!result.allowed) {
|
|
178
|
+
this.handleViolation("function_call", result);
|
|
179
|
+
return {
|
|
180
|
+
allowed: false,
|
|
181
|
+
violations: result.violations,
|
|
182
|
+
details: result,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
// Check arguments for injection
|
|
186
|
+
for (const [key, value] of Object.entries(args)) {
|
|
187
|
+
if (typeof value === "string") {
|
|
188
|
+
const contentResult = this.validateContent(value);
|
|
189
|
+
if (!contentResult.allowed) {
|
|
190
|
+
this.handleViolation("function_arg_injection", { key, violations: contentResult.violations });
|
|
191
|
+
return {
|
|
192
|
+
allowed: false,
|
|
193
|
+
violations: [`${key}: ${contentResult.violations.join(", ")}`],
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return {
|
|
199
|
+
allowed: true,
|
|
200
|
+
violations: [],
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Filter the response from OpenAI
|
|
205
|
+
*/
|
|
206
|
+
filterResponse(response, requestId) {
|
|
207
|
+
if (!this.config.filterOutput) {
|
|
208
|
+
return response;
|
|
209
|
+
}
|
|
210
|
+
const reqId = requestId || `oai-resp-${Date.now()}`;
|
|
211
|
+
if (response.choices) {
|
|
212
|
+
return {
|
|
213
|
+
...response,
|
|
214
|
+
choices: response.choices.map((choice, i) => {
|
|
215
|
+
if (choice.message?.content) {
|
|
216
|
+
const filtered = this.outputFilter.filter(choice.message.content, `${reqId}-${i}`);
|
|
217
|
+
const filteredContent = typeof filtered.filtered_response === 'string'
|
|
218
|
+
? filtered.filtered_response
|
|
219
|
+
: choice.message.content;
|
|
220
|
+
return {
|
|
221
|
+
...choice,
|
|
222
|
+
message: {
|
|
223
|
+
...choice.message,
|
|
224
|
+
content: filteredContent,
|
|
225
|
+
},
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
if (choice.text) {
|
|
229
|
+
const filtered = this.outputFilter.filter(choice.text, `${reqId}-${i}`);
|
|
230
|
+
const filteredText = typeof filtered.filtered_response === 'string'
|
|
231
|
+
? filtered.filtered_response
|
|
232
|
+
: choice.text;
|
|
233
|
+
return {
|
|
234
|
+
...choice,
|
|
235
|
+
text: filteredText,
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
return choice;
|
|
239
|
+
}),
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
return response;
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Create a secure chat completion wrapper
|
|
246
|
+
*/
|
|
247
|
+
createSecureChat(sessionId) {
|
|
248
|
+
return {
|
|
249
|
+
/**
|
|
250
|
+
* Prepare messages for API call
|
|
251
|
+
*/
|
|
252
|
+
prepareMessages: (messages) => {
|
|
253
|
+
return this.validateMessages(messages, sessionId);
|
|
254
|
+
},
|
|
255
|
+
/**
|
|
256
|
+
* Validate function call before execution
|
|
257
|
+
*/
|
|
258
|
+
validateFunctionCall: (name, args) => {
|
|
259
|
+
return this.validateFunctionCall(name, args, sessionId);
|
|
260
|
+
},
|
|
261
|
+
/**
|
|
262
|
+
* Filter response before returning
|
|
263
|
+
*/
|
|
264
|
+
filterResponse: (response) => {
|
|
265
|
+
return this.filterResponse(response);
|
|
266
|
+
},
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
handleViolation(type, details) {
|
|
270
|
+
if (this.config.onViolation) {
|
|
271
|
+
this.config.onViolation(type, details);
|
|
272
|
+
}
|
|
273
|
+
if (this.config.throwOnViolation) {
|
|
274
|
+
throw new OpenAISecurityError(`Security violation: ${type}`, details.violations || [type]);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
exports.SecureOpenAI = SecureOpenAI;
|
|
279
|
+
/**
|
|
280
|
+
* Error thrown on security violations
|
|
281
|
+
*/
|
|
282
|
+
class OpenAISecurityError extends Error {
|
|
283
|
+
constructor(message, violations) {
|
|
284
|
+
super(message);
|
|
285
|
+
this.name = "OpenAISecurityError";
|
|
286
|
+
this.violations = violations;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
exports.OpenAISecurityError = OpenAISecurityError;
|
|
290
|
+
/**
|
|
291
|
+
* Create a simple wrapper function for validating OpenAI messages
|
|
292
|
+
*
|
|
293
|
+
* @example
|
|
294
|
+
* ```typescript
|
|
295
|
+
* const validate = createMessageValidator();
|
|
296
|
+
*
|
|
297
|
+
* const userMessage = await getUserInput();
|
|
298
|
+
* const result = validate(userMessage);
|
|
299
|
+
*
|
|
300
|
+
* if (!result.allowed) {
|
|
301
|
+
* console.log('Blocked:', result.violations);
|
|
302
|
+
* return;
|
|
303
|
+
* }
|
|
304
|
+
*
|
|
305
|
+
* // Use result.sanitized in your API call
|
|
306
|
+
* ```
|
|
307
|
+
*/
|
|
308
|
+
function createMessageValidator(config) {
|
|
309
|
+
const sanitizer = new index_js_1.InputSanitizer(config);
|
|
310
|
+
const encoder = new index_js_1.EncodingDetector();
|
|
311
|
+
return function validate(content) {
|
|
312
|
+
const sanitizeResult = sanitizer.sanitize(content);
|
|
313
|
+
if (!sanitizeResult.allowed) {
|
|
314
|
+
return {
|
|
315
|
+
allowed: false,
|
|
316
|
+
sanitized: sanitizeResult.sanitizedInput,
|
|
317
|
+
violations: sanitizeResult.violations,
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
const encodingResult = encoder.detect(content);
|
|
321
|
+
if (!encodingResult.allowed) {
|
|
322
|
+
return {
|
|
323
|
+
allowed: false,
|
|
324
|
+
sanitized: content,
|
|
325
|
+
violations: encodingResult.violations,
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
return {
|
|
329
|
+
allowed: true,
|
|
330
|
+
sanitized: sanitizeResult.sanitizedInput,
|
|
331
|
+
violations: [],
|
|
332
|
+
};
|
|
333
|
+
};
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Middleware-style wrapper for OpenAI client
|
|
337
|
+
*
|
|
338
|
+
* @example
|
|
339
|
+
* ```typescript
|
|
340
|
+
* import OpenAI from 'openai';
|
|
341
|
+
* import { wrapOpenAIClient } from 'llm-trust-guard/integrations/openai';
|
|
342
|
+
*
|
|
343
|
+
* const openai = new OpenAI();
|
|
344
|
+
* const secureOpenAI = wrapOpenAIClient(openai, {
|
|
345
|
+
* validateInput: true,
|
|
346
|
+
* filterOutput: true
|
|
347
|
+
* });
|
|
348
|
+
*
|
|
349
|
+
* // Use secureOpenAI.chat.completions.create() as normal
|
|
350
|
+
* // Input will be validated, output will be filtered
|
|
351
|
+
* ```
|
|
352
|
+
*/
|
|
353
|
+
function wrapOpenAIClient(client, config = {}) {
|
|
354
|
+
const secure = new SecureOpenAI(config);
|
|
355
|
+
const sessionId = `wrap-${Date.now()}`;
|
|
356
|
+
const originalCreate = client.chat.completions.create.bind(client.chat.completions);
|
|
357
|
+
client.chat.completions.create = async function (params) {
|
|
358
|
+
// Validate messages
|
|
359
|
+
if (params.messages) {
|
|
360
|
+
const validated = secure.validateMessages(params.messages, sessionId);
|
|
361
|
+
if (!validated.allowed && config.throwOnViolation) {
|
|
362
|
+
throw new OpenAISecurityError("Message validation failed", validated.violations);
|
|
363
|
+
}
|
|
364
|
+
params = { ...params, messages: validated.messages };
|
|
365
|
+
}
|
|
366
|
+
// Validate functions/tools
|
|
367
|
+
if (params.functions && config.validateFunctions !== false) {
|
|
368
|
+
const funcResult = secure.validateFunctions(params.functions, sessionId);
|
|
369
|
+
if (!funcResult.allowed && config.throwOnViolation) {
|
|
370
|
+
throw new OpenAISecurityError("Function validation failed", funcResult.violations);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
// Make the API call
|
|
374
|
+
const response = await originalCreate(params);
|
|
375
|
+
// Filter output
|
|
376
|
+
return secure.filterResponse(response);
|
|
377
|
+
};
|
|
378
|
+
return client;
|
|
379
|
+
}
|
|
380
|
+
//# sourceMappingURL=openai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/integrations/openai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core types for llm-trust-guard
|
|
3
|
+
*/
|
|
4
|
+
export type Role = string;
|
|
5
|
+
export interface SessionContext {
|
|
6
|
+
user_id: string;
|
|
7
|
+
tenant_id: string;
|
|
8
|
+
role: Role;
|
|
9
|
+
authenticated: boolean;
|
|
10
|
+
session_id?: string;
|
|
11
|
+
metadata?: Record<string, any>;
|
|
12
|
+
}
|
|
13
|
+
export interface ToolDefinition {
|
|
14
|
+
name: string;
|
|
15
|
+
description: string;
|
|
16
|
+
parameters: {
|
|
17
|
+
type: "object";
|
|
18
|
+
properties: Record<string, SchemaProperty>;
|
|
19
|
+
required?: string[];
|
|
20
|
+
};
|
|
21
|
+
roles?: Role[];
|
|
22
|
+
constraints?: ToolConstraints;
|
|
23
|
+
}
|
|
24
|
+
export interface SchemaProperty {
|
|
25
|
+
type: "string" | "number" | "boolean" | "object" | "array";
|
|
26
|
+
description?: string;
|
|
27
|
+
enum?: string[];
|
|
28
|
+
minLength?: number;
|
|
29
|
+
maxLength?: number;
|
|
30
|
+
min?: number;
|
|
31
|
+
max?: number;
|
|
32
|
+
pattern?: string;
|
|
33
|
+
items?: SchemaProperty;
|
|
34
|
+
properties?: Record<string, SchemaProperty>;
|
|
35
|
+
required?: string[];
|
|
36
|
+
}
|
|
37
|
+
export interface ToolConstraints {
|
|
38
|
+
[role: string]: {
|
|
39
|
+
max_amount?: number;
|
|
40
|
+
require_approval?: boolean;
|
|
41
|
+
rate_limit?: number;
|
|
42
|
+
allowed_values?: Record<string, any[]>;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
export interface GuardResult {
|
|
46
|
+
allowed: boolean;
|
|
47
|
+
reason?: string;
|
|
48
|
+
violations: string[];
|
|
49
|
+
}
|
|
50
|
+
export interface SanitizerResult extends GuardResult {
|
|
51
|
+
score: number;
|
|
52
|
+
matches: string[];
|
|
53
|
+
sanitizedInput: string;
|
|
54
|
+
warnings: string[];
|
|
55
|
+
}
|
|
56
|
+
export interface ToolRegistryResult extends GuardResult {
|
|
57
|
+
tool?: ToolDefinition;
|
|
58
|
+
hallucination_detected: boolean;
|
|
59
|
+
similar_tools?: string[];
|
|
60
|
+
}
|
|
61
|
+
export interface PolicyGateResult extends GuardResult {
|
|
62
|
+
session_role: Role;
|
|
63
|
+
required_roles: Role[];
|
|
64
|
+
constraint_violations?: string[];
|
|
65
|
+
}
|
|
66
|
+
export interface TenantBoundaryResult extends GuardResult {
|
|
67
|
+
session_tenant: string;
|
|
68
|
+
resource_tenant?: string;
|
|
69
|
+
enforced_params?: Record<string, any>;
|
|
70
|
+
}
|
|
71
|
+
export interface SchemaValidatorResult extends GuardResult {
|
|
72
|
+
errors: string[];
|
|
73
|
+
warnings: string[];
|
|
74
|
+
sanitizedParams: Record<string, any>;
|
|
75
|
+
blocked_attacks: string[];
|
|
76
|
+
}
|
|
77
|
+
export interface ExecutionMonitorResult {
|
|
78
|
+
allowed: boolean;
|
|
79
|
+
reason?: string;
|
|
80
|
+
violations: string[];
|
|
81
|
+
rate_limit_info: {
|
|
82
|
+
requests_this_minute: number;
|
|
83
|
+
requests_this_hour: number;
|
|
84
|
+
max_per_minute: number;
|
|
85
|
+
max_per_hour: number;
|
|
86
|
+
};
|
|
87
|
+
cost_info: {
|
|
88
|
+
cost_this_minute: number;
|
|
89
|
+
cost_this_hour: number;
|
|
90
|
+
operation_cost: number;
|
|
91
|
+
max_per_minute: number;
|
|
92
|
+
max_per_hour: number;
|
|
93
|
+
};
|
|
94
|
+
throttled: boolean;
|
|
95
|
+
retry_after_ms?: number;
|
|
96
|
+
}
|
|
97
|
+
export interface OutputFilterResult {
|
|
98
|
+
allowed: boolean;
|
|
99
|
+
reason?: string;
|
|
100
|
+
violations: string[];
|
|
101
|
+
pii_detected: Array<{
|
|
102
|
+
type: string;
|
|
103
|
+
count: number;
|
|
104
|
+
masked: boolean;
|
|
105
|
+
locations: string[];
|
|
106
|
+
}>;
|
|
107
|
+
secrets_detected: Array<{
|
|
108
|
+
type: string;
|
|
109
|
+
severity: string;
|
|
110
|
+
blocked: boolean;
|
|
111
|
+
location: string;
|
|
112
|
+
}>;
|
|
113
|
+
filtered_fields: string[];
|
|
114
|
+
original_response?: any;
|
|
115
|
+
filtered_response?: any;
|
|
116
|
+
blocking_reason?: string;
|
|
117
|
+
}
|
|
118
|
+
export interface ConversationGuardResult {
|
|
119
|
+
allowed: boolean;
|
|
120
|
+
reason?: string;
|
|
121
|
+
violations: string[];
|
|
122
|
+
risk_score: number;
|
|
123
|
+
risk_factors: Array<{
|
|
124
|
+
factor: string;
|
|
125
|
+
weight: number;
|
|
126
|
+
details: string;
|
|
127
|
+
}>;
|
|
128
|
+
conversation_analysis: {
|
|
129
|
+
turn_count: number;
|
|
130
|
+
escalation_attempts: number;
|
|
131
|
+
manipulation_indicators: number;
|
|
132
|
+
suspicious_patterns: string[];
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
export interface ToolChainValidatorResult {
|
|
136
|
+
allowed: boolean;
|
|
137
|
+
reason?: string;
|
|
138
|
+
violations: string[];
|
|
139
|
+
chain_analysis: {
|
|
140
|
+
current_tool: string;
|
|
141
|
+
previous_tools: string[];
|
|
142
|
+
forbidden_sequences_detected: string[];
|
|
143
|
+
precondition_violations: string[];
|
|
144
|
+
cooldown_violations: string[];
|
|
145
|
+
};
|
|
146
|
+
warnings: string[];
|
|
147
|
+
}
|
|
148
|
+
export interface EncodingDetectorResult {
|
|
149
|
+
allowed: boolean;
|
|
150
|
+
reason?: string;
|
|
151
|
+
violations: string[];
|
|
152
|
+
encoding_analysis: {
|
|
153
|
+
encodings_detected: Array<{
|
|
154
|
+
type: string;
|
|
155
|
+
count: number;
|
|
156
|
+
locations: string[];
|
|
157
|
+
decoded_sample?: string;
|
|
158
|
+
}>;
|
|
159
|
+
decoded_content?: string;
|
|
160
|
+
threats_found: Array<{
|
|
161
|
+
pattern_name: string;
|
|
162
|
+
severity: string;
|
|
163
|
+
in_layer: string;
|
|
164
|
+
}>;
|
|
165
|
+
obfuscation_score: number;
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
export interface TrustGuardResult {
|
|
169
|
+
allowed: boolean;
|
|
170
|
+
block_layer?: "L1" | "L2" | "L3" | "L4" | "L5" | "L6" | "L7" | "CONV" | "CHAIN" | "ENCODING";
|
|
171
|
+
block_reason?: string;
|
|
172
|
+
all_violations: string[];
|
|
173
|
+
sanitizer?: SanitizerResult;
|
|
174
|
+
registry?: ToolRegistryResult;
|
|
175
|
+
policy?: PolicyGateResult;
|
|
176
|
+
tenant?: TenantBoundaryResult;
|
|
177
|
+
schema?: SchemaValidatorResult;
|
|
178
|
+
execution?: ExecutionMonitorResult;
|
|
179
|
+
output?: OutputFilterResult;
|
|
180
|
+
conversation?: ConversationGuardResult;
|
|
181
|
+
chain?: ToolChainValidatorResult;
|
|
182
|
+
encoding?: EncodingDetectorResult;
|
|
183
|
+
request_id: string;
|
|
184
|
+
}
|
|
185
|
+
export interface TrustGuardConfig {
|
|
186
|
+
sanitizer?: {
|
|
187
|
+
enabled?: boolean;
|
|
188
|
+
threshold?: number;
|
|
189
|
+
customPatterns?: Array<{
|
|
190
|
+
pattern: RegExp;
|
|
191
|
+
weight: number;
|
|
192
|
+
name: string;
|
|
193
|
+
}>;
|
|
194
|
+
};
|
|
195
|
+
registry?: {
|
|
196
|
+
enabled?: boolean;
|
|
197
|
+
tools: ToolDefinition[];
|
|
198
|
+
};
|
|
199
|
+
policy?: {
|
|
200
|
+
enabled?: boolean;
|
|
201
|
+
roleHierarchy?: Record<Role, number>;
|
|
202
|
+
};
|
|
203
|
+
tenant?: {
|
|
204
|
+
enabled?: boolean;
|
|
205
|
+
resourceOwnership?: Record<string, {
|
|
206
|
+
tenant_id: string;
|
|
207
|
+
}>;
|
|
208
|
+
};
|
|
209
|
+
schema?: {
|
|
210
|
+
enabled?: boolean;
|
|
211
|
+
strictTypes?: boolean;
|
|
212
|
+
};
|
|
213
|
+
execution?: {
|
|
214
|
+
enabled?: boolean;
|
|
215
|
+
maxRequestsPerMinute?: number;
|
|
216
|
+
maxRequestsPerHour?: number;
|
|
217
|
+
operationCosts?: Record<string, number>;
|
|
218
|
+
maxCostPerMinute?: number;
|
|
219
|
+
maxCostPerHour?: number;
|
|
220
|
+
};
|
|
221
|
+
output?: {
|
|
222
|
+
enabled?: boolean;
|
|
223
|
+
detectPII?: boolean;
|
|
224
|
+
detectSecrets?: boolean;
|
|
225
|
+
roleFilters?: Record<string, string[]>;
|
|
226
|
+
};
|
|
227
|
+
conversation?: {
|
|
228
|
+
enabled?: boolean;
|
|
229
|
+
maxConversationLength?: number;
|
|
230
|
+
escalationThreshold?: number;
|
|
231
|
+
};
|
|
232
|
+
chain?: {
|
|
233
|
+
enabled?: boolean;
|
|
234
|
+
maxToolsPerRequest?: number;
|
|
235
|
+
maxSensitiveToolsPerSession?: number;
|
|
236
|
+
sensitiveTools?: string[];
|
|
237
|
+
};
|
|
238
|
+
encoding?: {
|
|
239
|
+
enabled?: boolean;
|
|
240
|
+
maxDecodingDepth?: number;
|
|
241
|
+
maxEncodedRatio?: number;
|
|
242
|
+
};
|
|
243
|
+
logger?: (message: string, level: "info" | "warn" | "error") => void;
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|