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.
Files changed (115) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +318 -0
  3. package/dist/guards/agent-communication-guard.d.ts +169 -0
  4. package/dist/guards/agent-communication-guard.d.ts.map +1 -0
  5. package/dist/guards/agent-communication-guard.js +468 -0
  6. package/dist/guards/agent-communication-guard.js.map +1 -0
  7. package/dist/guards/autonomy-escalation-guard.d.ts +137 -0
  8. package/dist/guards/autonomy-escalation-guard.d.ts.map +1 -0
  9. package/dist/guards/autonomy-escalation-guard.js +470 -0
  10. package/dist/guards/autonomy-escalation-guard.js.map +1 -0
  11. package/dist/guards/circuit-breaker.d.ts +142 -0
  12. package/dist/guards/circuit-breaker.d.ts.map +1 -0
  13. package/dist/guards/circuit-breaker.js +347 -0
  14. package/dist/guards/circuit-breaker.js.map +1 -0
  15. package/dist/guards/code-execution-guard.d.ts +114 -0
  16. package/dist/guards/code-execution-guard.d.ts.map +1 -0
  17. package/dist/guards/code-execution-guard.js +467 -0
  18. package/dist/guards/code-execution-guard.js.map +1 -0
  19. package/dist/guards/conversation-guard.d.ts +73 -0
  20. package/dist/guards/conversation-guard.d.ts.map +1 -0
  21. package/dist/guards/conversation-guard.js +281 -0
  22. package/dist/guards/conversation-guard.js.map +1 -0
  23. package/dist/guards/drift-detector.d.ts +182 -0
  24. package/dist/guards/drift-detector.d.ts.map +1 -0
  25. package/dist/guards/drift-detector.js +480 -0
  26. package/dist/guards/drift-detector.js.map +1 -0
  27. package/dist/guards/encoding-detector.d.ts +76 -0
  28. package/dist/guards/encoding-detector.d.ts.map +1 -0
  29. package/dist/guards/encoding-detector.js +698 -0
  30. package/dist/guards/encoding-detector.js.map +1 -0
  31. package/dist/guards/execution-monitor.d.ts +73 -0
  32. package/dist/guards/execution-monitor.d.ts.map +1 -0
  33. package/dist/guards/execution-monitor.js +205 -0
  34. package/dist/guards/execution-monitor.js.map +1 -0
  35. package/dist/guards/input-sanitizer.d.ts +87 -0
  36. package/dist/guards/input-sanitizer.d.ts.map +1 -0
  37. package/dist/guards/input-sanitizer.js +301 -0
  38. package/dist/guards/input-sanitizer.js.map +1 -0
  39. package/dist/guards/mcp-security-guard.d.ts +204 -0
  40. package/dist/guards/mcp-security-guard.d.ts.map +1 -0
  41. package/dist/guards/mcp-security-guard.js +618 -0
  42. package/dist/guards/mcp-security-guard.js.map +1 -0
  43. package/dist/guards/memory-guard.d.ts +124 -0
  44. package/dist/guards/memory-guard.d.ts.map +1 -0
  45. package/dist/guards/memory-guard.js +476 -0
  46. package/dist/guards/memory-guard.js.map +1 -0
  47. package/dist/guards/multimodal-guard.d.ts +93 -0
  48. package/dist/guards/multimodal-guard.d.ts.map +1 -0
  49. package/dist/guards/multimodal-guard.js +507 -0
  50. package/dist/guards/multimodal-guard.js.map +1 -0
  51. package/dist/guards/output-filter.d.ts +76 -0
  52. package/dist/guards/output-filter.d.ts.map +1 -0
  53. package/dist/guards/output-filter.js +289 -0
  54. package/dist/guards/output-filter.js.map +1 -0
  55. package/dist/guards/policy-gate.d.ts +57 -0
  56. package/dist/guards/policy-gate.d.ts.map +1 -0
  57. package/dist/guards/policy-gate.js +182 -0
  58. package/dist/guards/policy-gate.js.map +1 -0
  59. package/dist/guards/prompt-leakage-guard.d.ts +110 -0
  60. package/dist/guards/prompt-leakage-guard.d.ts.map +1 -0
  61. package/dist/guards/prompt-leakage-guard.js +529 -0
  62. package/dist/guards/prompt-leakage-guard.js.map +1 -0
  63. package/dist/guards/rag-guard.d.ts +188 -0
  64. package/dist/guards/rag-guard.d.ts.map +1 -0
  65. package/dist/guards/rag-guard.js +769 -0
  66. package/dist/guards/rag-guard.js.map +1 -0
  67. package/dist/guards/schema-validator.d.ts +35 -0
  68. package/dist/guards/schema-validator.d.ts.map +1 -0
  69. package/dist/guards/schema-validator.js +316 -0
  70. package/dist/guards/schema-validator.js.map +1 -0
  71. package/dist/guards/state-persistence-guard.d.ts +153 -0
  72. package/dist/guards/state-persistence-guard.d.ts.map +1 -0
  73. package/dist/guards/state-persistence-guard.js +484 -0
  74. package/dist/guards/state-persistence-guard.js.map +1 -0
  75. package/dist/guards/tenant-boundary.d.ts +67 -0
  76. package/dist/guards/tenant-boundary.d.ts.map +1 -0
  77. package/dist/guards/tenant-boundary.js +187 -0
  78. package/dist/guards/tenant-boundary.js.map +1 -0
  79. package/dist/guards/tool-chain-validator.d.ts +102 -0
  80. package/dist/guards/tool-chain-validator.d.ts.map +1 -0
  81. package/dist/guards/tool-chain-validator.js +480 -0
  82. package/dist/guards/tool-chain-validator.js.map +1 -0
  83. package/dist/guards/tool-registry.d.ts +45 -0
  84. package/dist/guards/tool-registry.d.ts.map +1 -0
  85. package/dist/guards/tool-registry.js +155 -0
  86. package/dist/guards/tool-registry.js.map +1 -0
  87. package/dist/guards/trust-exploitation-guard.d.ts +134 -0
  88. package/dist/guards/trust-exploitation-guard.d.ts.map +1 -0
  89. package/dist/guards/trust-exploitation-guard.js +354 -0
  90. package/dist/guards/trust-exploitation-guard.js.map +1 -0
  91. package/dist/index.d.ts +133 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +430 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/integrations/express.d.ts +119 -0
  96. package/dist/integrations/express.d.ts.map +1 -0
  97. package/dist/integrations/express.js +244 -0
  98. package/dist/integrations/express.js.map +1 -0
  99. package/dist/integrations/index.d.ts +9 -0
  100. package/dist/integrations/index.d.ts.map +1 -0
  101. package/dist/integrations/index.js +26 -0
  102. package/dist/integrations/index.js.map +1 -0
  103. package/dist/integrations/langchain.d.ts +165 -0
  104. package/dist/integrations/langchain.d.ts.map +1 -0
  105. package/dist/integrations/langchain.js +308 -0
  106. package/dist/integrations/langchain.js.map +1 -0
  107. package/dist/integrations/openai.d.ts +205 -0
  108. package/dist/integrations/openai.d.ts.map +1 -0
  109. package/dist/integrations/openai.js +380 -0
  110. package/dist/integrations/openai.js.map +1 -0
  111. package/dist/types/index.d.ts +245 -0
  112. package/dist/types/index.d.ts.map +1 -0
  113. package/dist/types/index.js +6 -0
  114. package/dist/types/index.js.map +1 -0
  115. 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,6 @@
1
+ "use strict";
2
+ /**
3
+ * Core types for llm-trust-guard
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;GAEG"}