@yourgpt/llm-sdk 2.0.1 → 2.0.2-beta.2
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/adapters/index.d.mts +27 -4
- package/dist/adapters/index.d.ts +27 -4
- package/dist/adapters/index.js +395 -25
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/index.mjs +395 -25
- package/dist/adapters/index.mjs.map +1 -1
- package/dist/index.d.mts +24 -5
- package/dist/index.d.ts +24 -5
- package/dist/index.js +20 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +20 -4
- package/dist/index.mjs.map +1 -1
- package/dist/providers/anthropic/index.d.mts +1 -2
- package/dist/providers/anthropic/index.d.ts +1 -2
- package/dist/providers/anthropic/index.js +108 -12
- package/dist/providers/anthropic/index.js.map +1 -1
- package/dist/providers/anthropic/index.mjs +108 -12
- package/dist/providers/anthropic/index.mjs.map +1 -1
- package/dist/providers/azure/index.d.mts +1 -2
- package/dist/providers/azure/index.d.ts +1 -2
- package/dist/providers/azure/index.js.map +1 -1
- package/dist/providers/azure/index.mjs.map +1 -1
- package/dist/providers/google/index.d.mts +1 -2
- package/dist/providers/google/index.d.ts +1 -2
- package/dist/providers/google/index.js +61 -2
- package/dist/providers/google/index.js.map +1 -1
- package/dist/providers/google/index.mjs +61 -2
- package/dist/providers/google/index.mjs.map +1 -1
- package/dist/providers/ollama/index.d.mts +8 -3
- package/dist/providers/ollama/index.d.ts +8 -3
- package/dist/providers/ollama/index.js +227 -17
- package/dist/providers/ollama/index.js.map +1 -1
- package/dist/providers/ollama/index.mjs +227 -17
- package/dist/providers/ollama/index.mjs.map +1 -1
- package/dist/providers/openai/index.d.mts +1 -2
- package/dist/providers/openai/index.d.ts +1 -2
- package/dist/providers/openai/index.js +57 -3
- package/dist/providers/openai/index.js.map +1 -1
- package/dist/providers/openai/index.mjs +57 -3
- package/dist/providers/openai/index.mjs.map +1 -1
- package/dist/providers/openrouter/index.d.mts +56 -3
- package/dist/providers/openrouter/index.d.ts +56 -3
- package/dist/providers/openrouter/index.js +90 -276
- package/dist/providers/openrouter/index.js.map +1 -1
- package/dist/providers/openrouter/index.mjs +89 -277
- package/dist/providers/openrouter/index.mjs.map +1 -1
- package/dist/providers/xai/index.d.mts +1 -2
- package/dist/providers/xai/index.d.ts +1 -2
- package/dist/providers/xai/index.js.map +1 -1
- package/dist/providers/xai/index.mjs.map +1 -1
- package/dist/{base-DdxolpKP.d.mts → types-C_f95PKp.d.mts} +434 -3
- package/dist/{base-DdxolpKP.d.ts → types-C_f95PKp.d.ts} +434 -3
- package/package.json +1 -1
- package/dist/types-Ck25ZYma.d.mts +0 -323
- package/dist/types-Dsz8SpdB.d.ts +0 -323
|
@@ -1,164 +1,4 @@
|
|
|
1
1
|
// src/providers/openrouter/provider.ts
|
|
2
|
-
var OPENROUTER_MODELS = {
|
|
3
|
-
// OpenAI
|
|
4
|
-
"openai/gpt-4o": {
|
|
5
|
-
vision: true,
|
|
6
|
-
tools: true,
|
|
7
|
-
jsonMode: true,
|
|
8
|
-
maxTokens: 128e3
|
|
9
|
-
},
|
|
10
|
-
"openai/gpt-4o-mini": {
|
|
11
|
-
vision: true,
|
|
12
|
-
tools: true,
|
|
13
|
-
jsonMode: true,
|
|
14
|
-
maxTokens: 128e3
|
|
15
|
-
},
|
|
16
|
-
"openai/gpt-4-turbo": {
|
|
17
|
-
vision: true,
|
|
18
|
-
tools: true,
|
|
19
|
-
jsonMode: true,
|
|
20
|
-
maxTokens: 128e3
|
|
21
|
-
},
|
|
22
|
-
"openai/o1": {
|
|
23
|
-
vision: true,
|
|
24
|
-
tools: false,
|
|
25
|
-
jsonMode: false,
|
|
26
|
-
maxTokens: 128e3
|
|
27
|
-
},
|
|
28
|
-
"openai/o1-mini": {
|
|
29
|
-
vision: true,
|
|
30
|
-
tools: false,
|
|
31
|
-
jsonMode: false,
|
|
32
|
-
maxTokens: 128e3
|
|
33
|
-
},
|
|
34
|
-
// Anthropic
|
|
35
|
-
"anthropic/claude-3.5-sonnet": {
|
|
36
|
-
vision: true,
|
|
37
|
-
tools: true,
|
|
38
|
-
jsonMode: true,
|
|
39
|
-
maxTokens: 2e5
|
|
40
|
-
},
|
|
41
|
-
"anthropic/claude-3.5-sonnet-20241022": {
|
|
42
|
-
vision: true,
|
|
43
|
-
tools: true,
|
|
44
|
-
jsonMode: true,
|
|
45
|
-
maxTokens: 2e5
|
|
46
|
-
},
|
|
47
|
-
"anthropic/claude-3-opus": {
|
|
48
|
-
vision: true,
|
|
49
|
-
tools: true,
|
|
50
|
-
jsonMode: true,
|
|
51
|
-
maxTokens: 2e5
|
|
52
|
-
},
|
|
53
|
-
"anthropic/claude-3-sonnet": {
|
|
54
|
-
vision: true,
|
|
55
|
-
tools: true,
|
|
56
|
-
jsonMode: true,
|
|
57
|
-
maxTokens: 2e5
|
|
58
|
-
},
|
|
59
|
-
"anthropic/claude-3-haiku": {
|
|
60
|
-
vision: true,
|
|
61
|
-
tools: true,
|
|
62
|
-
jsonMode: true,
|
|
63
|
-
maxTokens: 2e5
|
|
64
|
-
},
|
|
65
|
-
// Google
|
|
66
|
-
"google/gemini-pro-1.5": {
|
|
67
|
-
vision: true,
|
|
68
|
-
tools: true,
|
|
69
|
-
jsonMode: true,
|
|
70
|
-
maxTokens: 1e6
|
|
71
|
-
},
|
|
72
|
-
"google/gemini-flash-1.5": {
|
|
73
|
-
vision: true,
|
|
74
|
-
tools: true,
|
|
75
|
-
jsonMode: true,
|
|
76
|
-
maxTokens: 1e6
|
|
77
|
-
},
|
|
78
|
-
"google/gemini-2.0-flash-exp": {
|
|
79
|
-
vision: true,
|
|
80
|
-
tools: true,
|
|
81
|
-
jsonMode: true,
|
|
82
|
-
maxTokens: 1e6
|
|
83
|
-
},
|
|
84
|
-
// Meta Llama
|
|
85
|
-
"meta-llama/llama-3.1-405b-instruct": {
|
|
86
|
-
vision: false,
|
|
87
|
-
tools: true,
|
|
88
|
-
jsonMode: true,
|
|
89
|
-
maxTokens: 131072
|
|
90
|
-
},
|
|
91
|
-
"meta-llama/llama-3.1-70b-instruct": {
|
|
92
|
-
vision: false,
|
|
93
|
-
tools: true,
|
|
94
|
-
jsonMode: true,
|
|
95
|
-
maxTokens: 131072
|
|
96
|
-
},
|
|
97
|
-
"meta-llama/llama-3.1-8b-instruct": {
|
|
98
|
-
vision: false,
|
|
99
|
-
tools: true,
|
|
100
|
-
jsonMode: true,
|
|
101
|
-
maxTokens: 131072
|
|
102
|
-
},
|
|
103
|
-
"meta-llama/llama-3.2-90b-vision-instruct": {
|
|
104
|
-
vision: true,
|
|
105
|
-
tools: true,
|
|
106
|
-
jsonMode: true,
|
|
107
|
-
maxTokens: 131072
|
|
108
|
-
},
|
|
109
|
-
// Mistral
|
|
110
|
-
"mistralai/mistral-large": {
|
|
111
|
-
vision: false,
|
|
112
|
-
tools: true,
|
|
113
|
-
jsonMode: true,
|
|
114
|
-
maxTokens: 128e3
|
|
115
|
-
},
|
|
116
|
-
"mistralai/mixtral-8x7b-instruct": {
|
|
117
|
-
vision: false,
|
|
118
|
-
tools: true,
|
|
119
|
-
jsonMode: true,
|
|
120
|
-
maxTokens: 32768
|
|
121
|
-
},
|
|
122
|
-
"mistralai/mistral-nemo": {
|
|
123
|
-
vision: false,
|
|
124
|
-
tools: true,
|
|
125
|
-
jsonMode: true,
|
|
126
|
-
maxTokens: 128e3
|
|
127
|
-
},
|
|
128
|
-
// DeepSeek
|
|
129
|
-
"deepseek/deepseek-chat": {
|
|
130
|
-
vision: false,
|
|
131
|
-
tools: true,
|
|
132
|
-
jsonMode: true,
|
|
133
|
-
maxTokens: 64e3
|
|
134
|
-
},
|
|
135
|
-
"deepseek/deepseek-coder": {
|
|
136
|
-
vision: false,
|
|
137
|
-
tools: true,
|
|
138
|
-
jsonMode: true,
|
|
139
|
-
maxTokens: 64e3
|
|
140
|
-
},
|
|
141
|
-
// Qwen
|
|
142
|
-
"qwen/qwen-2.5-72b-instruct": {
|
|
143
|
-
vision: false,
|
|
144
|
-
tools: true,
|
|
145
|
-
jsonMode: true,
|
|
146
|
-
maxTokens: 131072
|
|
147
|
-
},
|
|
148
|
-
"qwen/qwen-2-vl-72b-instruct": {
|
|
149
|
-
vision: true,
|
|
150
|
-
tools: true,
|
|
151
|
-
jsonMode: true,
|
|
152
|
-
maxTokens: 32768
|
|
153
|
-
},
|
|
154
|
-
// OpenRouter Auto (magic model)
|
|
155
|
-
"openrouter/auto": {
|
|
156
|
-
vision: true,
|
|
157
|
-
tools: true,
|
|
158
|
-
jsonMode: true,
|
|
159
|
-
maxTokens: 128e3
|
|
160
|
-
}
|
|
161
|
-
};
|
|
162
2
|
var DEFAULT_MODEL_CONFIG = {
|
|
163
3
|
vision: true,
|
|
164
4
|
tools: true,
|
|
@@ -187,7 +27,7 @@ function openrouter(modelId, options = {}) {
|
|
|
187
27
|
}
|
|
188
28
|
return client;
|
|
189
29
|
}
|
|
190
|
-
const modelConfig =
|
|
30
|
+
const modelConfig = DEFAULT_MODEL_CONFIG;
|
|
191
31
|
return {
|
|
192
32
|
provider: "openrouter",
|
|
193
33
|
modelId,
|
|
@@ -386,6 +226,29 @@ function formatMessagesForOpenRouter(messages) {
|
|
|
386
226
|
}
|
|
387
227
|
});
|
|
388
228
|
}
|
|
229
|
+
async function fetchOpenRouterModels(apiKey) {
|
|
230
|
+
const headers = {
|
|
231
|
+
"Content-Type": "application/json"
|
|
232
|
+
};
|
|
233
|
+
if (apiKey) {
|
|
234
|
+
headers["Authorization"] = `Bearer ${apiKey}`;
|
|
235
|
+
}
|
|
236
|
+
const response = await fetch("https://openrouter.ai/api/v1/models", {
|
|
237
|
+
headers
|
|
238
|
+
});
|
|
239
|
+
if (!response.ok) {
|
|
240
|
+
throw new Error(`Failed to fetch models: ${response.statusText}`);
|
|
241
|
+
}
|
|
242
|
+
const data = await response.json();
|
|
243
|
+
return data.data || [];
|
|
244
|
+
}
|
|
245
|
+
async function searchOpenRouterModels(query, apiKey) {
|
|
246
|
+
const models = await fetchOpenRouterModels(apiKey);
|
|
247
|
+
const lowerQuery = query.toLowerCase();
|
|
248
|
+
return models.filter(
|
|
249
|
+
(model) => model.id.toLowerCase().includes(lowerQuery) || model.name.toLowerCase().includes(lowerQuery)
|
|
250
|
+
);
|
|
251
|
+
}
|
|
389
252
|
|
|
390
253
|
// src/core/utils.ts
|
|
391
254
|
function generateId(prefix = "id") {
|
|
@@ -584,29 +447,60 @@ var OpenAIAdapter = class {
|
|
|
584
447
|
request.systemPrompt
|
|
585
448
|
);
|
|
586
449
|
}
|
|
587
|
-
const tools = request.actions?.length ? formatTools(request.actions) :
|
|
450
|
+
const tools = request.actions?.length ? formatTools(request.actions) : [];
|
|
451
|
+
const webSearchConfig = request.webSearch ?? this.config.webSearch;
|
|
452
|
+
if (webSearchConfig) {
|
|
453
|
+
const webSearchTool = {
|
|
454
|
+
type: "web_search_preview"
|
|
455
|
+
};
|
|
456
|
+
const wsConfig = typeof webSearchConfig === "object" ? webSearchConfig : {};
|
|
457
|
+
if (wsConfig.userLocation) {
|
|
458
|
+
webSearchTool.search_context_size = "medium";
|
|
459
|
+
}
|
|
460
|
+
tools.push(webSearchTool);
|
|
461
|
+
}
|
|
588
462
|
const messageId = generateMessageId();
|
|
589
463
|
yield { type: "message:start", id: messageId };
|
|
590
464
|
try {
|
|
591
465
|
const stream = await client.chat.completions.create({
|
|
592
466
|
model: request.config?.model || this.model,
|
|
593
467
|
messages,
|
|
594
|
-
tools,
|
|
468
|
+
tools: tools.length > 0 ? tools : void 0,
|
|
595
469
|
temperature: request.config?.temperature ?? this.config.temperature,
|
|
596
470
|
max_tokens: request.config?.maxTokens ?? this.config.maxTokens,
|
|
597
471
|
stream: true,
|
|
598
472
|
stream_options: { include_usage: true }
|
|
599
473
|
});
|
|
600
474
|
let currentToolCall = null;
|
|
475
|
+
const collectedCitations = [];
|
|
476
|
+
let citationIndex = 0;
|
|
601
477
|
let usage;
|
|
602
478
|
for await (const chunk of stream) {
|
|
603
479
|
if (request.signal?.aborted) {
|
|
604
480
|
break;
|
|
605
481
|
}
|
|
606
482
|
const delta = chunk.choices[0]?.delta;
|
|
483
|
+
const choice = chunk.choices[0];
|
|
607
484
|
if (delta?.content) {
|
|
608
485
|
yield { type: "message:delta", content: delta.content };
|
|
609
486
|
}
|
|
487
|
+
const annotations = delta?.annotations;
|
|
488
|
+
if (annotations && annotations.length > 0) {
|
|
489
|
+
for (const annotation of annotations) {
|
|
490
|
+
if (annotation.type === "url_citation" && annotation.url_citation?.url) {
|
|
491
|
+
citationIndex++;
|
|
492
|
+
const url = annotation.url_citation.url;
|
|
493
|
+
const domain = extractDomain(url);
|
|
494
|
+
collectedCitations.push({
|
|
495
|
+
index: citationIndex,
|
|
496
|
+
url,
|
|
497
|
+
title: annotation.url_citation.title || domain,
|
|
498
|
+
domain,
|
|
499
|
+
favicon: domain ? `https://www.google.com/s2/favicons?domain=${domain}&sz=32` : void 0
|
|
500
|
+
});
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
}
|
|
610
504
|
if (delta?.tool_calls) {
|
|
611
505
|
for (const toolCall of delta.tool_calls) {
|
|
612
506
|
if (toolCall.id) {
|
|
@@ -639,7 +533,7 @@ var OpenAIAdapter = class {
|
|
|
639
533
|
total_tokens: chunk.usage.total_tokens
|
|
640
534
|
};
|
|
641
535
|
}
|
|
642
|
-
if (
|
|
536
|
+
if (choice?.finish_reason) {
|
|
643
537
|
if (currentToolCall) {
|
|
644
538
|
yield {
|
|
645
539
|
type: "action:args",
|
|
@@ -649,6 +543,10 @@ var OpenAIAdapter = class {
|
|
|
649
543
|
}
|
|
650
544
|
}
|
|
651
545
|
}
|
|
546
|
+
if (collectedCitations.length > 0) {
|
|
547
|
+
const uniqueCitations = deduplicateCitations(collectedCitations);
|
|
548
|
+
yield { type: "citation", citations: uniqueCitations };
|
|
549
|
+
}
|
|
652
550
|
yield { type: "message:end" };
|
|
653
551
|
yield { type: "done", usage };
|
|
654
552
|
} catch (error) {
|
|
@@ -660,6 +558,25 @@ var OpenAIAdapter = class {
|
|
|
660
558
|
}
|
|
661
559
|
}
|
|
662
560
|
};
|
|
561
|
+
function extractDomain(url) {
|
|
562
|
+
try {
|
|
563
|
+
const parsed = new URL(url);
|
|
564
|
+
return parsed.hostname;
|
|
565
|
+
} catch {
|
|
566
|
+
return "";
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
function deduplicateCitations(citations) {
|
|
570
|
+
const seen = /* @__PURE__ */ new Map();
|
|
571
|
+
let index = 0;
|
|
572
|
+
for (const citation of citations) {
|
|
573
|
+
if (!seen.has(citation.url)) {
|
|
574
|
+
index++;
|
|
575
|
+
seen.set(citation.url, { ...citation, index });
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
return Array.from(seen.values());
|
|
579
|
+
}
|
|
663
580
|
function createOpenAIAdapter(config) {
|
|
664
581
|
return new OpenAIAdapter(config);
|
|
665
582
|
}
|
|
@@ -681,111 +598,6 @@ function createCallableProvider(providerFn, properties) {
|
|
|
681
598
|
}
|
|
682
599
|
|
|
683
600
|
// src/providers/openrouter/index.ts
|
|
684
|
-
var OPENROUTER_MODELS2 = {
|
|
685
|
-
// OpenAI
|
|
686
|
-
"openai/gpt-4o": {
|
|
687
|
-
vision: true,
|
|
688
|
-
tools: true,
|
|
689
|
-
jsonMode: true,
|
|
690
|
-
maxTokens: 128e3
|
|
691
|
-
},
|
|
692
|
-
"openai/gpt-4o-mini": {
|
|
693
|
-
vision: true,
|
|
694
|
-
tools: true,
|
|
695
|
-
jsonMode: true,
|
|
696
|
-
maxTokens: 128e3
|
|
697
|
-
},
|
|
698
|
-
"openai/gpt-4-turbo": {
|
|
699
|
-
vision: true,
|
|
700
|
-
tools: true,
|
|
701
|
-
jsonMode: true,
|
|
702
|
-
maxTokens: 128e3
|
|
703
|
-
},
|
|
704
|
-
"openai/o1": {
|
|
705
|
-
vision: true,
|
|
706
|
-
tools: false,
|
|
707
|
-
jsonMode: false,
|
|
708
|
-
maxTokens: 128e3
|
|
709
|
-
},
|
|
710
|
-
// Anthropic
|
|
711
|
-
"anthropic/claude-3.5-sonnet": {
|
|
712
|
-
vision: true,
|
|
713
|
-
tools: true,
|
|
714
|
-
jsonMode: true,
|
|
715
|
-
maxTokens: 2e5
|
|
716
|
-
},
|
|
717
|
-
"anthropic/claude-3.5-sonnet-20241022": {
|
|
718
|
-
vision: true,
|
|
719
|
-
tools: true,
|
|
720
|
-
jsonMode: true,
|
|
721
|
-
maxTokens: 2e5
|
|
722
|
-
},
|
|
723
|
-
"anthropic/claude-3-opus": {
|
|
724
|
-
vision: true,
|
|
725
|
-
tools: true,
|
|
726
|
-
jsonMode: true,
|
|
727
|
-
maxTokens: 2e5
|
|
728
|
-
},
|
|
729
|
-
"anthropic/claude-3-haiku": {
|
|
730
|
-
vision: true,
|
|
731
|
-
tools: true,
|
|
732
|
-
jsonMode: true,
|
|
733
|
-
maxTokens: 2e5
|
|
734
|
-
},
|
|
735
|
-
// Google
|
|
736
|
-
"google/gemini-pro-1.5": {
|
|
737
|
-
vision: true,
|
|
738
|
-
tools: true,
|
|
739
|
-
jsonMode: true,
|
|
740
|
-
maxTokens: 1e6
|
|
741
|
-
},
|
|
742
|
-
"google/gemini-flash-1.5": {
|
|
743
|
-
vision: true,
|
|
744
|
-
tools: true,
|
|
745
|
-
jsonMode: true,
|
|
746
|
-
maxTokens: 1e6
|
|
747
|
-
},
|
|
748
|
-
// Meta Llama
|
|
749
|
-
"meta-llama/llama-3.1-405b-instruct": {
|
|
750
|
-
vision: false,
|
|
751
|
-
tools: true,
|
|
752
|
-
jsonMode: true,
|
|
753
|
-
maxTokens: 131072
|
|
754
|
-
},
|
|
755
|
-
"meta-llama/llama-3.1-70b-instruct": {
|
|
756
|
-
vision: false,
|
|
757
|
-
tools: true,
|
|
758
|
-
jsonMode: true,
|
|
759
|
-
maxTokens: 131072
|
|
760
|
-
},
|
|
761
|
-
// Mistral
|
|
762
|
-
"mistralai/mistral-large": {
|
|
763
|
-
vision: false,
|
|
764
|
-
tools: true,
|
|
765
|
-
jsonMode: true,
|
|
766
|
-
maxTokens: 128e3
|
|
767
|
-
},
|
|
768
|
-
"mistralai/mixtral-8x7b-instruct": {
|
|
769
|
-
vision: false,
|
|
770
|
-
tools: true,
|
|
771
|
-
jsonMode: true,
|
|
772
|
-
maxTokens: 32768
|
|
773
|
-
},
|
|
774
|
-
// DeepSeek
|
|
775
|
-
"deepseek/deepseek-chat": {
|
|
776
|
-
vision: false,
|
|
777
|
-
tools: true,
|
|
778
|
-
jsonMode: true,
|
|
779
|
-
maxTokens: 64e3
|
|
780
|
-
},
|
|
781
|
-
// OpenRouter Auto (magic model - picks best for your prompt)
|
|
782
|
-
"openrouter/auto": {
|
|
783
|
-
vision: true,
|
|
784
|
-
tools: true,
|
|
785
|
-
jsonMode: true,
|
|
786
|
-
maxTokens: 128e3
|
|
787
|
-
}
|
|
788
|
-
};
|
|
789
601
|
var DEFAULT_CAPABILITIES = {
|
|
790
602
|
vision: true,
|
|
791
603
|
tools: true,
|
|
@@ -803,29 +615,29 @@ function createOpenRouter(config = {}) {
|
|
|
803
615
|
});
|
|
804
616
|
};
|
|
805
617
|
const getCapabilities = (modelId) => {
|
|
806
|
-
const model = OPENROUTER_MODELS2[modelId] ?? DEFAULT_CAPABILITIES;
|
|
807
618
|
return {
|
|
808
|
-
supportsVision:
|
|
809
|
-
supportsTools:
|
|
619
|
+
supportsVision: DEFAULT_CAPABILITIES.vision,
|
|
620
|
+
supportsTools: DEFAULT_CAPABILITIES.tools,
|
|
810
621
|
supportsThinking: false,
|
|
811
622
|
supportsStreaming: true,
|
|
812
623
|
supportsPDF: false,
|
|
813
624
|
supportsAudio: false,
|
|
814
625
|
supportsVideo: false,
|
|
815
|
-
maxTokens:
|
|
816
|
-
supportedImageTypes:
|
|
817
|
-
supportsJsonMode:
|
|
626
|
+
maxTokens: DEFAULT_CAPABILITIES.maxTokens,
|
|
627
|
+
supportedImageTypes: ["image/png", "image/jpeg", "image/gif", "image/webp"] ,
|
|
628
|
+
supportsJsonMode: DEFAULT_CAPABILITIES.jsonMode,
|
|
818
629
|
supportsSystemMessages: true
|
|
819
630
|
};
|
|
820
631
|
};
|
|
821
632
|
return createCallableProvider(providerFn, {
|
|
822
633
|
name: "openrouter",
|
|
823
|
-
supportedModels:
|
|
634
|
+
supportedModels: [],
|
|
635
|
+
// Use fetchOpenRouterModels() to get live model list
|
|
824
636
|
getCapabilities
|
|
825
637
|
});
|
|
826
638
|
}
|
|
827
639
|
var createOpenRouterProvider = createOpenRouter;
|
|
828
640
|
|
|
829
|
-
export { createOpenRouter, openrouter as createOpenRouterModel, createOpenRouterProvider, openrouter };
|
|
641
|
+
export { createOpenRouter, openrouter as createOpenRouterModel, createOpenRouterProvider, fetchOpenRouterModels, openrouter, searchOpenRouterModels };
|
|
830
642
|
//# sourceMappingURL=index.mjs.map
|
|
831
643
|
//# sourceMappingURL=index.mjs.map
|