@lockllm/sdk 1.1.0 → 1.2.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/CHANGELOG.md +77 -0
- package/README.md +37 -4
- package/dist/errors.d.ts +11 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +29 -1
- package/dist/errors.js.map +1 -1
- package/dist/errors.mjs +27 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/scan.d.ts.map +1 -1
- package/dist/scan.js +4 -0
- package/dist/scan.js.map +1 -1
- package/dist/scan.mjs +4 -0
- package/dist/types/common.d.ts +31 -0
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/errors.d.ts +6 -0
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/scan.d.ts +16 -0
- package/dist/types/scan.d.ts.map +1 -1
- package/dist/utils/proxy-headers.d.ts.map +1 -1
- package/dist/utils/proxy-headers.js +59 -0
- package/dist/utils/proxy-headers.js.map +1 -1
- package/dist/utils/proxy-headers.mjs +59 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,82 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.2.0] - 2026-02-21
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
#### PII Detection and Redaction
|
|
8
|
+
Protect sensitive personal information in prompts before they reach AI providers. When enabled, LockLLM detects emails, phone numbers, SSNs, credit card numbers, and other PII entities. Choose how to handle detected PII with the `piiAction` option:
|
|
9
|
+
|
|
10
|
+
- **`block`** - Reject requests containing PII entirely. Throws a `PIIDetectedError` with entity types and count.
|
|
11
|
+
- **`strip`** - Automatically redact PII from prompts before forwarding to the AI provider. The redacted text is available via `redacted_input` in the scan response.
|
|
12
|
+
- **`allow_with_warning`** - Allow requests through but include PII metadata in the response for logging.
|
|
13
|
+
|
|
14
|
+
PII detection is opt-in and disabled by default.
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
// Block requests containing PII
|
|
18
|
+
const openai = createOpenAI({
|
|
19
|
+
apiKey: process.env.LOCKLLM_API_KEY,
|
|
20
|
+
proxyOptions: {
|
|
21
|
+
piiAction: 'strip' // Automatically redact PII before sending to AI
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
// Handle PII errors when using block mode
|
|
26
|
+
try {
|
|
27
|
+
await openai.chat.completions.create({ ... });
|
|
28
|
+
} catch (error) {
|
|
29
|
+
if (error instanceof PIIDetectedError) {
|
|
30
|
+
console.log(error.pii_details.entity_types); // ['email', 'phone_number']
|
|
31
|
+
console.log(error.pii_details.entity_count); // 3
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
#### Scan API PII Support
|
|
37
|
+
The scan endpoint now accepts a `piiAction` option alongside existing scan options:
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
const result = await lockllm.scan(
|
|
41
|
+
{ input: 'My email is test@example.com' },
|
|
42
|
+
{ piiAction: 'block', scanAction: 'block' }
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
if (result.pii_result) {
|
|
46
|
+
console.log(result.pii_result.detected); // true
|
|
47
|
+
console.log(result.pii_result.entity_types); // ['email']
|
|
48
|
+
console.log(result.pii_result.entity_count); // 1
|
|
49
|
+
console.log(result.pii_result.redacted_input); // 'My email is [EMAIL]' (strip mode only)
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
#### Enhanced Proxy Response Metadata
|
|
54
|
+
Proxy responses now include additional fields for better observability:
|
|
55
|
+
|
|
56
|
+
- **PII detection metadata** - `pii_detected` object with detection status, entity types, count, and action taken
|
|
57
|
+
- **Blocked status** - `blocked` flag when a request was rejected by security checks
|
|
58
|
+
- **Sensitivity and label** - `sensitivity` level used and numeric `label` (0 = safe, 1 = unsafe)
|
|
59
|
+
- **Decoded detail fields** - `scan_detail`, `policy_detail`, and `abuse_detail` automatically decoded from base64 response headers
|
|
60
|
+
- **Extended routing metadata** - `estimated_original_cost`, `estimated_routed_cost`, `estimated_input_tokens`, `estimated_output_tokens`, and `routing_fee_reason`
|
|
61
|
+
|
|
62
|
+
#### Sensitivity Header Support
|
|
63
|
+
You can now set the detection sensitivity level via `proxyOptions` or `buildLockLLMHeaders`:
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
const openai = createOpenAI({
|
|
67
|
+
apiKey: process.env.LOCKLLM_API_KEY,
|
|
68
|
+
proxyOptions: {
|
|
69
|
+
sensitivity: 'high' // 'low', 'medium', or 'high'
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Notes
|
|
75
|
+
- PII detection is opt-in. Existing integrations continue to work without changes.
|
|
76
|
+
- All new types (`PIIAction`, `PIIResult`, `PIIDetectedError`, `PIIDetectedErrorData`) are fully exported for TypeScript users.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
3
80
|
## [1.1.0] - 2026-02-18
|
|
4
81
|
|
|
5
82
|
### Added
|
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
**All-in-One AI Security for LLM Applications**
|
|
12
12
|
|
|
13
|
-
*Keep control of your AI. Detect prompt injection, jailbreaks, and adversarial attacks in real-time across 17+ providers with zero code changes.*
|
|
13
|
+
*Keep control of your AI. Detect prompt injection, jailbreaks, PII leakage, and adversarial attacks in real-time across 17+ providers with zero code changes.*
|
|
14
14
|
|
|
15
15
|
[Quick Start](#quick-start) · [Documentation](https://www.lockllm.com/docs) · [Examples](#examples) · [Benchmarks](https://www.lockllm.com) · [API Reference](#api-reference)
|
|
16
16
|
|
|
@@ -82,6 +82,7 @@ LockLLM provides production-ready AI security that integrates seamlessly into yo
|
|
|
82
82
|
| **Custom Content Policies** | Define your own content rules in the dashboard and enforce them automatically across all providers |
|
|
83
83
|
| **AI Abuse Detection** | Detect bot-generated content, repetition attacks, and resource exhaustion from your end-users |
|
|
84
84
|
| **Intelligent Routing** | Automatically select the optimal model for each request based on task type and complexity to save costs |
|
|
85
|
+
| **PII Detection & Redaction** | Detect and automatically redact emails, phone numbers, SSNs, credit cards, and other personal information before they reach AI providers |
|
|
85
86
|
| **Response Caching** | Cache identical LLM responses to reduce costs and latency on repeated queries |
|
|
86
87
|
| **Enterprise Privacy** | Provider keys encrypted at rest, prompts never stored |
|
|
87
88
|
| **Production Ready** | Battle-tested with automatic retries, timeouts, and error handling |
|
|
@@ -406,6 +407,7 @@ import {
|
|
|
406
407
|
PromptInjectionError,
|
|
407
408
|
PolicyViolationError,
|
|
408
409
|
AbuseDetectedError,
|
|
410
|
+
PIIDetectedError,
|
|
409
411
|
InsufficientCreditsError,
|
|
410
412
|
AuthenticationError,
|
|
411
413
|
RateLimitError,
|
|
@@ -433,6 +435,11 @@ try {
|
|
|
433
435
|
console.log("Abuse detected:", error.abuse_details.abuse_types);
|
|
434
436
|
console.log("Confidence:", error.abuse_details.confidence);
|
|
435
437
|
|
|
438
|
+
} else if (error instanceof PIIDetectedError) {
|
|
439
|
+
// Personal information detected (when piiAction is 'block')
|
|
440
|
+
console.log("PII found:", error.pii_details.entity_types);
|
|
441
|
+
console.log("Entity count:", error.pii_details.entity_count);
|
|
442
|
+
|
|
436
443
|
} else if (error instanceof InsufficientCreditsError) {
|
|
437
444
|
// Not enough credits
|
|
438
445
|
console.log("Balance:", error.current_balance);
|
|
@@ -548,7 +555,7 @@ LockLLM Security Gateway
|
|
|
548
555
|
3. **Error Response** - Detailed error returned with threat classification and confidence scores
|
|
549
556
|
4. **Logging** - Incident automatically logged in [dashboard](https://www.lockllm.com/dashboard) for review and monitoring
|
|
550
557
|
|
|
551
|
-
###
|
|
558
|
+
### Privacy & Security
|
|
552
559
|
|
|
553
560
|
LockLLM is built with privacy and security as core principles. Your data stays yours.
|
|
554
561
|
|
|
@@ -617,6 +624,7 @@ interface ScanOptions {
|
|
|
617
624
|
scanAction?: 'block' | 'allow_with_warning'; // Core injection behavior
|
|
618
625
|
policyAction?: 'block' | 'allow_with_warning'; // Custom policy behavior
|
|
619
626
|
abuseAction?: 'block' | 'allow_with_warning'; // Abuse detection (opt-in)
|
|
627
|
+
piiAction?: 'strip' | 'block' | 'allow_with_warning'; // PII detection (opt-in)
|
|
620
628
|
}
|
|
621
629
|
```
|
|
622
630
|
|
|
@@ -651,6 +659,15 @@ interface ScanResponse {
|
|
|
651
659
|
abuse_warnings?: AbuseWarning;
|
|
652
660
|
// Present when intelligent routing is enabled
|
|
653
661
|
routing?: { task_type: string; complexity: number; selected_model?: string; };
|
|
662
|
+
// Present when PII detection is enabled
|
|
663
|
+
pii_result?: PIIResult;
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
interface PIIResult {
|
|
667
|
+
detected: boolean; // Whether PII was detected
|
|
668
|
+
entity_types: string[]; // Types of PII entities found (e.g., 'email', 'phone_number')
|
|
669
|
+
entity_count: number; // Number of PII entities found
|
|
670
|
+
redacted_input?: string; // Redacted text (only present when piiAction is 'strip')
|
|
654
671
|
}
|
|
655
672
|
```
|
|
656
673
|
|
|
@@ -676,7 +693,9 @@ interface GenericClientConfig {
|
|
|
676
693
|
scanAction?: 'block' | 'allow_with_warning';
|
|
677
694
|
policyAction?: 'block' | 'allow_with_warning';
|
|
678
695
|
abuseAction?: 'block' | 'allow_with_warning' | null;
|
|
696
|
+
piiAction?: 'strip' | 'block' | 'allow_with_warning' | null;
|
|
679
697
|
routeAction?: 'disabled' | 'auto' | 'custom';
|
|
698
|
+
sensitivity?: 'low' | 'medium' | 'high';
|
|
680
699
|
cacheResponse?: boolean;
|
|
681
700
|
cacheTTL?: number;
|
|
682
701
|
};
|
|
@@ -727,9 +746,10 @@ const headers = buildLockLLMHeaders({
|
|
|
727
746
|
scanAction: 'block',
|
|
728
747
|
policyAction: 'allow_with_warning',
|
|
729
748
|
abuseAction: 'block',
|
|
749
|
+
piiAction: 'strip',
|
|
730
750
|
routeAction: 'auto'
|
|
731
751
|
});
|
|
732
|
-
// Returns: { 'x-lockllm-scan-mode': 'combined', ... }
|
|
752
|
+
// Returns: { 'x-lockllm-scan-mode': 'combined', 'x-lockllm-pii-action': 'strip', ... }
|
|
733
753
|
```
|
|
734
754
|
|
|
735
755
|
**Parse proxy response metadata:**
|
|
@@ -743,6 +763,7 @@ console.log(metadata.safe); // true/false
|
|
|
743
763
|
console.log(metadata.scan_mode); // 'combined'
|
|
744
764
|
console.log(metadata.cache_status); // 'HIT' or 'MISS'
|
|
745
765
|
console.log(metadata.routing); // { task_type, complexity, selected_model, ... }
|
|
766
|
+
console.log(metadata.pii_detected); // { detected, entity_types, entity_count, action }
|
|
746
767
|
```
|
|
747
768
|
|
|
748
769
|
## Error Types
|
|
@@ -758,6 +779,7 @@ LockLLMError (base)
|
|
|
758
779
|
├── PromptInjectionError (400)
|
|
759
780
|
├── PolicyViolationError (403)
|
|
760
781
|
├── AbuseDetectedError (400)
|
|
782
|
+
├── PIIDetectedError (403)
|
|
761
783
|
├── InsufficientCreditsError (402)
|
|
762
784
|
├── UpstreamError (502)
|
|
763
785
|
├── ConfigurationError (400)
|
|
@@ -803,6 +825,13 @@ class AbuseDetectedError extends LockLLMError {
|
|
|
803
825
|
};
|
|
804
826
|
}
|
|
805
827
|
|
|
828
|
+
class PIIDetectedError extends LockLLMError {
|
|
829
|
+
pii_details: {
|
|
830
|
+
entity_types: string[]; // PII types found (e.g., 'email', 'phone_number')
|
|
831
|
+
entity_count: number; // Number of PII entities detected
|
|
832
|
+
};
|
|
833
|
+
}
|
|
834
|
+
|
|
806
835
|
class InsufficientCreditsError extends LockLLMError {
|
|
807
836
|
current_balance: number; // Current credit balance
|
|
808
837
|
estimated_cost: number; // Estimated cost of the request
|
|
@@ -908,7 +937,8 @@ const result = await lockllm.scan(
|
|
|
908
937
|
{
|
|
909
938
|
scanAction: 'block', // Block core injection attacks
|
|
910
939
|
policyAction: 'allow_with_warning', // Allow but warn on policy violations
|
|
911
|
-
abuseAction: 'block'
|
|
940
|
+
abuseAction: 'block', // Enable abuse detection (opt-in)
|
|
941
|
+
piiAction: 'strip' // Redact PII from input (opt-in)
|
|
912
942
|
}
|
|
913
943
|
);
|
|
914
944
|
|
|
@@ -920,6 +950,7 @@ const openai = createOpenAI({
|
|
|
920
950
|
scanAction: 'block', // Block injection attacks
|
|
921
951
|
policyAction: 'block', // Block policy violations
|
|
922
952
|
abuseAction: 'allow_with_warning', // Detect abuse, don't block
|
|
953
|
+
piiAction: 'strip', // Automatically redact PII
|
|
923
954
|
routeAction: 'auto' // Enable intelligent routing
|
|
924
955
|
}
|
|
925
956
|
});
|
|
@@ -939,6 +970,7 @@ const openai = createOpenAI({
|
|
|
939
970
|
- `scanAction` - Controls core injection detection: `'block'` | `'allow_with_warning'`
|
|
940
971
|
- `policyAction` - Controls custom policy violations: `'block'` | `'allow_with_warning'`
|
|
941
972
|
- `abuseAction` - Controls abuse detection (opt-in): `'block'` | `'allow_with_warning'` | `null`
|
|
973
|
+
- `piiAction` - Controls PII detection (opt-in): `'strip'` | `'block'` | `'allow_with_warning'` | `null`
|
|
942
974
|
- `routeAction` - Controls intelligent routing: `'disabled'` | `'auto'` | `'custom'`
|
|
943
975
|
|
|
944
976
|
**Default Behavior (no headers):**
|
|
@@ -946,6 +978,7 @@ const openai = createOpenAI({
|
|
|
946
978
|
- Scan Action: `allow_with_warning` (detect but don't block)
|
|
947
979
|
- Policy Action: `allow_with_warning` (detect but don't block)
|
|
948
980
|
- Abuse Action: `null` (disabled, opt-in only)
|
|
981
|
+
- PII Action: `null` (disabled, opt-in only)
|
|
949
982
|
- Route Action: `disabled` (no routing)
|
|
950
983
|
|
|
951
984
|
See [examples/advanced-options.ts](examples/advanced-options.ts) for complete examples.
|
package/dist/errors.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Custom error classes for LockLLM SDK
|
|
3
3
|
*/
|
|
4
|
-
import type { ScanResult, LockLLMErrorData, PromptInjectionErrorData, PolicyViolationErrorData, AbuseDetectedErrorData, InsufficientCreditsErrorData } from './types/errors';
|
|
4
|
+
import type { ScanResult, LockLLMErrorData, PromptInjectionErrorData, PolicyViolationErrorData, AbuseDetectedErrorData, InsufficientCreditsErrorData, PIIDetectedErrorData } from './types/errors';
|
|
5
5
|
/**
|
|
6
6
|
* Base error class for all LockLLM errors
|
|
7
7
|
*/
|
|
@@ -83,6 +83,16 @@ export declare class AbuseDetectedError extends LockLLMError {
|
|
|
83
83
|
};
|
|
84
84
|
constructor(data: AbuseDetectedErrorData);
|
|
85
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Error thrown when PII (personal information) is detected and action is block
|
|
88
|
+
*/
|
|
89
|
+
export declare class PIIDetectedError extends LockLLMError {
|
|
90
|
+
readonly pii_details: {
|
|
91
|
+
entity_types: string[];
|
|
92
|
+
entity_count: number;
|
|
93
|
+
};
|
|
94
|
+
constructor(data: PIIDetectedErrorData);
|
|
95
|
+
}
|
|
86
96
|
/**
|
|
87
97
|
* Error thrown when user has insufficient credits
|
|
88
98
|
*/
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,4BAA4B,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Custom error classes for LockLLM SDK
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.NetworkError = exports.InsufficientCreditsError = exports.AbuseDetectedError = exports.PolicyViolationError = exports.ConfigurationError = exports.UpstreamError = exports.PromptInjectionError = exports.RateLimitError = exports.AuthenticationError = exports.LockLLMError = void 0;
|
|
6
|
+
exports.NetworkError = exports.InsufficientCreditsError = exports.PIIDetectedError = exports.AbuseDetectedError = exports.PolicyViolationError = exports.ConfigurationError = exports.UpstreamError = exports.PromptInjectionError = exports.RateLimitError = exports.AuthenticationError = exports.LockLLMError = void 0;
|
|
7
7
|
exports.parseError = parseError;
|
|
8
8
|
/**
|
|
9
9
|
* Base error class for all LockLLM errors
|
|
@@ -140,6 +140,23 @@ class AbuseDetectedError extends LockLLMError {
|
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
142
|
exports.AbuseDetectedError = AbuseDetectedError;
|
|
143
|
+
/**
|
|
144
|
+
* Error thrown when PII (personal information) is detected and action is block
|
|
145
|
+
*/
|
|
146
|
+
class PIIDetectedError extends LockLLMError {
|
|
147
|
+
constructor(data) {
|
|
148
|
+
super({
|
|
149
|
+
message: data.message,
|
|
150
|
+
type: 'lockllm_pii_error',
|
|
151
|
+
code: 'pii_detected',
|
|
152
|
+
status: 403,
|
|
153
|
+
requestId: data.requestId,
|
|
154
|
+
});
|
|
155
|
+
this.name = 'PIIDetectedError';
|
|
156
|
+
this.pii_details = data.pii_details;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
exports.PIIDetectedError = PIIDetectedError;
|
|
143
160
|
/**
|
|
144
161
|
* Error thrown when user has insufficient credits
|
|
145
162
|
*/
|
|
@@ -209,6 +226,17 @@ function parseError(response, requestId) {
|
|
|
209
226
|
violated_policies: error.violated_policies,
|
|
210
227
|
});
|
|
211
228
|
}
|
|
229
|
+
// PII detected error
|
|
230
|
+
if (error.code === 'pii_detected' && error.pii_details) {
|
|
231
|
+
return new PIIDetectedError({
|
|
232
|
+
message: error.message,
|
|
233
|
+
type: error.type,
|
|
234
|
+
code: error.code,
|
|
235
|
+
status: 403,
|
|
236
|
+
requestId: error.request_id || requestId,
|
|
237
|
+
pii_details: error.pii_details,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
212
240
|
// Abuse detected error
|
|
213
241
|
if (error.code === 'abuse_detected' && error.abuse_details) {
|
|
214
242
|
return new AbuseDetectedError({
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.mjs
CHANGED
|
@@ -128,6 +128,22 @@ export class AbuseDetectedError extends LockLLMError {
|
|
|
128
128
|
this.abuse_details = data.abuse_details;
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Error thrown when PII (personal information) is detected and action is block
|
|
133
|
+
*/
|
|
134
|
+
export class PIIDetectedError extends LockLLMError {
|
|
135
|
+
constructor(data) {
|
|
136
|
+
super({
|
|
137
|
+
message: data.message,
|
|
138
|
+
type: 'lockllm_pii_error',
|
|
139
|
+
code: 'pii_detected',
|
|
140
|
+
status: 403,
|
|
141
|
+
requestId: data.requestId,
|
|
142
|
+
});
|
|
143
|
+
this.name = 'PIIDetectedError';
|
|
144
|
+
this.pii_details = data.pii_details;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
131
147
|
/**
|
|
132
148
|
* Error thrown when user has insufficient credits
|
|
133
149
|
*/
|
|
@@ -195,6 +211,17 @@ export function parseError(response, requestId) {
|
|
|
195
211
|
violated_policies: error.violated_policies,
|
|
196
212
|
});
|
|
197
213
|
}
|
|
214
|
+
// PII detected error
|
|
215
|
+
if (error.code === 'pii_detected' && error.pii_details) {
|
|
216
|
+
return new PIIDetectedError({
|
|
217
|
+
message: error.message,
|
|
218
|
+
type: error.type,
|
|
219
|
+
code: error.code,
|
|
220
|
+
status: 403,
|
|
221
|
+
requestId: error.request_id || requestId,
|
|
222
|
+
pii_details: error.pii_details,
|
|
223
|
+
});
|
|
224
|
+
}
|
|
198
225
|
// Abuse detected error
|
|
199
226
|
if (error.code === 'abuse_detected' && error.abuse_details) {
|
|
200
227
|
return new AbuseDetectedError({
|
package/dist/index.d.ts
CHANGED
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
* @packageDocumentation
|
|
8
8
|
*/
|
|
9
9
|
export { LockLLM } from './client';
|
|
10
|
-
export { LockLLMError, AuthenticationError, RateLimitError, PromptInjectionError, PolicyViolationError, AbuseDetectedError, InsufficientCreditsError, UpstreamError, ConfigurationError, NetworkError, } from './errors';
|
|
11
|
-
export type { LockLLMConfig, RequestOptions, Provider, ScanMode, ScanAction, RouteAction, ProxyRequestOptions, ProxyResponseMetadata, } from './types/common';
|
|
12
|
-
export type { ScanRequest, ScanResponse, ScanOptions, Sensitivity, PolicyViolation, ScanWarning, AbuseWarning, } from './types/scan';
|
|
13
|
-
export type { ScanResult, LockLLMErrorData, PromptInjectionErrorData, PolicyViolationErrorData, AbuseDetectedErrorData, InsufficientCreditsErrorData, } from './types/errors';
|
|
10
|
+
export { LockLLMError, AuthenticationError, RateLimitError, PromptInjectionError, PolicyViolationError, AbuseDetectedError, PIIDetectedError, InsufficientCreditsError, UpstreamError, ConfigurationError, NetworkError, } from './errors';
|
|
11
|
+
export type { LockLLMConfig, RequestOptions, Provider, ScanMode, ScanAction, RouteAction, PIIAction, ProxyRequestOptions, ProxyResponseMetadata, } from './types/common';
|
|
12
|
+
export type { ScanRequest, ScanResponse, ScanOptions, Sensitivity, PolicyViolation, ScanWarning, AbuseWarning, PIIResult, } from './types/scan';
|
|
13
|
+
export type { ScanResult, LockLLMErrorData, PromptInjectionErrorData, PolicyViolationErrorData, AbuseDetectedErrorData, PIIDetectedErrorData, InsufficientCreditsErrorData, } from './types/errors';
|
|
14
14
|
export type { ProviderName } from './types/providers';
|
|
15
15
|
export { getProxyURL, getAllProxyURLs, getUniversalProxyURL } from './utils';
|
|
16
16
|
export { buildLockLLMHeaders, parseProxyMetadata, decodeDetailField } from './utils/proxy-headers';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,YAAY,EACV,aAAa,EACb,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnC,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,YAAY,GACb,MAAM,UAAU,CAAC;AAGlB,YAAY,EACV,aAAa,EACb,cAAc,EACd,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAExB,YAAY,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,eAAe,EACf,WAAW,EACX,YAAY,EACZ,SAAS,GACV,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAGnG,OAAO,EACL,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @packageDocumentation
|
|
9
9
|
*/
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.createVertexAI = exports.createBedrock = exports.createAzure = exports.createCohere = exports.createGemini = exports.createHuggingFace = exports.createAnyscale = exports.createFireworks = exports.createXAI = exports.createTogether = exports.createOpenRouter = exports.createMistral = exports.createPerplexity = exports.createDeepSeek = exports.createGroq = exports.createOpenAICompatible = exports.createClient = exports.createAnthropic = exports.createOpenAI = exports.decodeDetailField = exports.parseProxyMetadata = exports.buildLockLLMHeaders = exports.getUniversalProxyURL = exports.getAllProxyURLs = exports.getProxyURL = exports.NetworkError = exports.ConfigurationError = exports.UpstreamError = exports.InsufficientCreditsError = exports.AbuseDetectedError = exports.PolicyViolationError = exports.PromptInjectionError = exports.RateLimitError = exports.AuthenticationError = exports.LockLLMError = exports.LockLLM = void 0;
|
|
11
|
+
exports.createVertexAI = exports.createBedrock = exports.createAzure = exports.createCohere = exports.createGemini = exports.createHuggingFace = exports.createAnyscale = exports.createFireworks = exports.createXAI = exports.createTogether = exports.createOpenRouter = exports.createMistral = exports.createPerplexity = exports.createDeepSeek = exports.createGroq = exports.createOpenAICompatible = exports.createClient = exports.createAnthropic = exports.createOpenAI = exports.decodeDetailField = exports.parseProxyMetadata = exports.buildLockLLMHeaders = exports.getUniversalProxyURL = exports.getAllProxyURLs = exports.getProxyURL = exports.NetworkError = exports.ConfigurationError = exports.UpstreamError = exports.InsufficientCreditsError = exports.PIIDetectedError = exports.AbuseDetectedError = exports.PolicyViolationError = exports.PromptInjectionError = exports.RateLimitError = exports.AuthenticationError = exports.LockLLMError = exports.LockLLM = void 0;
|
|
12
12
|
// Main client
|
|
13
13
|
var client_1 = require("./client");
|
|
14
14
|
Object.defineProperty(exports, "LockLLM", { enumerable: true, get: function () { return client_1.LockLLM; } });
|
|
@@ -20,6 +20,7 @@ Object.defineProperty(exports, "RateLimitError", { enumerable: true, get: functi
|
|
|
20
20
|
Object.defineProperty(exports, "PromptInjectionError", { enumerable: true, get: function () { return errors_1.PromptInjectionError; } });
|
|
21
21
|
Object.defineProperty(exports, "PolicyViolationError", { enumerable: true, get: function () { return errors_1.PolicyViolationError; } });
|
|
22
22
|
Object.defineProperty(exports, "AbuseDetectedError", { enumerable: true, get: function () { return errors_1.AbuseDetectedError; } });
|
|
23
|
+
Object.defineProperty(exports, "PIIDetectedError", { enumerable: true, get: function () { return errors_1.PIIDetectedError; } });
|
|
23
24
|
Object.defineProperty(exports, "InsufficientCreditsError", { enumerable: true, get: function () { return errors_1.InsufficientCreditsError; } });
|
|
24
25
|
Object.defineProperty(exports, "UpstreamError", { enumerable: true, get: function () { return errors_1.UpstreamError; } });
|
|
25
26
|
Object.defineProperty(exports, "ConfigurationError", { enumerable: true, get: function () { return errors_1.ConfigurationError; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc;AACd,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,YAAY,GACb,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc;AACd,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,YAAY,GACb,MAAM,UAAU,CAAC;AAsClB,YAAY;AACZ,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAEnG,yCAAyC;AACzC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC"}
|
package/dist/index.mjs
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
// Main client
|
|
10
10
|
export { LockLLM } from './client';
|
|
11
11
|
// Error classes
|
|
12
|
-
export { LockLLMError, AuthenticationError, RateLimitError, PromptInjectionError, PolicyViolationError, AbuseDetectedError, InsufficientCreditsError, UpstreamError, ConfigurationError, NetworkError, } from './errors';
|
|
12
|
+
export { LockLLMError, AuthenticationError, RateLimitError, PromptInjectionError, PolicyViolationError, AbuseDetectedError, PIIDetectedError, InsufficientCreditsError, UpstreamError, ConfigurationError, NetworkError, } from './errors';
|
|
13
13
|
// Utilities
|
|
14
14
|
export { getProxyURL, getAllProxyURLs, getUniversalProxyURL } from './utils';
|
|
15
15
|
export { buildLockLLMHeaders, parseProxyMetadata, decodeDetailField } from './utils/proxy-headers';
|
package/dist/scan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3E,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACG,IAAI,CACR,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3E,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACG,IAAI,CACR,OAAO,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,YAAY,CAAC;CA2DzB"}
|
package/dist/scan.js
CHANGED
|
@@ -74,6 +74,10 @@ class ScanClient {
|
|
|
74
74
|
if (options?.abuseAction !== undefined && options?.abuseAction !== null) {
|
|
75
75
|
headers['x-lockllm-abuse-action'] = options.abuseAction;
|
|
76
76
|
}
|
|
77
|
+
// PII action: opt-in PII detection (null/undefined means disabled)
|
|
78
|
+
if (options?.piiAction !== undefined && options?.piiAction !== null) {
|
|
79
|
+
headers['x-lockllm-pii-action'] = options.piiAction;
|
|
80
|
+
}
|
|
77
81
|
// Build request body
|
|
78
82
|
const body = {
|
|
79
83
|
input: request.input,
|
package/dist/scan.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,OAAO,UAAU;IAGrB,YAAY,IAAgB;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,KAAK,CAAC,IAAI,CACR,OAAoB,EACpB,OAAqB;QAErB,kCAAkC;QAClC,MAAM,OAAO,GAA2B;YACtC,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;SAC5B,CAAC;QAEF,mBAAmB;QACnB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;QAChD,CAAC;QAED,qBAAqB;QACrB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,OAAO,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;QACzD,CAAC;QAED,eAAe;QACf,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAChE,CAAC;QAED,iCAAiC;QACjC,0DAA0D;QAC1D,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;YACxB,OAAO,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;QACxD,CAAC;QAED,2DAA2D;QAC3D,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;YAC1B,OAAO,CAAC,yBAAyB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;QAC5D,CAAC;QAED,uEAAuE;QACvE,IAAI,OAAO,EAAE,WAAW,KAAK,SAAS,IAAI,OAAO,EAAE,WAAW,KAAK,IAAI,EAAE,CAAC;YACxE,OAAO,CAAC,wBAAwB,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;QAC1D,CAAC;QAED,qBAAqB;QACrB,MAAM,IAAI,GAAwB;YAChC,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CACnC,UAAU,EACV,IAAI,EACJ;YACE,OAAO;YACP,OAAO,EAAE,OAAO,EAAE,OAAO;YACzB,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CACF,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../src/scan.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,OAAO,UAAU;IAGrB,YAAY,IAAgB;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,KAAK,CAAC,IAAI,CACR,OAAoB,EACpB,OAAqB;QAErB,kCAAkC;QAClC,MAAM,OAAO,GAA2B;YACtC,GAAG,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;SAC5B,CAAC;QAEF,mBAAmB;QACnB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;QAChD,CAAC;QAED,qBAAqB;QACrB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,OAAO,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;QACzD,CAAC;QAED,eAAe;QACf,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAChE,CAAC;QAED,iCAAiC;QACjC,0DAA0D;QAC1D,IAAI,OAAO,EAAE,UAAU,EAAE,CAAC;YACxB,OAAO,CAAC,uBAAuB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;QACxD,CAAC;QAED,2DAA2D;QAC3D,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;YAC1B,OAAO,CAAC,yBAAyB,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;QAC5D,CAAC;QAED,uEAAuE;QACvE,IAAI,OAAO,EAAE,WAAW,KAAK,SAAS,IAAI,OAAO,EAAE,WAAW,KAAK,IAAI,EAAE,CAAC;YACxE,OAAO,CAAC,wBAAwB,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;QAC1D,CAAC;QAED,mEAAmE;QACnE,IAAI,OAAO,EAAE,SAAS,KAAK,SAAS,IAAI,OAAO,EAAE,SAAS,KAAK,IAAI,EAAE,CAAC;YACpE,OAAO,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;QACtD,CAAC;QAED,qBAAqB;QACrB,MAAM,IAAI,GAAwB;YAChC,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC;QAEF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CACnC,UAAU,EACV,IAAI,EACJ;YACE,OAAO;YACP,OAAO,EAAE,OAAO,EAAE,OAAO;YACzB,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CACF,CAAC;QAEF,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
package/dist/scan.mjs
CHANGED
|
@@ -71,6 +71,10 @@ export class ScanClient {
|
|
|
71
71
|
if (options?.abuseAction !== undefined && options?.abuseAction !== null) {
|
|
72
72
|
headers['x-lockllm-abuse-action'] = options.abuseAction;
|
|
73
73
|
}
|
|
74
|
+
// PII action: opt-in PII detection (null/undefined means disabled)
|
|
75
|
+
if (options?.piiAction !== undefined && options?.piiAction !== null) {
|
|
76
|
+
headers['x-lockllm-pii-action'] = options.piiAction;
|
|
77
|
+
}
|
|
74
78
|
// Build request body
|
|
75
79
|
const body = {
|
|
76
80
|
input: request.input,
|
package/dist/types/common.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Common types used throughout the SDK
|
|
3
3
|
*/
|
|
4
|
+
import type { Sensitivity } from './scan';
|
|
4
5
|
export interface LockLLMConfig {
|
|
5
6
|
/** Your LockLLM API key */
|
|
6
7
|
apiKey: string;
|
|
@@ -34,6 +35,8 @@ export type ScanMode = 'normal' | 'policy_only' | 'combined';
|
|
|
34
35
|
export type ScanAction = 'block' | 'allow_with_warning';
|
|
35
36
|
/** Routing action for intelligent model selection */
|
|
36
37
|
export type RouteAction = 'disabled' | 'auto' | 'custom';
|
|
38
|
+
/** PII detection action (opt-in) */
|
|
39
|
+
export type PIIAction = 'strip' | 'block' | 'allow_with_warning';
|
|
37
40
|
/** Proxy request options with advanced headers */
|
|
38
41
|
export interface ProxyRequestOptions extends RequestOptions {
|
|
39
42
|
/** Scan mode (default: combined) - Check both core security and custom policies */
|
|
@@ -46,6 +49,10 @@ export interface ProxyRequestOptions extends RequestOptions {
|
|
|
46
49
|
abuseAction?: ScanAction | null;
|
|
47
50
|
/** Routing action (default: disabled) - No intelligent routing unless explicitly enabled */
|
|
48
51
|
routeAction?: RouteAction;
|
|
52
|
+
/** PII detection action (opt-in, default: null) - When null, PII detection is disabled */
|
|
53
|
+
piiAction?: PIIAction | null;
|
|
54
|
+
/** Detection sensitivity level (default: medium) - Controls injection detection threshold */
|
|
55
|
+
sensitivity?: Sensitivity;
|
|
49
56
|
/** Response caching (default: enabled). Set false to disable. */
|
|
50
57
|
cacheResponse?: boolean;
|
|
51
58
|
/** Cache TTL in seconds (default: 3600) */
|
|
@@ -67,6 +74,12 @@ export interface ProxyResponseMetadata {
|
|
|
67
74
|
provider: string;
|
|
68
75
|
/** Model used */
|
|
69
76
|
model?: string;
|
|
77
|
+
/** Detection sensitivity level used */
|
|
78
|
+
sensitivity?: string;
|
|
79
|
+
/** Safety label (0 = safe, 1 = unsafe) */
|
|
80
|
+
label?: number;
|
|
81
|
+
/** Whether the request was blocked */
|
|
82
|
+
blocked?: boolean;
|
|
70
83
|
/** Scan warning details */
|
|
71
84
|
scan_warning?: {
|
|
72
85
|
injection_score: number;
|
|
@@ -85,6 +98,13 @@ export interface ProxyResponseMetadata {
|
|
|
85
98
|
types: string;
|
|
86
99
|
detail: string;
|
|
87
100
|
};
|
|
101
|
+
/** PII detection metadata */
|
|
102
|
+
pii_detected?: {
|
|
103
|
+
detected: boolean;
|
|
104
|
+
entity_types: string;
|
|
105
|
+
entity_count: number;
|
|
106
|
+
action: string;
|
|
107
|
+
};
|
|
88
108
|
/** Routing metadata */
|
|
89
109
|
routing?: {
|
|
90
110
|
enabled: boolean;
|
|
@@ -95,6 +115,11 @@ export interface ProxyResponseMetadata {
|
|
|
95
115
|
original_provider: string;
|
|
96
116
|
original_model: string;
|
|
97
117
|
estimated_savings: number;
|
|
118
|
+
estimated_original_cost: number;
|
|
119
|
+
estimated_routed_cost: number;
|
|
120
|
+
estimated_input_tokens: number;
|
|
121
|
+
estimated_output_tokens: number;
|
|
122
|
+
routing_fee_reason: string;
|
|
98
123
|
};
|
|
99
124
|
/** Credits reserved for this request */
|
|
100
125
|
credits_reserved?: number;
|
|
@@ -112,5 +137,11 @@ export interface ProxyResponseMetadata {
|
|
|
112
137
|
tokens_saved?: number;
|
|
113
138
|
/** Cost saved from cache hit */
|
|
114
139
|
cost_saved?: number;
|
|
140
|
+
/** Decoded scan detail (from base64 header) */
|
|
141
|
+
scan_detail?: any;
|
|
142
|
+
/** Decoded policy warning detail (from base64 header) */
|
|
143
|
+
policy_detail?: any;
|
|
144
|
+
/** Decoded abuse detail (from base64 header) */
|
|
145
|
+
abuse_detail?: any;
|
|
115
146
|
}
|
|
116
147
|
//# sourceMappingURL=common.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"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"}
|
package/dist/types/errors.d.ts
CHANGED
|
@@ -52,4 +52,10 @@ export interface InsufficientCreditsErrorData extends LockLLMErrorData {
|
|
|
52
52
|
current_balance: number;
|
|
53
53
|
estimated_cost: number;
|
|
54
54
|
}
|
|
55
|
+
export interface PIIDetectedErrorData extends LockLLMErrorData {
|
|
56
|
+
pii_details: {
|
|
57
|
+
entity_types: string[];
|
|
58
|
+
entity_count: number;
|
|
59
|
+
};
|
|
60
|
+
}
|
|
55
61
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/types/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,iBAAiB,EAAE,KAAK,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,mBAAmB,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,aAAa,EAAE;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,EAAE;YACV,SAAS,EAAE,MAAM,CAAC;YAClB,gBAAgB,EAAE,MAAM,CAAC;YACzB,cAAc,EAAE,MAAM,CAAC;YACvB,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE;YACR,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;YAC1B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;YACjC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;YAC/B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;SAC/B,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,4BAA6B,SAAQ,gBAAgB;IACpE,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/types/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,wBAAyB,SAAQ,gBAAgB;IAChE,iBAAiB,EAAE,KAAK,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,mBAAmB,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC7C,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,aAAa,EAAE;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,UAAU,EAAE;YACV,SAAS,EAAE,MAAM,CAAC;YAClB,gBAAgB,EAAE,MAAM,CAAC;YACzB,cAAc,EAAE,MAAM,CAAC;YACvB,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE;YACR,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;YAC1B,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;YACjC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;YAC/B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;SAC/B,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,4BAA6B,SAAQ,gBAAgB;IACpE,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAqB,SAAQ,gBAAgB;IAC5D,WAAW,EAAE;QACX,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH"}
|
package/dist/types/scan.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Scan API types
|
|
3
3
|
*/
|
|
4
|
+
import type { PIIAction } from './common';
|
|
4
5
|
export type Sensitivity = 'low' | 'medium' | 'high';
|
|
5
6
|
/** Scan mode determines which security checks are performed */
|
|
6
7
|
export type ScanMode = 'normal' | 'policy_only' | 'combined';
|
|
@@ -16,6 +17,17 @@ export interface ScanRequest {
|
|
|
16
17
|
/** Force chunking for large inputs */
|
|
17
18
|
chunk?: boolean;
|
|
18
19
|
}
|
|
20
|
+
/** PII detection result */
|
|
21
|
+
export interface PIIResult {
|
|
22
|
+
/** Whether PII was detected */
|
|
23
|
+
detected: boolean;
|
|
24
|
+
/** Types of PII entities found (user-friendly names) */
|
|
25
|
+
entity_types: string[];
|
|
26
|
+
/** Number of PII entities found */
|
|
27
|
+
entity_count: number;
|
|
28
|
+
/** Redacted input text (only present when piiAction is "strip") */
|
|
29
|
+
redacted_input?: string;
|
|
30
|
+
}
|
|
19
31
|
/** Scan request options with action headers */
|
|
20
32
|
export interface ScanOptions {
|
|
21
33
|
/** Scan action for core injection (default: allow_with_warning) - Threats detected but not blocked */
|
|
@@ -24,6 +36,8 @@ export interface ScanOptions {
|
|
|
24
36
|
policyAction?: ScanAction;
|
|
25
37
|
/** Abuse detection action (opt-in, default: null) - When null, abuse detection is disabled */
|
|
26
38
|
abuseAction?: ScanAction | null;
|
|
39
|
+
/** PII detection action (opt-in, default: null) - When null, PII detection is disabled */
|
|
40
|
+
piiAction?: PIIAction | null;
|
|
27
41
|
/** Custom headers to include in the request */
|
|
28
42
|
headers?: Record<string, string>;
|
|
29
43
|
/** Request timeout in milliseconds */
|
|
@@ -131,5 +145,7 @@ export interface ScanResponse {
|
|
|
131
145
|
/** Estimated cost */
|
|
132
146
|
estimated_cost?: number;
|
|
133
147
|
};
|
|
148
|
+
/** PII detection result (present when PII detection is enabled) */
|
|
149
|
+
pii_result?: PIIResult;
|
|
134
150
|
}
|
|
135
151
|
//# sourceMappingURL=scan.d.ts.map
|
package/dist/types/scan.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/types/scan.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/types/scan.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-headers.d.ts","sourceRoot":"","sources":["../../src/utils/proxy-headers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAElF;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"proxy-headers.d.ts","sourceRoot":"","sources":["../../src/utils/proxy-headers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAElF;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiDzF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,qBAAqB,CA0LnG;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAOrD"}
|
|
@@ -38,6 +38,14 @@ function buildLockLLMHeaders(options) {
|
|
|
38
38
|
if (options?.routeAction) {
|
|
39
39
|
headers['x-lockllm-route-action'] = options.routeAction;
|
|
40
40
|
}
|
|
41
|
+
// PII action header (opt-in, null means disabled)
|
|
42
|
+
if (options?.piiAction !== undefined && options?.piiAction !== null) {
|
|
43
|
+
headers['x-lockllm-pii-action'] = options.piiAction;
|
|
44
|
+
}
|
|
45
|
+
// Sensitivity header (controls injection detection threshold)
|
|
46
|
+
if (options?.sensitivity) {
|
|
47
|
+
headers['x-lockllm-sensitivity'] = options.sensitivity;
|
|
48
|
+
}
|
|
41
49
|
// Response caching control
|
|
42
50
|
if (options?.cacheResponse === false) {
|
|
43
51
|
headers['x-lockllm-cache-response'] = 'false';
|
|
@@ -67,6 +75,21 @@ function parseProxyMetadata(headers) {
|
|
|
67
75
|
provider: getHeader('x-lockllm-provider') || '',
|
|
68
76
|
model: getHeader('x-lockllm-model') || undefined,
|
|
69
77
|
};
|
|
78
|
+
// Parse sensitivity
|
|
79
|
+
const sensitivity = getHeader('x-lockllm-sensitivity');
|
|
80
|
+
if (sensitivity) {
|
|
81
|
+
metadata.sensitivity = sensitivity;
|
|
82
|
+
}
|
|
83
|
+
// Parse label
|
|
84
|
+
const label = getHeader('x-lockllm-label');
|
|
85
|
+
if (label) {
|
|
86
|
+
metadata.label = parseInt(label, 10);
|
|
87
|
+
}
|
|
88
|
+
// Parse blocked status
|
|
89
|
+
const blocked = getHeader('x-lockllm-blocked');
|
|
90
|
+
if (blocked === 'true') {
|
|
91
|
+
metadata.blocked = true;
|
|
92
|
+
}
|
|
70
93
|
// Parse scan warning
|
|
71
94
|
const scanWarning = getHeader('x-lockllm-scan-warning');
|
|
72
95
|
if (scanWarning === 'true') {
|
|
@@ -103,6 +126,19 @@ function parseProxyMetadata(headers) {
|
|
|
103
126
|
detail: detail || '',
|
|
104
127
|
};
|
|
105
128
|
}
|
|
129
|
+
// Parse PII detection
|
|
130
|
+
const piiDetected = getHeader('x-lockllm-pii-detected');
|
|
131
|
+
if (piiDetected) {
|
|
132
|
+
const piiTypes = getHeader('x-lockllm-pii-types');
|
|
133
|
+
const piiCount = getHeader('x-lockllm-pii-count');
|
|
134
|
+
const piiAction = getHeader('x-lockllm-pii-action');
|
|
135
|
+
metadata.pii_detected = {
|
|
136
|
+
detected: piiDetected === 'true',
|
|
137
|
+
entity_types: piiTypes || '',
|
|
138
|
+
entity_count: piiCount ? parseInt(piiCount, 10) : 0,
|
|
139
|
+
action: piiAction || '',
|
|
140
|
+
};
|
|
141
|
+
}
|
|
106
142
|
// Parse routing metadata
|
|
107
143
|
const routeEnabled = getHeader('x-lockllm-route-enabled');
|
|
108
144
|
if (routeEnabled === 'true') {
|
|
@@ -113,6 +149,11 @@ function parseProxyMetadata(headers) {
|
|
|
113
149
|
const originalProvider = getHeader('x-lockllm-original-provider');
|
|
114
150
|
const originalModel = getHeader('x-lockllm-original-model');
|
|
115
151
|
const estimatedSavings = getHeader('x-lockllm-estimated-savings');
|
|
152
|
+
const estimatedOriginalCost = getHeader('x-lockllm-estimated-original-cost');
|
|
153
|
+
const estimatedRoutedCost = getHeader('x-lockllm-estimated-routed-cost');
|
|
154
|
+
const estimatedInputTokens = getHeader('x-lockllm-estimated-input-tokens');
|
|
155
|
+
const estimatedOutputTokens = getHeader('x-lockllm-estimated-output-tokens');
|
|
156
|
+
const routingFeeReason = getHeader('x-lockllm-routing-fee-reason');
|
|
116
157
|
metadata.routing = {
|
|
117
158
|
enabled: true,
|
|
118
159
|
task_type: taskType || '',
|
|
@@ -122,6 +163,11 @@ function parseProxyMetadata(headers) {
|
|
|
122
163
|
original_provider: originalProvider || '',
|
|
123
164
|
original_model: originalModel || '',
|
|
124
165
|
estimated_savings: estimatedSavings ? parseFloat(estimatedSavings) : 0,
|
|
166
|
+
estimated_original_cost: estimatedOriginalCost ? parseFloat(estimatedOriginalCost) : 0,
|
|
167
|
+
estimated_routed_cost: estimatedRoutedCost ? parseFloat(estimatedRoutedCost) : 0,
|
|
168
|
+
estimated_input_tokens: estimatedInputTokens ? parseInt(estimatedInputTokens, 10) : 0,
|
|
169
|
+
estimated_output_tokens: estimatedOutputTokens ? parseInt(estimatedOutputTokens, 10) : 0,
|
|
170
|
+
routing_fee_reason: routingFeeReason || '',
|
|
125
171
|
};
|
|
126
172
|
}
|
|
127
173
|
// Parse credit tracking
|
|
@@ -158,6 +204,19 @@ function parseProxyMetadata(headers) {
|
|
|
158
204
|
if (balanceAfter) {
|
|
159
205
|
metadata.balance_after = parseFloat(balanceAfter);
|
|
160
206
|
}
|
|
207
|
+
// Parse base64-encoded detail fields
|
|
208
|
+
const scanDetail = getHeader('x-lockllm-scan-detail');
|
|
209
|
+
if (scanDetail) {
|
|
210
|
+
metadata.scan_detail = decodeDetailField(scanDetail);
|
|
211
|
+
}
|
|
212
|
+
const policyDetail = getHeader('x-lockllm-warning-detail');
|
|
213
|
+
if (policyDetail) {
|
|
214
|
+
metadata.policy_detail = decodeDetailField(policyDetail);
|
|
215
|
+
}
|
|
216
|
+
const abuseDetail = getHeader('x-lockllm-abuse-detail');
|
|
217
|
+
if (abuseDetail) {
|
|
218
|
+
metadata.abuse_detail = decodeDetailField(abuseDetail);
|
|
219
|
+
}
|
|
161
220
|
return metadata;
|
|
162
221
|
}
|
|
163
222
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-headers.js","sourceRoot":"","sources":["../../src/utils/proxy-headers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"proxy-headers.js","sourceRoot":"","sources":["../../src/utils/proxy-headers.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,14 @@ export function buildLockLLMHeaders(options) {
|
|
|
33
33
|
if (options?.routeAction) {
|
|
34
34
|
headers['x-lockllm-route-action'] = options.routeAction;
|
|
35
35
|
}
|
|
36
|
+
// PII action header (opt-in, null means disabled)
|
|
37
|
+
if (options?.piiAction !== undefined && options?.piiAction !== null) {
|
|
38
|
+
headers['x-lockllm-pii-action'] = options.piiAction;
|
|
39
|
+
}
|
|
40
|
+
// Sensitivity header (controls injection detection threshold)
|
|
41
|
+
if (options?.sensitivity) {
|
|
42
|
+
headers['x-lockllm-sensitivity'] = options.sensitivity;
|
|
43
|
+
}
|
|
36
44
|
// Response caching control
|
|
37
45
|
if (options?.cacheResponse === false) {
|
|
38
46
|
headers['x-lockllm-cache-response'] = 'false';
|
|
@@ -62,6 +70,21 @@ export function parseProxyMetadata(headers) {
|
|
|
62
70
|
provider: getHeader('x-lockllm-provider') || '',
|
|
63
71
|
model: getHeader('x-lockllm-model') || undefined,
|
|
64
72
|
};
|
|
73
|
+
// Parse sensitivity
|
|
74
|
+
const sensitivity = getHeader('x-lockllm-sensitivity');
|
|
75
|
+
if (sensitivity) {
|
|
76
|
+
metadata.sensitivity = sensitivity;
|
|
77
|
+
}
|
|
78
|
+
// Parse label
|
|
79
|
+
const label = getHeader('x-lockllm-label');
|
|
80
|
+
if (label) {
|
|
81
|
+
metadata.label = parseInt(label, 10);
|
|
82
|
+
}
|
|
83
|
+
// Parse blocked status
|
|
84
|
+
const blocked = getHeader('x-lockllm-blocked');
|
|
85
|
+
if (blocked === 'true') {
|
|
86
|
+
metadata.blocked = true;
|
|
87
|
+
}
|
|
65
88
|
// Parse scan warning
|
|
66
89
|
const scanWarning = getHeader('x-lockllm-scan-warning');
|
|
67
90
|
if (scanWarning === 'true') {
|
|
@@ -98,6 +121,19 @@ export function parseProxyMetadata(headers) {
|
|
|
98
121
|
detail: detail || '',
|
|
99
122
|
};
|
|
100
123
|
}
|
|
124
|
+
// Parse PII detection
|
|
125
|
+
const piiDetected = getHeader('x-lockllm-pii-detected');
|
|
126
|
+
if (piiDetected) {
|
|
127
|
+
const piiTypes = getHeader('x-lockllm-pii-types');
|
|
128
|
+
const piiCount = getHeader('x-lockllm-pii-count');
|
|
129
|
+
const piiAction = getHeader('x-lockllm-pii-action');
|
|
130
|
+
metadata.pii_detected = {
|
|
131
|
+
detected: piiDetected === 'true',
|
|
132
|
+
entity_types: piiTypes || '',
|
|
133
|
+
entity_count: piiCount ? parseInt(piiCount, 10) : 0,
|
|
134
|
+
action: piiAction || '',
|
|
135
|
+
};
|
|
136
|
+
}
|
|
101
137
|
// Parse routing metadata
|
|
102
138
|
const routeEnabled = getHeader('x-lockllm-route-enabled');
|
|
103
139
|
if (routeEnabled === 'true') {
|
|
@@ -108,6 +144,11 @@ export function parseProxyMetadata(headers) {
|
|
|
108
144
|
const originalProvider = getHeader('x-lockllm-original-provider');
|
|
109
145
|
const originalModel = getHeader('x-lockllm-original-model');
|
|
110
146
|
const estimatedSavings = getHeader('x-lockllm-estimated-savings');
|
|
147
|
+
const estimatedOriginalCost = getHeader('x-lockllm-estimated-original-cost');
|
|
148
|
+
const estimatedRoutedCost = getHeader('x-lockllm-estimated-routed-cost');
|
|
149
|
+
const estimatedInputTokens = getHeader('x-lockllm-estimated-input-tokens');
|
|
150
|
+
const estimatedOutputTokens = getHeader('x-lockllm-estimated-output-tokens');
|
|
151
|
+
const routingFeeReason = getHeader('x-lockllm-routing-fee-reason');
|
|
111
152
|
metadata.routing = {
|
|
112
153
|
enabled: true,
|
|
113
154
|
task_type: taskType || '',
|
|
@@ -117,6 +158,11 @@ export function parseProxyMetadata(headers) {
|
|
|
117
158
|
original_provider: originalProvider || '',
|
|
118
159
|
original_model: originalModel || '',
|
|
119
160
|
estimated_savings: estimatedSavings ? parseFloat(estimatedSavings) : 0,
|
|
161
|
+
estimated_original_cost: estimatedOriginalCost ? parseFloat(estimatedOriginalCost) : 0,
|
|
162
|
+
estimated_routed_cost: estimatedRoutedCost ? parseFloat(estimatedRoutedCost) : 0,
|
|
163
|
+
estimated_input_tokens: estimatedInputTokens ? parseInt(estimatedInputTokens, 10) : 0,
|
|
164
|
+
estimated_output_tokens: estimatedOutputTokens ? parseInt(estimatedOutputTokens, 10) : 0,
|
|
165
|
+
routing_fee_reason: routingFeeReason || '',
|
|
120
166
|
};
|
|
121
167
|
}
|
|
122
168
|
// Parse credit tracking
|
|
@@ -153,6 +199,19 @@ export function parseProxyMetadata(headers) {
|
|
|
153
199
|
if (balanceAfter) {
|
|
154
200
|
metadata.balance_after = parseFloat(balanceAfter);
|
|
155
201
|
}
|
|
202
|
+
// Parse base64-encoded detail fields
|
|
203
|
+
const scanDetail = getHeader('x-lockllm-scan-detail');
|
|
204
|
+
if (scanDetail) {
|
|
205
|
+
metadata.scan_detail = decodeDetailField(scanDetail);
|
|
206
|
+
}
|
|
207
|
+
const policyDetail = getHeader('x-lockllm-warning-detail');
|
|
208
|
+
if (policyDetail) {
|
|
209
|
+
metadata.policy_detail = decodeDetailField(policyDetail);
|
|
210
|
+
}
|
|
211
|
+
const abuseDetail = getHeader('x-lockllm-abuse-detail');
|
|
212
|
+
if (abuseDetail) {
|
|
213
|
+
metadata.abuse_detail = decodeDetailField(abuseDetail);
|
|
214
|
+
}
|
|
156
215
|
return metadata;
|
|
157
216
|
}
|
|
158
217
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lockllm/sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Enterprise-grade AI security SDK providing real-time protection against prompt injection, jailbreaks, and adversarial attacks. Drop-in replacement for OpenAI, Anthropic, and 17+ providers with zero code changes. Includes REST API, proxy mode, browser extension, and webhook support. Free BYOK model with unlimited scanning.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|