@lockllm/sdk 1.0.1 → 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 +223 -5
- package/README.md +272 -40
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/errors.d.ts +56 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +132 -2
- package/dist/errors.js.map +1 -1
- package/dist/errors.mjs +127 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3 -2
- package/dist/scan.d.ts +20 -5
- package/dist/scan.d.ts.map +1 -1
- package/dist/scan.js +59 -5
- package/dist/scan.js.map +1 -1
- package/dist/scan.mjs +59 -5
- package/dist/types/common.d.ts +116 -0
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/errors.d.ts +39 -0
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/scan.d.ts +118 -3
- package/dist/types/scan.d.ts.map +1 -1
- package/dist/utils/proxy-headers.d.ts +24 -0
- package/dist/utils/proxy-headers.d.ts.map +1 -0
- package/dist/utils/proxy-headers.js +234 -0
- package/dist/utils/proxy-headers.js.map +1 -0
- package/dist/utils/proxy-headers.mjs +229 -0
- package/dist/utils.d.ts +24 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +28 -0
- package/dist/utils.js.map +1 -1
- package/dist/utils.mjs +27 -0
- package/dist/wrappers/anthropic-wrapper.d.ts +10 -1
- package/dist/wrappers/anthropic-wrapper.d.ts.map +1 -1
- package/dist/wrappers/anthropic-wrapper.js +17 -2
- package/dist/wrappers/anthropic-wrapper.js.map +1 -1
- package/dist/wrappers/anthropic-wrapper.mjs +17 -2
- package/dist/wrappers/generic-wrapper.d.ts +5 -0
- package/dist/wrappers/generic-wrapper.d.ts.map +1 -1
- package/dist/wrappers/generic-wrapper.js +12 -1
- package/dist/wrappers/generic-wrapper.js.map +1 -1
- package/dist/wrappers/generic-wrapper.mjs +12 -1
- package/dist/wrappers/openai-wrapper.d.ts +10 -1
- package/dist/wrappers/openai-wrapper.d.ts.map +1 -1
- package/dist/wrappers/openai-wrapper.js +17 -2
- package/dist/wrappers/openai-wrapper.js.map +1 -1
- package/dist/wrappers/openai-wrapper.mjs +17 -2
- package/package.json +2 -2
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Proxy headers utility functions
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.buildLockLLMHeaders = buildLockLLMHeaders;
|
|
7
|
+
exports.parseProxyMetadata = parseProxyMetadata;
|
|
8
|
+
exports.decodeDetailField = decodeDetailField;
|
|
9
|
+
/**
|
|
10
|
+
* Build LockLLM headers from proxy request options
|
|
11
|
+
*
|
|
12
|
+
* Default behavior (when no headers are provided):
|
|
13
|
+
* - Scan Mode: combined (check both core security and custom policies)
|
|
14
|
+
* - Scan Action: allow_with_warning (detect threats but don't block)
|
|
15
|
+
* - Policy Action: allow_with_warning (detect violations but don't block)
|
|
16
|
+
* - Abuse Action: null (abuse detection disabled, opt-in only)
|
|
17
|
+
* - Route Action: disabled (no intelligent routing)
|
|
18
|
+
*/
|
|
19
|
+
function buildLockLLMHeaders(options) {
|
|
20
|
+
const headers = {};
|
|
21
|
+
// Scan mode header (controls which security checks are performed)
|
|
22
|
+
if (options?.scanMode) {
|
|
23
|
+
headers['x-lockllm-scan-mode'] = options.scanMode;
|
|
24
|
+
}
|
|
25
|
+
// Scan action header (controls blocking behavior for core injection)
|
|
26
|
+
if (options?.scanAction) {
|
|
27
|
+
headers['x-lockllm-scan-action'] = options.scanAction;
|
|
28
|
+
}
|
|
29
|
+
// Policy action header (controls blocking behavior for policy violations)
|
|
30
|
+
if (options?.policyAction) {
|
|
31
|
+
headers['x-lockllm-policy-action'] = options.policyAction;
|
|
32
|
+
}
|
|
33
|
+
// Abuse action header (opt-in, null means disabled)
|
|
34
|
+
if (options?.abuseAction !== undefined && options?.abuseAction !== null) {
|
|
35
|
+
headers['x-lockllm-abuse-action'] = options.abuseAction;
|
|
36
|
+
}
|
|
37
|
+
// Route action header (controls intelligent routing)
|
|
38
|
+
if (options?.routeAction) {
|
|
39
|
+
headers['x-lockllm-route-action'] = options.routeAction;
|
|
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
|
+
}
|
|
49
|
+
// Response caching control
|
|
50
|
+
if (options?.cacheResponse === false) {
|
|
51
|
+
headers['x-lockllm-cache-response'] = 'false';
|
|
52
|
+
}
|
|
53
|
+
// Cache TTL in seconds
|
|
54
|
+
if (options?.cacheTTL !== undefined) {
|
|
55
|
+
headers['x-lockllm-cache-ttl'] = String(options.cacheTTL);
|
|
56
|
+
}
|
|
57
|
+
return headers;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Parse proxy metadata from response headers
|
|
61
|
+
*/
|
|
62
|
+
function parseProxyMetadata(headers) {
|
|
63
|
+
const getHeader = (name) => {
|
|
64
|
+
if (headers instanceof Headers) {
|
|
65
|
+
return headers.get(name);
|
|
66
|
+
}
|
|
67
|
+
return headers[name] || headers[name.toLowerCase()] || null;
|
|
68
|
+
};
|
|
69
|
+
const metadata = {
|
|
70
|
+
request_id: getHeader('x-request-id') || '',
|
|
71
|
+
scanned: getHeader('x-lockllm-scanned') === 'true',
|
|
72
|
+
safe: getHeader('x-lockllm-safe') === 'true',
|
|
73
|
+
scan_mode: getHeader('x-scan-mode') || 'combined',
|
|
74
|
+
credits_mode: getHeader('x-lockllm-credits-mode') || 'byok',
|
|
75
|
+
provider: getHeader('x-lockllm-provider') || '',
|
|
76
|
+
model: getHeader('x-lockllm-model') || undefined,
|
|
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
|
+
}
|
|
93
|
+
// Parse scan warning
|
|
94
|
+
const scanWarning = getHeader('x-lockllm-scan-warning');
|
|
95
|
+
if (scanWarning === 'true') {
|
|
96
|
+
const injectionScore = getHeader('x-lockllm-injection-score');
|
|
97
|
+
const confidence = getHeader('x-lockllm-confidence');
|
|
98
|
+
const detail = getHeader('x-lockllm-scan-detail');
|
|
99
|
+
metadata.scan_warning = {
|
|
100
|
+
injection_score: injectionScore ? parseFloat(injectionScore) : 0,
|
|
101
|
+
confidence: confidence ? parseFloat(confidence) : 0,
|
|
102
|
+
detail: detail || '',
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
// Parse policy warnings
|
|
106
|
+
const policyWarnings = getHeader('x-lockllm-policy-warnings');
|
|
107
|
+
if (policyWarnings === 'true') {
|
|
108
|
+
const count = getHeader('x-lockllm-warning-count');
|
|
109
|
+
const confidence = getHeader('x-lockllm-policy-confidence');
|
|
110
|
+
const detail = getHeader('x-lockllm-warning-detail');
|
|
111
|
+
metadata.policy_warnings = {
|
|
112
|
+
count: count ? parseInt(count, 10) : 0,
|
|
113
|
+
confidence: confidence ? parseFloat(confidence) : 0,
|
|
114
|
+
detail: detail || '',
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
// Parse abuse detection
|
|
118
|
+
const abuseDetected = getHeader('x-lockllm-abuse-detected');
|
|
119
|
+
if (abuseDetected === 'true') {
|
|
120
|
+
const confidence = getHeader('x-lockllm-abuse-confidence');
|
|
121
|
+
const types = getHeader('x-lockllm-abuse-types');
|
|
122
|
+
const detail = getHeader('x-lockllm-abuse-detail');
|
|
123
|
+
metadata.abuse_detected = {
|
|
124
|
+
confidence: confidence ? parseFloat(confidence) : 0,
|
|
125
|
+
types: types || '',
|
|
126
|
+
detail: detail || '',
|
|
127
|
+
};
|
|
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
|
+
}
|
|
142
|
+
// Parse routing metadata
|
|
143
|
+
const routeEnabled = getHeader('x-lockllm-route-enabled');
|
|
144
|
+
if (routeEnabled === 'true') {
|
|
145
|
+
const taskType = getHeader('x-lockllm-task-type');
|
|
146
|
+
const complexity = getHeader('x-lockllm-complexity');
|
|
147
|
+
const selectedModel = getHeader('x-lockllm-selected-model');
|
|
148
|
+
const routingReason = getHeader('x-lockllm-routing-reason');
|
|
149
|
+
const originalProvider = getHeader('x-lockllm-original-provider');
|
|
150
|
+
const originalModel = getHeader('x-lockllm-original-model');
|
|
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');
|
|
157
|
+
metadata.routing = {
|
|
158
|
+
enabled: true,
|
|
159
|
+
task_type: taskType || '',
|
|
160
|
+
complexity: complexity ? parseFloat(complexity) : 0,
|
|
161
|
+
selected_model: selectedModel || '',
|
|
162
|
+
routing_reason: routingReason || '',
|
|
163
|
+
original_provider: originalProvider || '',
|
|
164
|
+
original_model: originalModel || '',
|
|
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 || '',
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
// Parse credit tracking
|
|
174
|
+
const creditsReserved = getHeader('x-lockllm-credits-reserved');
|
|
175
|
+
if (creditsReserved) {
|
|
176
|
+
metadata.credits_reserved = parseFloat(creditsReserved);
|
|
177
|
+
}
|
|
178
|
+
const routingFeeReserved = getHeader('x-lockllm-routing-fee-reserved');
|
|
179
|
+
if (routingFeeReserved) {
|
|
180
|
+
metadata.routing_fee_reserved = parseFloat(routingFeeReserved);
|
|
181
|
+
}
|
|
182
|
+
// Parse cache status
|
|
183
|
+
const cacheStatus = getHeader('x-lockllm-cache-status');
|
|
184
|
+
if (cacheStatus) {
|
|
185
|
+
metadata.cache_status = cacheStatus;
|
|
186
|
+
}
|
|
187
|
+
const cacheAge = getHeader('x-lockllm-cache-age');
|
|
188
|
+
if (cacheAge) {
|
|
189
|
+
metadata.cache_age = parseInt(cacheAge, 10);
|
|
190
|
+
}
|
|
191
|
+
const tokensSaved = getHeader('x-lockllm-tokens-saved');
|
|
192
|
+
if (tokensSaved) {
|
|
193
|
+
metadata.tokens_saved = parseInt(tokensSaved, 10);
|
|
194
|
+
}
|
|
195
|
+
const costSaved = getHeader('x-lockllm-cost-saved');
|
|
196
|
+
if (costSaved) {
|
|
197
|
+
metadata.cost_saved = parseFloat(costSaved);
|
|
198
|
+
}
|
|
199
|
+
const creditsDeducted = getHeader('x-lockllm-credits-deducted');
|
|
200
|
+
if (creditsDeducted) {
|
|
201
|
+
metadata.credits_deducted = parseFloat(creditsDeducted);
|
|
202
|
+
}
|
|
203
|
+
const balanceAfter = getHeader('x-lockllm-balance-after');
|
|
204
|
+
if (balanceAfter) {
|
|
205
|
+
metadata.balance_after = parseFloat(balanceAfter);
|
|
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
|
+
}
|
|
220
|
+
return metadata;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Decode base64-encoded detail field
|
|
224
|
+
*/
|
|
225
|
+
function decodeDetailField(detail) {
|
|
226
|
+
try {
|
|
227
|
+
const decoded = atob(detail);
|
|
228
|
+
return JSON.parse(decoded);
|
|
229
|
+
}
|
|
230
|
+
catch {
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=proxy-headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proxy-headers.js","sourceRoot":"","sources":["../../src/utils/proxy-headers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Proxy headers utility functions
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Build LockLLM headers from proxy request options
|
|
6
|
+
*
|
|
7
|
+
* Default behavior (when no headers are provided):
|
|
8
|
+
* - Scan Mode: combined (check both core security and custom policies)
|
|
9
|
+
* - Scan Action: allow_with_warning (detect threats but don't block)
|
|
10
|
+
* - Policy Action: allow_with_warning (detect violations but don't block)
|
|
11
|
+
* - Abuse Action: null (abuse detection disabled, opt-in only)
|
|
12
|
+
* - Route Action: disabled (no intelligent routing)
|
|
13
|
+
*/
|
|
14
|
+
export function buildLockLLMHeaders(options) {
|
|
15
|
+
const headers = {};
|
|
16
|
+
// Scan mode header (controls which security checks are performed)
|
|
17
|
+
if (options?.scanMode) {
|
|
18
|
+
headers['x-lockllm-scan-mode'] = options.scanMode;
|
|
19
|
+
}
|
|
20
|
+
// Scan action header (controls blocking behavior for core injection)
|
|
21
|
+
if (options?.scanAction) {
|
|
22
|
+
headers['x-lockllm-scan-action'] = options.scanAction;
|
|
23
|
+
}
|
|
24
|
+
// Policy action header (controls blocking behavior for policy violations)
|
|
25
|
+
if (options?.policyAction) {
|
|
26
|
+
headers['x-lockllm-policy-action'] = options.policyAction;
|
|
27
|
+
}
|
|
28
|
+
// Abuse action header (opt-in, null means disabled)
|
|
29
|
+
if (options?.abuseAction !== undefined && options?.abuseAction !== null) {
|
|
30
|
+
headers['x-lockllm-abuse-action'] = options.abuseAction;
|
|
31
|
+
}
|
|
32
|
+
// Route action header (controls intelligent routing)
|
|
33
|
+
if (options?.routeAction) {
|
|
34
|
+
headers['x-lockllm-route-action'] = options.routeAction;
|
|
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
|
+
}
|
|
44
|
+
// Response caching control
|
|
45
|
+
if (options?.cacheResponse === false) {
|
|
46
|
+
headers['x-lockllm-cache-response'] = 'false';
|
|
47
|
+
}
|
|
48
|
+
// Cache TTL in seconds
|
|
49
|
+
if (options?.cacheTTL !== undefined) {
|
|
50
|
+
headers['x-lockllm-cache-ttl'] = String(options.cacheTTL);
|
|
51
|
+
}
|
|
52
|
+
return headers;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Parse proxy metadata from response headers
|
|
56
|
+
*/
|
|
57
|
+
export function parseProxyMetadata(headers) {
|
|
58
|
+
const getHeader = (name) => {
|
|
59
|
+
if (headers instanceof Headers) {
|
|
60
|
+
return headers.get(name);
|
|
61
|
+
}
|
|
62
|
+
return headers[name] || headers[name.toLowerCase()] || null;
|
|
63
|
+
};
|
|
64
|
+
const metadata = {
|
|
65
|
+
request_id: getHeader('x-request-id') || '',
|
|
66
|
+
scanned: getHeader('x-lockllm-scanned') === 'true',
|
|
67
|
+
safe: getHeader('x-lockllm-safe') === 'true',
|
|
68
|
+
scan_mode: getHeader('x-scan-mode') || 'combined',
|
|
69
|
+
credits_mode: getHeader('x-lockllm-credits-mode') || 'byok',
|
|
70
|
+
provider: getHeader('x-lockllm-provider') || '',
|
|
71
|
+
model: getHeader('x-lockllm-model') || undefined,
|
|
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
|
+
}
|
|
88
|
+
// Parse scan warning
|
|
89
|
+
const scanWarning = getHeader('x-lockllm-scan-warning');
|
|
90
|
+
if (scanWarning === 'true') {
|
|
91
|
+
const injectionScore = getHeader('x-lockllm-injection-score');
|
|
92
|
+
const confidence = getHeader('x-lockllm-confidence');
|
|
93
|
+
const detail = getHeader('x-lockllm-scan-detail');
|
|
94
|
+
metadata.scan_warning = {
|
|
95
|
+
injection_score: injectionScore ? parseFloat(injectionScore) : 0,
|
|
96
|
+
confidence: confidence ? parseFloat(confidence) : 0,
|
|
97
|
+
detail: detail || '',
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
// Parse policy warnings
|
|
101
|
+
const policyWarnings = getHeader('x-lockllm-policy-warnings');
|
|
102
|
+
if (policyWarnings === 'true') {
|
|
103
|
+
const count = getHeader('x-lockllm-warning-count');
|
|
104
|
+
const confidence = getHeader('x-lockllm-policy-confidence');
|
|
105
|
+
const detail = getHeader('x-lockllm-warning-detail');
|
|
106
|
+
metadata.policy_warnings = {
|
|
107
|
+
count: count ? parseInt(count, 10) : 0,
|
|
108
|
+
confidence: confidence ? parseFloat(confidence) : 0,
|
|
109
|
+
detail: detail || '',
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
// Parse abuse detection
|
|
113
|
+
const abuseDetected = getHeader('x-lockllm-abuse-detected');
|
|
114
|
+
if (abuseDetected === 'true') {
|
|
115
|
+
const confidence = getHeader('x-lockllm-abuse-confidence');
|
|
116
|
+
const types = getHeader('x-lockllm-abuse-types');
|
|
117
|
+
const detail = getHeader('x-lockllm-abuse-detail');
|
|
118
|
+
metadata.abuse_detected = {
|
|
119
|
+
confidence: confidence ? parseFloat(confidence) : 0,
|
|
120
|
+
types: types || '',
|
|
121
|
+
detail: detail || '',
|
|
122
|
+
};
|
|
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
|
+
}
|
|
137
|
+
// Parse routing metadata
|
|
138
|
+
const routeEnabled = getHeader('x-lockllm-route-enabled');
|
|
139
|
+
if (routeEnabled === 'true') {
|
|
140
|
+
const taskType = getHeader('x-lockllm-task-type');
|
|
141
|
+
const complexity = getHeader('x-lockllm-complexity');
|
|
142
|
+
const selectedModel = getHeader('x-lockllm-selected-model');
|
|
143
|
+
const routingReason = getHeader('x-lockllm-routing-reason');
|
|
144
|
+
const originalProvider = getHeader('x-lockllm-original-provider');
|
|
145
|
+
const originalModel = getHeader('x-lockllm-original-model');
|
|
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');
|
|
152
|
+
metadata.routing = {
|
|
153
|
+
enabled: true,
|
|
154
|
+
task_type: taskType || '',
|
|
155
|
+
complexity: complexity ? parseFloat(complexity) : 0,
|
|
156
|
+
selected_model: selectedModel || '',
|
|
157
|
+
routing_reason: routingReason || '',
|
|
158
|
+
original_provider: originalProvider || '',
|
|
159
|
+
original_model: originalModel || '',
|
|
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 || '',
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
// Parse credit tracking
|
|
169
|
+
const creditsReserved = getHeader('x-lockllm-credits-reserved');
|
|
170
|
+
if (creditsReserved) {
|
|
171
|
+
metadata.credits_reserved = parseFloat(creditsReserved);
|
|
172
|
+
}
|
|
173
|
+
const routingFeeReserved = getHeader('x-lockllm-routing-fee-reserved');
|
|
174
|
+
if (routingFeeReserved) {
|
|
175
|
+
metadata.routing_fee_reserved = parseFloat(routingFeeReserved);
|
|
176
|
+
}
|
|
177
|
+
// Parse cache status
|
|
178
|
+
const cacheStatus = getHeader('x-lockllm-cache-status');
|
|
179
|
+
if (cacheStatus) {
|
|
180
|
+
metadata.cache_status = cacheStatus;
|
|
181
|
+
}
|
|
182
|
+
const cacheAge = getHeader('x-lockllm-cache-age');
|
|
183
|
+
if (cacheAge) {
|
|
184
|
+
metadata.cache_age = parseInt(cacheAge, 10);
|
|
185
|
+
}
|
|
186
|
+
const tokensSaved = getHeader('x-lockllm-tokens-saved');
|
|
187
|
+
if (tokensSaved) {
|
|
188
|
+
metadata.tokens_saved = parseInt(tokensSaved, 10);
|
|
189
|
+
}
|
|
190
|
+
const costSaved = getHeader('x-lockllm-cost-saved');
|
|
191
|
+
if (costSaved) {
|
|
192
|
+
metadata.cost_saved = parseFloat(costSaved);
|
|
193
|
+
}
|
|
194
|
+
const creditsDeducted = getHeader('x-lockllm-credits-deducted');
|
|
195
|
+
if (creditsDeducted) {
|
|
196
|
+
metadata.credits_deducted = parseFloat(creditsDeducted);
|
|
197
|
+
}
|
|
198
|
+
const balanceAfter = getHeader('x-lockllm-balance-after');
|
|
199
|
+
if (balanceAfter) {
|
|
200
|
+
metadata.balance_after = parseFloat(balanceAfter);
|
|
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
|
+
}
|
|
215
|
+
return metadata;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Decode base64-encoded detail field
|
|
219
|
+
*/
|
|
220
|
+
export function decodeDetailField(detail) {
|
|
221
|
+
try {
|
|
222
|
+
const decoded = atob(detail);
|
|
223
|
+
return JSON.parse(decoded);
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
return null;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=proxy-headers.js.map
|
package/dist/utils.d.ts
CHANGED
|
@@ -16,6 +16,19 @@ import type { ProviderName } from './types/providers';
|
|
|
16
16
|
* ```
|
|
17
17
|
*/
|
|
18
18
|
export declare function getProxyURL(provider: ProviderName): string;
|
|
19
|
+
/**
|
|
20
|
+
* Get the universal proxy URL (non-BYOK mode)
|
|
21
|
+
* Access 200+ models without configuring provider keys
|
|
22
|
+
*
|
|
23
|
+
* @returns The universal proxy URL
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const url = getUniversalProxyURL();
|
|
28
|
+
* // Returns: 'https://api.lockllm.com/v1/proxy/chat/completions'
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function getUniversalProxyURL(): string;
|
|
19
32
|
/**
|
|
20
33
|
* Get all available proxy URLs
|
|
21
34
|
*
|
|
@@ -68,6 +81,17 @@ export declare class HttpClient {
|
|
|
68
81
|
data: T;
|
|
69
82
|
requestId: string;
|
|
70
83
|
}>;
|
|
84
|
+
/**
|
|
85
|
+
* Make a PUT request
|
|
86
|
+
*/
|
|
87
|
+
put<T = any>(path: string, body?: any, options?: RequestOptions): Promise<{
|
|
88
|
+
data: T;
|
|
89
|
+
requestId: string;
|
|
90
|
+
}>;
|
|
91
|
+
/**
|
|
92
|
+
* Make a DELETE request
|
|
93
|
+
*/
|
|
94
|
+
delete(path: string, options?: RequestOptions): Promise<void>;
|
|
71
95
|
/**
|
|
72
96
|
* Make an HTTP request with retry logic
|
|
73
97
|
*/
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAE1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAoB9D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAgB7E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,MAAa,GAAG,MAAM,CAElF;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;gBAGzB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,MAAc,EACvB,UAAU,GAAE,MAAU;IAQxB;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,GAAG,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAI1C;;OAEG;IACG,IAAI,CAAC,CAAC,GAAG,GAAG,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAI1C;;OAEG;YACW,OAAO;IAoFrB;;OAEG;YACW,WAAW;IAqCzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAkBzB"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAE1D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAoB9D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAgB7E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,MAAa,GAAG,MAAM,CAElF;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;gBAGzB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,MAAc,EACvB,UAAU,GAAE,MAAU;IAQxB;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,GAAG,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAI1C;;OAEG;IACG,IAAI,CAAC,CAAC,GAAG,GAAG,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAI1C;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,GAAG,EACf,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAI1C;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE;;OAEG;YACW,OAAO;IAoFrB;;OAEG;YACW,WAAW;IAqCzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAkBzB"}
|
package/dist/utils.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.HttpClient = void 0;
|
|
7
7
|
exports.getProxyURL = getProxyURL;
|
|
8
|
+
exports.getUniversalProxyURL = getUniversalProxyURL;
|
|
8
9
|
exports.getAllProxyURLs = getAllProxyURLs;
|
|
9
10
|
exports.generateRequestId = generateRequestId;
|
|
10
11
|
exports.sleep = sleep;
|
|
@@ -27,6 +28,21 @@ const LOCKLLM_PROXY_BASE = 'https://api.lockllm.com/v1/proxy';
|
|
|
27
28
|
function getProxyURL(provider) {
|
|
28
29
|
return `${LOCKLLM_PROXY_BASE}/${provider}`;
|
|
29
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Get the universal proxy URL (non-BYOK mode)
|
|
33
|
+
* Access 200+ models without configuring provider keys
|
|
34
|
+
*
|
|
35
|
+
* @returns The universal proxy URL
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* const url = getUniversalProxyURL();
|
|
40
|
+
* // Returns: 'https://api.lockllm.com/v1/proxy/chat/completions'
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
function getUniversalProxyURL() {
|
|
44
|
+
return `${LOCKLLM_PROXY_BASE}/chat/completions`;
|
|
45
|
+
}
|
|
30
46
|
/**
|
|
31
47
|
* Get all available proxy URLs
|
|
32
48
|
*
|
|
@@ -118,6 +134,18 @@ class HttpClient {
|
|
|
118
134
|
async post(path, body, options) {
|
|
119
135
|
return this.request('POST', path, body, options);
|
|
120
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Make a PUT request
|
|
139
|
+
*/
|
|
140
|
+
async put(path, body, options) {
|
|
141
|
+
return this.request('PUT', path, body, options);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Make a DELETE request
|
|
145
|
+
*/
|
|
146
|
+
async delete(path, options) {
|
|
147
|
+
await this.request('DELETE', path, undefined, options);
|
|
148
|
+
}
|
|
121
149
|
/**
|
|
122
150
|
* Make an HTTP request with retry logic
|
|
123
151
|
*/
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,UAAU,GACX,MAAM,UAAU,CAAC;AAIlB,MAAM,kBAAkB,GAAG,kCAAkC,CAAC;AAE9D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,QAAsB;IAChD,OAAO,GAAG,kBAAkB,IAAI,QAAQ,EAAE,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO;QACL,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;QAC7B,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC;QACnC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;QAC7B,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC;QAC7B,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC;QACrC,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC;QACrC,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC;QAC/B,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC;QACzB,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC;QACjC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC;QACjC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC;QACvB,SAAS,EAAE,WAAW,CAAC,WAAW,CAAC;QACnC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC;QACjC,WAAW,EAAE,WAAW,CAAC,aAAa,CAAC;QACvC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC;QAC3B,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC;QAC/B,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC;KACtC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAC5E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,UAAyB;IACvD,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAElC,iCAAiC;IACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACpB,OAAO,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,wCAAwC;IACxC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe,EAAE,YAAoB,IAAI;IACxE,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,UAAU;IAMrB,YACE,OAAe,EACf,MAAc,EACd,UAAkB,KAAK,EACvB,aAAqB,CAAC;QAEtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,wBAAwB;QACnE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CACP,IAAY,EACZ,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CACR,IAAY,EACZ,IAAU,EACV,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO,CACnB,MAAc,EACd,IAAY,EACZ,IAAU,EACV,OAAwB;QAExB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,iBAAiB,EAAE,CAAC;QACtC,IAAI,SAA4B,CAAC;QAEjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YAC5D,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CACrC,MAAM,EACN,GAAG,EACH,IAAI,EACJ,SAAS,EACT,OAAO,CACR,CAAC;gBAEF,MAAM,iBAAiB,GACrB,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC;gBAEpD,UAAU;gBACV,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBAChB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACnC,OAAO;wBACL,IAAI,EAAE,IAAS;wBACf,SAAS,EAAE,iBAAiB;qBAC7B,CAAC;gBACJ,CAAC;gBAED,kCAAkC;gBAClC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,MAAM,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;oBAExE,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;wBAC9B,MAAM,KAAK,GAAG,UAAU,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;wBACtD,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;wBACnB,SAAS;oBACX,CAAC;oBAED,MAAM,SAAS,GAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC/D,MAAM,IAAI,cAAc,CACtB,SAAS,CAAC,KAAK,EAAE,OAAO,IAAI,qBAAqB,EACjD,UAAU,EACV,iBAAiB,CAClB,CAAC;gBACJ,CAAC;gBAED,sBAAsB;gBACtB,MAAM,SAAS,GAAQ,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC/D,MAAM,UAAU,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,oEAAoE;gBACpE,IAAI,KAAK,YAAY,YAAY,IAAI,CAAC,CAAC,KAAK,YAAY,cAAc,CAAC,EAAE,CAAC;oBACxE,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,SAAS,GAAG,KAAc,CAAC;gBAE3B,0BAA0B;gBAC1B,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC9D,MAAM,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;oBACvC,SAAS;gBACX,CAAC;gBAED,kBAAkB;gBAClB,MAAM;YACR,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,IAAI,SAAS,YAAY,YAAY,EAAE,CAAC;YACtC,MAAM,SAAS,CAAC;QAClB,CAAC;QAED,MAAM,IAAI,YAAY,CACpB,SAAS,EAAE,OAAO,IAAI,wBAAwB,EAC9C,SAAS,EACT,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW,CACvB,MAAc,EACd,GAAW,EACX,IAAS,EACT,SAAiB,EACjB,OAAwB;QAExB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;QAEnD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAElE,IAAI,CAAC;YACH,MAAM,OAAO,GAA2B;gBACtC,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;gBACtC,cAAc,EAAE,SAAS;gBACzB,GAAG,OAAO,EAAE,OAAO;aACpB,CAAC;YAEF,kEAAkE;YAClE,6DAA6D;YAC7D,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC;YAEpD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM;gBACN,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC7C,MAAM;aACP,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC;QAClB,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,KAAU;QACjC,0BAA0B;QAC1B,IAAI,KAAK,YAAY,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,mBAAmB;QACnB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,2CAA2C;QAC3C,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.mjs
CHANGED
|
@@ -18,6 +18,21 @@ const LOCKLLM_PROXY_BASE = 'https://api.lockllm.com/v1/proxy';
|
|
|
18
18
|
export function getProxyURL(provider) {
|
|
19
19
|
return `${LOCKLLM_PROXY_BASE}/${provider}`;
|
|
20
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Get the universal proxy URL (non-BYOK mode)
|
|
23
|
+
* Access 200+ models without configuring provider keys
|
|
24
|
+
*
|
|
25
|
+
* @returns The universal proxy URL
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const url = getUniversalProxyURL();
|
|
30
|
+
* // Returns: 'https://api.lockllm.com/v1/proxy/chat/completions'
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export function getUniversalProxyURL() {
|
|
34
|
+
return `${LOCKLLM_PROXY_BASE}/chat/completions`;
|
|
35
|
+
}
|
|
21
36
|
/**
|
|
22
37
|
* Get all available proxy URLs
|
|
23
38
|
*
|
|
@@ -109,6 +124,18 @@ export class HttpClient {
|
|
|
109
124
|
async post(path, body, options) {
|
|
110
125
|
return this.request('POST', path, body, options);
|
|
111
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Make a PUT request
|
|
129
|
+
*/
|
|
130
|
+
async put(path, body, options) {
|
|
131
|
+
return this.request('PUT', path, body, options);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Make a DELETE request
|
|
135
|
+
*/
|
|
136
|
+
async delete(path, options) {
|
|
137
|
+
await this.request('DELETE', path, undefined, options);
|
|
138
|
+
}
|
|
112
139
|
/**
|
|
113
140
|
* Make an HTTP request with retry logic
|
|
114
141
|
*/
|