tolvyn 1.0.1 → 1.0.3
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/README.md +63 -0
- package/dist/cjs/anthropic.d.ts +20 -0
- package/dist/cjs/anthropic.d.ts.map +1 -0
- package/dist/cjs/anthropic.js +50 -0
- package/dist/cjs/anthropic.js.map +1 -0
- package/dist/cjs/client.d.ts +21 -0
- package/dist/cjs/client.d.ts.map +1 -0
- package/dist/cjs/client.js +83 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/failopen.d.ts +7 -0
- package/dist/cjs/failopen.d.ts.map +1 -0
- package/dist/cjs/failopen.js +82 -0
- package/dist/cjs/failopen.js.map +1 -0
- package/dist/cjs/google.d.ts +23 -0
- package/dist/cjs/google.d.ts.map +1 -0
- package/dist/cjs/google.js +47 -0
- package/dist/cjs/google.js.map +1 -0
- package/dist/cjs/index.d.ts +7 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +10 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/esm/anthropic.d.ts +20 -0
- package/dist/esm/anthropic.d.ts.map +1 -0
- package/dist/esm/anthropic.js +43 -0
- package/dist/esm/anthropic.js.map +1 -0
- package/dist/esm/client.d.ts +21 -0
- package/dist/esm/client.d.ts.map +1 -0
- package/dist/esm/client.js +76 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/failopen.d.ts +7 -0
- package/dist/esm/failopen.d.ts.map +1 -0
- package/dist/esm/failopen.js +77 -0
- package/dist/esm/failopen.js.map +1 -0
- package/dist/esm/google.d.ts +23 -0
- package/dist/esm/google.d.ts.map +1 -0
- package/dist/esm/google.js +43 -0
- package/dist/esm/google.js.map +1 -0
- package/dist/esm/index.d.ts +7 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -0
- package/package.json +44 -8
- package/src/anthropic.ts +70 -0
- package/src/client.ts +115 -0
- package/src/failopen.ts +94 -0
- package/src/google.ts +70 -0
- package/src/index.ts +6 -0
- package/index.js +0 -1
package/src/google.ts
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TOLVYN Google wrapper — thin drop-in over @google/generative-ai.
|
|
3
|
+
*/
|
|
4
|
+
import {
|
|
5
|
+
GoogleGenerativeAI,
|
|
6
|
+
ModelParams,
|
|
7
|
+
RequestOptions,
|
|
8
|
+
} from '@google/generative-ai';
|
|
9
|
+
|
|
10
|
+
// The proxy base URL is prepended to Google API paths (/v1beta/models/...).
|
|
11
|
+
// The TOLVYN proxy strips /v1/proxy/google and forwards the remainder to Google.
|
|
12
|
+
const GOOGLE_DEFAULT_PROXY_URL = 'https://proxy.tolvyn.io/v1/proxy/google';
|
|
13
|
+
|
|
14
|
+
export interface TolvynGoogleOptions {
|
|
15
|
+
tolvynApiKey?: string;
|
|
16
|
+
proxyUrl?: string;
|
|
17
|
+
team?: string;
|
|
18
|
+
service?: string;
|
|
19
|
+
feature?: string;
|
|
20
|
+
agent?: string;
|
|
21
|
+
failOpen?: boolean;
|
|
22
|
+
googleApiKey?: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export class TolvynGoogle extends GoogleGenerativeAI {
|
|
26
|
+
public readonly _tolvynFailOpen: boolean;
|
|
27
|
+
public readonly _tolvynFallbackKey: string | undefined;
|
|
28
|
+
private readonly _tolvynProxyUrl: string;
|
|
29
|
+
private readonly _tolvynHeaders: Record<string, string>;
|
|
30
|
+
|
|
31
|
+
constructor(options: TolvynGoogleOptions = {}) {
|
|
32
|
+
const tolvynApiKey = options.tolvynApiKey ?? process.env['TOLVYN_API_KEY'];
|
|
33
|
+
if (!tolvynApiKey) {
|
|
34
|
+
throw new Error(
|
|
35
|
+
'tolvynApiKey required. Set TOLVYN_API_KEY env var or pass tolvynApiKey.'
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// GoogleGenerativeAI sends this value as x-goog-api-key.
|
|
40
|
+
// The TOLVYN proxy's extractBearer reads x-goog-api-key as a fallback.
|
|
41
|
+
super(tolvynApiKey);
|
|
42
|
+
|
|
43
|
+
this._tolvynProxyUrl =
|
|
44
|
+
options.proxyUrl ??
|
|
45
|
+
process.env['TOLVYN_PROXY_URL'] ??
|
|
46
|
+
GOOGLE_DEFAULT_PROXY_URL;
|
|
47
|
+
|
|
48
|
+
this._tolvynHeaders = {};
|
|
49
|
+
if (options.team) this._tolvynHeaders['X-Tolvyn-Team'] = options.team;
|
|
50
|
+
if (options.service) this._tolvynHeaders['X-Tolvyn-Service'] = options.service;
|
|
51
|
+
if (options.feature) this._tolvynHeaders['X-Tolvyn-Feature'] = options.feature;
|
|
52
|
+
if (options.agent) this._tolvynHeaders['X-Tolvyn-Agent'] = options.agent;
|
|
53
|
+
|
|
54
|
+
this._tolvynFailOpen = options.failOpen ?? true;
|
|
55
|
+
this._tolvynFallbackKey =
|
|
56
|
+
options.googleApiKey ?? process.env['GOOGLE_API_KEY'];
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
override getGenerativeModel(
|
|
60
|
+
modelParams: ModelParams,
|
|
61
|
+
requestOptions?: RequestOptions
|
|
62
|
+
) {
|
|
63
|
+
const mergedOptions: RequestOptions = {
|
|
64
|
+
baseUrl: this._tolvynProxyUrl,
|
|
65
|
+
customHeaders: this._tolvynHeaders,
|
|
66
|
+
...requestOptions,
|
|
67
|
+
};
|
|
68
|
+
return super.getGenerativeModel(modelParams, mergedOptions);
|
|
69
|
+
}
|
|
70
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { OpenAI } from './client';
|
|
2
|
+
export type { TolvynOpenAIOptions } from './client';
|
|
3
|
+
export { Anthropic } from './anthropic';
|
|
4
|
+
export type { TolvynAnthropicOptions } from './anthropic';
|
|
5
|
+
export { TolvynGoogle as Google } from './google';
|
|
6
|
+
export type { TolvynGoogleOptions } from './google';
|
package/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
console.log("TOLVYN SDK coming soon");
|