@yourgpt/llm-sdk 1.5.41 → 1.5.42
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/dist/providers/openrouter/index.d.mts +117 -0
- package/dist/providers/openrouter/index.d.ts +117 -0
- package/dist/providers/openrouter/index.js +836 -0
- package/dist/providers/openrouter/index.js.map +1 -0
- package/dist/providers/openrouter/index.mjs +831 -0
- package/dist/providers/openrouter/index.mjs.map +1 -0
- package/package.json +15 -9
- package/LICENSE +0 -21
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { j as LanguageModel } from '../../base-DdxolpKP.mjs';
|
|
2
|
+
import { A as AIProvider } from '../../types-Ck25ZYma.mjs';
|
|
3
|
+
import 'zod';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* OpenRouter Provider - Modern Pattern
|
|
7
|
+
*
|
|
8
|
+
* OpenRouter provides a unified API to access 500+ AI models from 60+ providers
|
|
9
|
+
* (OpenAI, Anthropic, Google, Meta, Mistral, etc.) through a single endpoint.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { openrouter } from '@yourgpt/llm-sdk/openrouter';
|
|
14
|
+
* import { generateText } from '@yourgpt/llm-sdk';
|
|
15
|
+
*
|
|
16
|
+
* const result = await generateText({
|
|
17
|
+
* model: openrouter('anthropic/claude-3.5-sonnet'),
|
|
18
|
+
* prompt: 'Hello!',
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
interface OpenRouterProviderOptions {
|
|
24
|
+
/** API key (defaults to OPENROUTER_API_KEY env var) */
|
|
25
|
+
apiKey?: string;
|
|
26
|
+
/** Base URL for API (defaults to https://openrouter.ai/api/v1) */
|
|
27
|
+
baseURL?: string;
|
|
28
|
+
/** Your site URL for OpenRouter rankings (HTTP-Referer header) */
|
|
29
|
+
siteUrl?: string;
|
|
30
|
+
/** Your app name for OpenRouter rankings (X-Title header) */
|
|
31
|
+
appName?: string;
|
|
32
|
+
/** Provider preferences for routing */
|
|
33
|
+
providerPreferences?: {
|
|
34
|
+
/** Preferred providers (e.g., ['anthropic', 'openai']) */
|
|
35
|
+
allow?: string[];
|
|
36
|
+
/** Blocked providers */
|
|
37
|
+
deny?: string[];
|
|
38
|
+
/** Order preference: 'price' | 'latency' | 'throughput' */
|
|
39
|
+
order?: "price" | "latency" | "throughput";
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Create an OpenRouter language model
|
|
44
|
+
*
|
|
45
|
+
* OpenRouter provides access to 500+ models through a single API.
|
|
46
|
+
* Model IDs follow the format: provider/model-name
|
|
47
|
+
*
|
|
48
|
+
* @param modelId - Model ID (e.g., 'anthropic/claude-3.5-sonnet', 'openai/gpt-4o')
|
|
49
|
+
* @param options - Provider options
|
|
50
|
+
* @returns LanguageModel instance
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```ts
|
|
54
|
+
* // Basic usage
|
|
55
|
+
* const model = openrouter('anthropic/claude-3.5-sonnet');
|
|
56
|
+
*
|
|
57
|
+
* // With custom options
|
|
58
|
+
* const model = openrouter('openai/gpt-4o', {
|
|
59
|
+
* apiKey: 'sk-or-...',
|
|
60
|
+
* siteUrl: 'https://myapp.com',
|
|
61
|
+
* appName: 'My App',
|
|
62
|
+
* });
|
|
63
|
+
*
|
|
64
|
+
* // Use auto model selection
|
|
65
|
+
* const model = openrouter('openrouter/auto');
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
declare function openrouter(modelId: string, options?: OpenRouterProviderOptions): LanguageModel;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* OpenRouter Provider
|
|
72
|
+
*
|
|
73
|
+
* OpenRouter is a unified API gateway that provides access to 500+ AI models
|
|
74
|
+
* from 60+ providers (OpenAI, Anthropic, Google, Meta, Mistral, etc.)
|
|
75
|
+
* through a single endpoint.
|
|
76
|
+
*
|
|
77
|
+
* Features:
|
|
78
|
+
* - Single API key for all models
|
|
79
|
+
* - Automatic fallbacks and routing
|
|
80
|
+
* - Cost optimization
|
|
81
|
+
* - Provider preferences
|
|
82
|
+
* - OpenAI-compatible API
|
|
83
|
+
*
|
|
84
|
+
* @see https://openrouter.ai/docs
|
|
85
|
+
*/
|
|
86
|
+
|
|
87
|
+
interface OpenRouterProviderConfig {
|
|
88
|
+
/** API key (defaults to OPENROUTER_API_KEY env var) */
|
|
89
|
+
apiKey?: string;
|
|
90
|
+
/** Base URL for API */
|
|
91
|
+
baseUrl?: string;
|
|
92
|
+
/** Your site URL for OpenRouter rankings */
|
|
93
|
+
siteUrl?: string;
|
|
94
|
+
/** Your app name for OpenRouter rankings */
|
|
95
|
+
appName?: string;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Create an OpenRouter provider (callable, Vercel AI SDK style)
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* const or = createOpenRouter({ apiKey: '...' });
|
|
103
|
+
*
|
|
104
|
+
* // Callable - Vercel AI SDK style
|
|
105
|
+
* const model = or('anthropic/claude-3.5-sonnet');
|
|
106
|
+
*
|
|
107
|
+
* // Also supports method call (backward compatible)
|
|
108
|
+
* const model2 = or.languageModel('openai/gpt-4o');
|
|
109
|
+
*
|
|
110
|
+
* // Check capabilities
|
|
111
|
+
* const caps = or.getCapabilities('anthropic/claude-3.5-sonnet');
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
declare function createOpenRouter(config?: OpenRouterProviderConfig): AIProvider;
|
|
115
|
+
declare const createOpenRouterProvider: typeof createOpenRouter;
|
|
116
|
+
|
|
117
|
+
export { type OpenRouterProviderConfig, type OpenRouterProviderOptions, createOpenRouter, openrouter as createOpenRouterModel, createOpenRouterProvider, openrouter };
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { j as LanguageModel } from '../../base-DdxolpKP.js';
|
|
2
|
+
import { A as AIProvider } from '../../types-Dsz8SpdB.js';
|
|
3
|
+
import 'zod';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* OpenRouter Provider - Modern Pattern
|
|
7
|
+
*
|
|
8
|
+
* OpenRouter provides a unified API to access 500+ AI models from 60+ providers
|
|
9
|
+
* (OpenAI, Anthropic, Google, Meta, Mistral, etc.) through a single endpoint.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* import { openrouter } from '@yourgpt/llm-sdk/openrouter';
|
|
14
|
+
* import { generateText } from '@yourgpt/llm-sdk';
|
|
15
|
+
*
|
|
16
|
+
* const result = await generateText({
|
|
17
|
+
* model: openrouter('anthropic/claude-3.5-sonnet'),
|
|
18
|
+
* prompt: 'Hello!',
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
interface OpenRouterProviderOptions {
|
|
24
|
+
/** API key (defaults to OPENROUTER_API_KEY env var) */
|
|
25
|
+
apiKey?: string;
|
|
26
|
+
/** Base URL for API (defaults to https://openrouter.ai/api/v1) */
|
|
27
|
+
baseURL?: string;
|
|
28
|
+
/** Your site URL for OpenRouter rankings (HTTP-Referer header) */
|
|
29
|
+
siteUrl?: string;
|
|
30
|
+
/** Your app name for OpenRouter rankings (X-Title header) */
|
|
31
|
+
appName?: string;
|
|
32
|
+
/** Provider preferences for routing */
|
|
33
|
+
providerPreferences?: {
|
|
34
|
+
/** Preferred providers (e.g., ['anthropic', 'openai']) */
|
|
35
|
+
allow?: string[];
|
|
36
|
+
/** Blocked providers */
|
|
37
|
+
deny?: string[];
|
|
38
|
+
/** Order preference: 'price' | 'latency' | 'throughput' */
|
|
39
|
+
order?: "price" | "latency" | "throughput";
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Create an OpenRouter language model
|
|
44
|
+
*
|
|
45
|
+
* OpenRouter provides access to 500+ models through a single API.
|
|
46
|
+
* Model IDs follow the format: provider/model-name
|
|
47
|
+
*
|
|
48
|
+
* @param modelId - Model ID (e.g., 'anthropic/claude-3.5-sonnet', 'openai/gpt-4o')
|
|
49
|
+
* @param options - Provider options
|
|
50
|
+
* @returns LanguageModel instance
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```ts
|
|
54
|
+
* // Basic usage
|
|
55
|
+
* const model = openrouter('anthropic/claude-3.5-sonnet');
|
|
56
|
+
*
|
|
57
|
+
* // With custom options
|
|
58
|
+
* const model = openrouter('openai/gpt-4o', {
|
|
59
|
+
* apiKey: 'sk-or-...',
|
|
60
|
+
* siteUrl: 'https://myapp.com',
|
|
61
|
+
* appName: 'My App',
|
|
62
|
+
* });
|
|
63
|
+
*
|
|
64
|
+
* // Use auto model selection
|
|
65
|
+
* const model = openrouter('openrouter/auto');
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
declare function openrouter(modelId: string, options?: OpenRouterProviderOptions): LanguageModel;
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* OpenRouter Provider
|
|
72
|
+
*
|
|
73
|
+
* OpenRouter is a unified API gateway that provides access to 500+ AI models
|
|
74
|
+
* from 60+ providers (OpenAI, Anthropic, Google, Meta, Mistral, etc.)
|
|
75
|
+
* through a single endpoint.
|
|
76
|
+
*
|
|
77
|
+
* Features:
|
|
78
|
+
* - Single API key for all models
|
|
79
|
+
* - Automatic fallbacks and routing
|
|
80
|
+
* - Cost optimization
|
|
81
|
+
* - Provider preferences
|
|
82
|
+
* - OpenAI-compatible API
|
|
83
|
+
*
|
|
84
|
+
* @see https://openrouter.ai/docs
|
|
85
|
+
*/
|
|
86
|
+
|
|
87
|
+
interface OpenRouterProviderConfig {
|
|
88
|
+
/** API key (defaults to OPENROUTER_API_KEY env var) */
|
|
89
|
+
apiKey?: string;
|
|
90
|
+
/** Base URL for API */
|
|
91
|
+
baseUrl?: string;
|
|
92
|
+
/** Your site URL for OpenRouter rankings */
|
|
93
|
+
siteUrl?: string;
|
|
94
|
+
/** Your app name for OpenRouter rankings */
|
|
95
|
+
appName?: string;
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Create an OpenRouter provider (callable, Vercel AI SDK style)
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* const or = createOpenRouter({ apiKey: '...' });
|
|
103
|
+
*
|
|
104
|
+
* // Callable - Vercel AI SDK style
|
|
105
|
+
* const model = or('anthropic/claude-3.5-sonnet');
|
|
106
|
+
*
|
|
107
|
+
* // Also supports method call (backward compatible)
|
|
108
|
+
* const model2 = or.languageModel('openai/gpt-4o');
|
|
109
|
+
*
|
|
110
|
+
* // Check capabilities
|
|
111
|
+
* const caps = or.getCapabilities('anthropic/claude-3.5-sonnet');
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
declare function createOpenRouter(config?: OpenRouterProviderConfig): AIProvider;
|
|
115
|
+
declare const createOpenRouterProvider: typeof createOpenRouter;
|
|
116
|
+
|
|
117
|
+
export { type OpenRouterProviderConfig, type OpenRouterProviderOptions, createOpenRouter, openrouter as createOpenRouterModel, createOpenRouterProvider, openrouter };
|