@lockllm/sdk 1.0.0 → 1.1.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 +146 -5
- package/README.md +238 -39
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/errors.d.ts +46 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +104 -2
- package/dist/errors.js.map +1 -1
- package/dist/errors.mjs +100 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -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 +55 -5
- package/dist/scan.js.map +1 -1
- package/dist/scan.mjs +55 -5
- package/dist/types/common.d.ts +85 -0
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/errors.d.ts +33 -0
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/scan.d.ts +102 -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 +175 -0
- package/dist/utils/proxy-headers.js.map +1 -0
- package/dist/utils/proxy-headers.mjs +170 -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 -18
|
@@ -0,0 +1,170 @@
|
|
|
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
|
+
// Response caching control
|
|
37
|
+
if (options?.cacheResponse === false) {
|
|
38
|
+
headers['x-lockllm-cache-response'] = 'false';
|
|
39
|
+
}
|
|
40
|
+
// Cache TTL in seconds
|
|
41
|
+
if (options?.cacheTTL !== undefined) {
|
|
42
|
+
headers['x-lockllm-cache-ttl'] = String(options.cacheTTL);
|
|
43
|
+
}
|
|
44
|
+
return headers;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Parse proxy metadata from response headers
|
|
48
|
+
*/
|
|
49
|
+
export function parseProxyMetadata(headers) {
|
|
50
|
+
const getHeader = (name) => {
|
|
51
|
+
if (headers instanceof Headers) {
|
|
52
|
+
return headers.get(name);
|
|
53
|
+
}
|
|
54
|
+
return headers[name] || headers[name.toLowerCase()] || null;
|
|
55
|
+
};
|
|
56
|
+
const metadata = {
|
|
57
|
+
request_id: getHeader('x-request-id') || '',
|
|
58
|
+
scanned: getHeader('x-lockllm-scanned') === 'true',
|
|
59
|
+
safe: getHeader('x-lockllm-safe') === 'true',
|
|
60
|
+
scan_mode: getHeader('x-scan-mode') || 'combined',
|
|
61
|
+
credits_mode: getHeader('x-lockllm-credits-mode') || 'byok',
|
|
62
|
+
provider: getHeader('x-lockllm-provider') || '',
|
|
63
|
+
model: getHeader('x-lockllm-model') || undefined,
|
|
64
|
+
};
|
|
65
|
+
// Parse scan warning
|
|
66
|
+
const scanWarning = getHeader('x-lockllm-scan-warning');
|
|
67
|
+
if (scanWarning === 'true') {
|
|
68
|
+
const injectionScore = getHeader('x-lockllm-injection-score');
|
|
69
|
+
const confidence = getHeader('x-lockllm-confidence');
|
|
70
|
+
const detail = getHeader('x-lockllm-scan-detail');
|
|
71
|
+
metadata.scan_warning = {
|
|
72
|
+
injection_score: injectionScore ? parseFloat(injectionScore) : 0,
|
|
73
|
+
confidence: confidence ? parseFloat(confidence) : 0,
|
|
74
|
+
detail: detail || '',
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
// Parse policy warnings
|
|
78
|
+
const policyWarnings = getHeader('x-lockllm-policy-warnings');
|
|
79
|
+
if (policyWarnings === 'true') {
|
|
80
|
+
const count = getHeader('x-lockllm-warning-count');
|
|
81
|
+
const confidence = getHeader('x-lockllm-policy-confidence');
|
|
82
|
+
const detail = getHeader('x-lockllm-warning-detail');
|
|
83
|
+
metadata.policy_warnings = {
|
|
84
|
+
count: count ? parseInt(count, 10) : 0,
|
|
85
|
+
confidence: confidence ? parseFloat(confidence) : 0,
|
|
86
|
+
detail: detail || '',
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
// Parse abuse detection
|
|
90
|
+
const abuseDetected = getHeader('x-lockllm-abuse-detected');
|
|
91
|
+
if (abuseDetected === 'true') {
|
|
92
|
+
const confidence = getHeader('x-lockllm-abuse-confidence');
|
|
93
|
+
const types = getHeader('x-lockllm-abuse-types');
|
|
94
|
+
const detail = getHeader('x-lockllm-abuse-detail');
|
|
95
|
+
metadata.abuse_detected = {
|
|
96
|
+
confidence: confidence ? parseFloat(confidence) : 0,
|
|
97
|
+
types: types || '',
|
|
98
|
+
detail: detail || '',
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
// Parse routing metadata
|
|
102
|
+
const routeEnabled = getHeader('x-lockllm-route-enabled');
|
|
103
|
+
if (routeEnabled === 'true') {
|
|
104
|
+
const taskType = getHeader('x-lockllm-task-type');
|
|
105
|
+
const complexity = getHeader('x-lockllm-complexity');
|
|
106
|
+
const selectedModel = getHeader('x-lockllm-selected-model');
|
|
107
|
+
const routingReason = getHeader('x-lockllm-routing-reason');
|
|
108
|
+
const originalProvider = getHeader('x-lockllm-original-provider');
|
|
109
|
+
const originalModel = getHeader('x-lockllm-original-model');
|
|
110
|
+
const estimatedSavings = getHeader('x-lockllm-estimated-savings');
|
|
111
|
+
metadata.routing = {
|
|
112
|
+
enabled: true,
|
|
113
|
+
task_type: taskType || '',
|
|
114
|
+
complexity: complexity ? parseFloat(complexity) : 0,
|
|
115
|
+
selected_model: selectedModel || '',
|
|
116
|
+
routing_reason: routingReason || '',
|
|
117
|
+
original_provider: originalProvider || '',
|
|
118
|
+
original_model: originalModel || '',
|
|
119
|
+
estimated_savings: estimatedSavings ? parseFloat(estimatedSavings) : 0,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
// Parse credit tracking
|
|
123
|
+
const creditsReserved = getHeader('x-lockllm-credits-reserved');
|
|
124
|
+
if (creditsReserved) {
|
|
125
|
+
metadata.credits_reserved = parseFloat(creditsReserved);
|
|
126
|
+
}
|
|
127
|
+
const routingFeeReserved = getHeader('x-lockllm-routing-fee-reserved');
|
|
128
|
+
if (routingFeeReserved) {
|
|
129
|
+
metadata.routing_fee_reserved = parseFloat(routingFeeReserved);
|
|
130
|
+
}
|
|
131
|
+
// Parse cache status
|
|
132
|
+
const cacheStatus = getHeader('x-lockllm-cache-status');
|
|
133
|
+
if (cacheStatus) {
|
|
134
|
+
metadata.cache_status = cacheStatus;
|
|
135
|
+
}
|
|
136
|
+
const cacheAge = getHeader('x-lockllm-cache-age');
|
|
137
|
+
if (cacheAge) {
|
|
138
|
+
metadata.cache_age = parseInt(cacheAge, 10);
|
|
139
|
+
}
|
|
140
|
+
const tokensSaved = getHeader('x-lockllm-tokens-saved');
|
|
141
|
+
if (tokensSaved) {
|
|
142
|
+
metadata.tokens_saved = parseInt(tokensSaved, 10);
|
|
143
|
+
}
|
|
144
|
+
const costSaved = getHeader('x-lockllm-cost-saved');
|
|
145
|
+
if (costSaved) {
|
|
146
|
+
metadata.cost_saved = parseFloat(costSaved);
|
|
147
|
+
}
|
|
148
|
+
const creditsDeducted = getHeader('x-lockllm-credits-deducted');
|
|
149
|
+
if (creditsDeducted) {
|
|
150
|
+
metadata.credits_deducted = parseFloat(creditsDeducted);
|
|
151
|
+
}
|
|
152
|
+
const balanceAfter = getHeader('x-lockllm-balance-after');
|
|
153
|
+
if (balanceAfter) {
|
|
154
|
+
metadata.balance_after = parseFloat(balanceAfter);
|
|
155
|
+
}
|
|
156
|
+
return metadata;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Decode base64-encoded detail field
|
|
160
|
+
*/
|
|
161
|
+
export function decodeDetailField(detail) {
|
|
162
|
+
try {
|
|
163
|
+
const decoded = atob(detail);
|
|
164
|
+
return JSON.parse(decoded);
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
//# 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":"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"}
|
|
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,oBAAoB;IAClC,OAAO,GAAG,kBAAkB,mBAAmB,CAAC;AAClD,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;IACH,KAAK,CAAC,GAAG,CACP,IAAY,EACZ,IAAU,EACV,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAwB;QACjD,MAAM,IAAI,CAAC,OAAO,CAAO,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/D,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"}
|
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
|
*/
|
|
@@ -13,7 +13,11 @@
|
|
|
13
13
|
* // With this:
|
|
14
14
|
* import { createAnthropic } from '@lockllm/sdk/wrappers';
|
|
15
15
|
* const anthropic = createAnthropic({
|
|
16
|
-
* apiKey: process.env.LOCKLLM_API_KEY
|
|
16
|
+
* apiKey: process.env.LOCKLLM_API_KEY,
|
|
17
|
+
* proxyOptions: {
|
|
18
|
+
* scanMode: 'combined',
|
|
19
|
+
* scanAction: 'block'
|
|
20
|
+
* }
|
|
17
21
|
* });
|
|
18
22
|
*
|
|
19
23
|
* // Everything else stays the same!
|
|
@@ -24,6 +28,7 @@
|
|
|
24
28
|
* });
|
|
25
29
|
* ```
|
|
26
30
|
*/
|
|
31
|
+
import type { ProxyRequestOptions } from '../types/common';
|
|
27
32
|
export interface CreateAnthropicConfig {
|
|
28
33
|
/**
|
|
29
34
|
* Your LockLLM API key
|
|
@@ -35,6 +40,10 @@ export interface CreateAnthropicConfig {
|
|
|
35
40
|
* Override this only if you're using a custom LockLLM endpoint
|
|
36
41
|
*/
|
|
37
42
|
baseURL?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Proxy request options for scan, policy, abuse, and routing control
|
|
45
|
+
*/
|
|
46
|
+
proxyOptions?: ProxyRequestOptions;
|
|
38
47
|
/**
|
|
39
48
|
* Other Anthropic client options
|
|
40
49
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-wrapper.d.ts","sourceRoot":"","sources":["../../src/wrappers/anthropic-wrapper.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"anthropic-wrapper.d.ts","sourceRoot":"","sources":["../../src/wrappers/anthropic-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAEnC;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,iBAAU,GAAG,GAAG,CAShE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,GAAG,CAwBlE"}
|
|
@@ -14,7 +14,11 @@
|
|
|
14
14
|
* // With this:
|
|
15
15
|
* import { createAnthropic } from '@lockllm/sdk/wrappers';
|
|
16
16
|
* const anthropic = createAnthropic({
|
|
17
|
-
* apiKey: process.env.LOCKLLM_API_KEY
|
|
17
|
+
* apiKey: process.env.LOCKLLM_API_KEY,
|
|
18
|
+
* proxyOptions: {
|
|
19
|
+
* scanMode: 'combined',
|
|
20
|
+
* scanAction: 'block'
|
|
21
|
+
* }
|
|
18
22
|
* });
|
|
19
23
|
*
|
|
20
24
|
* // Everything else stays the same!
|
|
@@ -28,6 +32,7 @@
|
|
|
28
32
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
33
|
exports.getAnthropicConstructor = getAnthropicConstructor;
|
|
30
34
|
exports.createAnthropic = createAnthropic;
|
|
35
|
+
const proxy_headers_1 = require("../utils/proxy-headers");
|
|
31
36
|
/**
|
|
32
37
|
* Create an Anthropic client that routes through LockLLM proxy
|
|
33
38
|
*
|
|
@@ -67,11 +72,21 @@ function getAnthropicConstructor(requireFn = require) {
|
|
|
67
72
|
function createAnthropic(config) {
|
|
68
73
|
// Get Anthropic SDK constructor
|
|
69
74
|
const AnthropicConstructor = getAnthropicConstructor();
|
|
70
|
-
const { apiKey, baseURL, ...otherOptions } = config;
|
|
75
|
+
const { apiKey, baseURL, proxyOptions, ...otherOptions } = config;
|
|
76
|
+
// Build LockLLM headers from proxy options
|
|
77
|
+
const lockllmHeaders = (0, proxy_headers_1.buildLockLLMHeaders)(proxyOptions);
|
|
78
|
+
// Merge with existing headers
|
|
79
|
+
const defaultHeaders = otherOptions.defaultHeaders || {};
|
|
80
|
+
const mergedHeaders = {
|
|
81
|
+
...defaultHeaders,
|
|
82
|
+
...lockllmHeaders,
|
|
83
|
+
...(proxyOptions?.headers || {}),
|
|
84
|
+
};
|
|
71
85
|
// Create Anthropic client with LockLLM proxy
|
|
72
86
|
return new AnthropicConstructor({
|
|
73
87
|
apiKey,
|
|
74
88
|
baseURL: baseURL || 'https://api.lockllm.com/v1/proxy/anthropic',
|
|
89
|
+
defaultHeaders: mergedHeaders,
|
|
75
90
|
...otherOptions,
|
|
76
91
|
});
|
|
77
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-wrapper.js","sourceRoot":"","sources":["../../src/wrappers/anthropic-wrapper.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"anthropic-wrapper.js","sourceRoot":"","sources":["../../src/wrappers/anthropic-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AA0B7D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,SAAS,GAAG,OAAO;IACzD,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,SAAS,CAAC,mBAAmB,CAAC,CAAC;QACvD,OAAO,eAAe,CAAC,OAAO,IAAI,eAAe,CAAC,SAAS,IAAI,eAAe,CAAC;IACjF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAA6B;IAC3D,gCAAgC;IAChC,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAC;IAEvD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC;IAElE,2CAA2C;IAC3C,MAAM,cAAc,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAEzD,8BAA8B;IAC9B,MAAM,cAAc,GAAG,YAAY,CAAC,cAAc,IAAI,EAAE,CAAC;IACzD,MAAM,aAAa,GAAG;QACpB,GAAG,cAAc;QACjB,GAAG,cAAc;QACjB,GAAG,CAAC,YAAY,EAAE,OAAO,IAAI,EAAE,CAAC;KACjC,CAAC;IAEF,6CAA6C;IAC7C,OAAO,IAAI,oBAAoB,CAAC;QAC9B,MAAM;QACN,OAAO,EAAE,OAAO,IAAI,4CAA4C;QAChE,cAAc,EAAE,aAAa;QAC7B,GAAG,YAAY;KAChB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -13,7 +13,11 @@
|
|
|
13
13
|
* // With this:
|
|
14
14
|
* import { createAnthropic } from '@lockllm/sdk/wrappers';
|
|
15
15
|
* const anthropic = createAnthropic({
|
|
16
|
-
* apiKey: process.env.LOCKLLM_API_KEY
|
|
16
|
+
* apiKey: process.env.LOCKLLM_API_KEY,
|
|
17
|
+
* proxyOptions: {
|
|
18
|
+
* scanMode: 'combined',
|
|
19
|
+
* scanAction: 'block'
|
|
20
|
+
* }
|
|
17
21
|
* });
|
|
18
22
|
*
|
|
19
23
|
* // Everything else stays the same!
|
|
@@ -24,6 +28,7 @@
|
|
|
24
28
|
* });
|
|
25
29
|
* ```
|
|
26
30
|
*/
|
|
31
|
+
import { buildLockLLMHeaders } from '../utils/proxy-headers';
|
|
27
32
|
/**
|
|
28
33
|
* Create an Anthropic client that routes through LockLLM proxy
|
|
29
34
|
*
|
|
@@ -63,11 +68,21 @@ export function getAnthropicConstructor(requireFn = require) {
|
|
|
63
68
|
export function createAnthropic(config) {
|
|
64
69
|
// Get Anthropic SDK constructor
|
|
65
70
|
const AnthropicConstructor = getAnthropicConstructor();
|
|
66
|
-
const { apiKey, baseURL, ...otherOptions } = config;
|
|
71
|
+
const { apiKey, baseURL, proxyOptions, ...otherOptions } = config;
|
|
72
|
+
// Build LockLLM headers from proxy options
|
|
73
|
+
const lockllmHeaders = buildLockLLMHeaders(proxyOptions);
|
|
74
|
+
// Merge with existing headers
|
|
75
|
+
const defaultHeaders = otherOptions.defaultHeaders || {};
|
|
76
|
+
const mergedHeaders = {
|
|
77
|
+
...defaultHeaders,
|
|
78
|
+
...lockllmHeaders,
|
|
79
|
+
...(proxyOptions?.headers || {}),
|
|
80
|
+
};
|
|
67
81
|
// Create Anthropic client with LockLLM proxy
|
|
68
82
|
return new AnthropicConstructor({
|
|
69
83
|
apiKey,
|
|
70
84
|
baseURL: baseURL || 'https://api.lockllm.com/v1/proxy/anthropic',
|
|
85
|
+
defaultHeaders: mergedHeaders,
|
|
71
86
|
...otherOptions,
|
|
72
87
|
});
|
|
73
88
|
}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
22
|
import type { ProviderName } from '../types/providers';
|
|
23
|
+
import type { ProxyRequestOptions } from '../types/common';
|
|
23
24
|
export interface GenericClientConfig {
|
|
24
25
|
/**
|
|
25
26
|
* Your LockLLM API key
|
|
@@ -31,6 +32,10 @@ export interface GenericClientConfig {
|
|
|
31
32
|
* By default, uses LockLLM proxy URL for the provider
|
|
32
33
|
*/
|
|
33
34
|
baseURL?: string;
|
|
35
|
+
/**
|
|
36
|
+
* Proxy request options for scan, policy, abuse, and routing control
|
|
37
|
+
*/
|
|
38
|
+
proxyOptions?: ProxyRequestOptions;
|
|
34
39
|
/**
|
|
35
40
|
* Other client-specific options
|
|
36
41
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic-wrapper.d.ts","sourceRoot":"","sources":["../../src/wrappers/generic-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"generic-wrapper.d.ts","sourceRoot":"","sources":["../../src/wrappers/generic-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAEnC;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,YAAY,CAAC,CAAC,GAAG,GAAG,EAClC,QAAQ,EAAE,YAAY,EACtB,iBAAiB,EAAE,KAAK,MAAM,EAAE,GAAG,KAAK,CAAC,EACzC,MAAM,EAAE,mBAAmB,GAC1B,CAAC,CAwBH;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,iBAAU,GAAG,GAAG,CASpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,mBAAmB,GAC1B,GAAG,CAGL;AAED;;GAEG;AAEH;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,mBAAmB,GAAG,GAAG,CAE3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,GAAG,CAE/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,GAAG,GAAG,CAEjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,GAAG,CAE9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,GAAG,GAAG,CAEjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,GAAG,CAE/D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,mBAAmB,GAAG,GAAG,CAE1D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,GAAG,CAEhE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,GAAG,CAE/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,mBAAmB,GAAG,GAAG,CAElE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,GAAG,CAE7D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,iBAAU,GAAG,GAAG,CAS7D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,GAAG,CAI7D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,mBAAmB,GAAG,GAAG,CAE5D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,GAAG,CAE9D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,GAAG,CAE/D"}
|
|
@@ -41,6 +41,7 @@ exports.createAzure = createAzure;
|
|
|
41
41
|
exports.createBedrock = createBedrock;
|
|
42
42
|
exports.createVertexAI = createVertexAI;
|
|
43
43
|
const utils_1 = require("../utils");
|
|
44
|
+
const proxy_headers_1 = require("../utils/proxy-headers");
|
|
44
45
|
/**
|
|
45
46
|
* Create a client for any provider using their official SDK
|
|
46
47
|
*
|
|
@@ -74,13 +75,23 @@ const utils_1 = require("../utils");
|
|
|
74
75
|
* ```
|
|
75
76
|
*/
|
|
76
77
|
function createClient(provider, ClientConstructor, config) {
|
|
77
|
-
const { apiKey, baseURL, ...otherOptions } = config;
|
|
78
|
+
const { apiKey, baseURL, proxyOptions, ...otherOptions } = config;
|
|
78
79
|
// Use provided baseURL or default to LockLLM proxy
|
|
79
80
|
const clientBaseURL = baseURL || (0, utils_1.getProxyURL)(provider);
|
|
81
|
+
// Build LockLLM headers from proxy options
|
|
82
|
+
const lockllmHeaders = (0, proxy_headers_1.buildLockLLMHeaders)(proxyOptions);
|
|
83
|
+
// Merge with existing headers
|
|
84
|
+
const defaultHeaders = otherOptions.defaultHeaders || {};
|
|
85
|
+
const mergedHeaders = {
|
|
86
|
+
...defaultHeaders,
|
|
87
|
+
...lockllmHeaders,
|
|
88
|
+
...(proxyOptions?.headers || {}),
|
|
89
|
+
};
|
|
80
90
|
// Create client with LockLLM proxy configuration
|
|
81
91
|
return new ClientConstructor({
|
|
82
92
|
apiKey,
|
|
83
93
|
baseURL: clientBaseURL,
|
|
94
|
+
defaultHeaders: mergedHeaders,
|
|
84
95
|
...otherOptions,
|
|
85
96
|
});
|
|
86
97
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic-wrapper.js","sourceRoot":"","sources":["../../src/wrappers/generic-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"generic-wrapper.js","sourceRoot":"","sources":["../../src/wrappers/generic-wrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
22
|
import { getProxyURL } from '../utils';
|
|
23
|
+
import { buildLockLLMHeaders } from '../utils/proxy-headers';
|
|
23
24
|
/**
|
|
24
25
|
* Create a client for any provider using their official SDK
|
|
25
26
|
*
|
|
@@ -53,13 +54,23 @@ import { getProxyURL } from '../utils';
|
|
|
53
54
|
* ```
|
|
54
55
|
*/
|
|
55
56
|
export function createClient(provider, ClientConstructor, config) {
|
|
56
|
-
const { apiKey, baseURL, ...otherOptions } = config;
|
|
57
|
+
const { apiKey, baseURL, proxyOptions, ...otherOptions } = config;
|
|
57
58
|
// Use provided baseURL or default to LockLLM proxy
|
|
58
59
|
const clientBaseURL = baseURL || getProxyURL(provider);
|
|
60
|
+
// Build LockLLM headers from proxy options
|
|
61
|
+
const lockllmHeaders = buildLockLLMHeaders(proxyOptions);
|
|
62
|
+
// Merge with existing headers
|
|
63
|
+
const defaultHeaders = otherOptions.defaultHeaders || {};
|
|
64
|
+
const mergedHeaders = {
|
|
65
|
+
...defaultHeaders,
|
|
66
|
+
...lockllmHeaders,
|
|
67
|
+
...(proxyOptions?.headers || {}),
|
|
68
|
+
};
|
|
59
69
|
// Create client with LockLLM proxy configuration
|
|
60
70
|
return new ClientConstructor({
|
|
61
71
|
apiKey,
|
|
62
72
|
baseURL: clientBaseURL,
|
|
73
|
+
defaultHeaders: mergedHeaders,
|
|
63
74
|
...otherOptions,
|
|
64
75
|
});
|
|
65
76
|
}
|
|
@@ -13,7 +13,11 @@
|
|
|
13
13
|
* // With this:
|
|
14
14
|
* import { createOpenAI } from '@lockllm/sdk/wrappers';
|
|
15
15
|
* const openai = createOpenAI({
|
|
16
|
-
* apiKey: process.env.LOCKLLM_API_KEY
|
|
16
|
+
* apiKey: process.env.LOCKLLM_API_KEY,
|
|
17
|
+
* proxyOptions: {
|
|
18
|
+
* scanMode: 'combined',
|
|
19
|
+
* scanAction: 'block'
|
|
20
|
+
* }
|
|
17
21
|
* });
|
|
18
22
|
*
|
|
19
23
|
* // Everything else stays the same!
|
|
@@ -23,6 +27,7 @@
|
|
|
23
27
|
* });
|
|
24
28
|
* ```
|
|
25
29
|
*/
|
|
30
|
+
import type { ProxyRequestOptions } from '../types/common';
|
|
26
31
|
export interface CreateOpenAIConfig {
|
|
27
32
|
/**
|
|
28
33
|
* Your LockLLM API key
|
|
@@ -34,6 +39,10 @@ export interface CreateOpenAIConfig {
|
|
|
34
39
|
* Override this only if you're using a custom LockLLM endpoint
|
|
35
40
|
*/
|
|
36
41
|
baseURL?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Proxy request options for scan, policy, abuse, and routing control
|
|
44
|
+
*/
|
|
45
|
+
proxyOptions?: ProxyRequestOptions;
|
|
37
46
|
/**
|
|
38
47
|
* Other OpenAI client options
|
|
39
48
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-wrapper.d.ts","sourceRoot":"","sources":["../../src/wrappers/openai-wrapper.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"openai-wrapper.d.ts","sourceRoot":"","sources":["../../src/wrappers/openai-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;IAEnC;;OAEG;IACH,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,iBAAU,GAAG,GAAG,CAS7D;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,GAAG,CAwB5D"}
|