@aituber-onair/chat 0.16.0 → 0.18.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/README.ja.md +31 -2
- package/README.md +30 -2
- package/dist/cjs/constants/gemini.d.ts +1 -0
- package/dist/cjs/constants/gemini.d.ts.map +1 -1
- package/dist/cjs/constants/gemini.js +3 -1
- package/dist/cjs/constants/gemini.js.map +1 -1
- package/dist/cjs/constants/openrouter.js +1 -1
- package/dist/cjs/constants/openrouter.js.map +1 -1
- package/dist/cjs/services/providers/gemini/GeminiChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/gemini/GeminiChatServiceProvider.js +1 -0
- package/dist/cjs/services/providers/gemini/GeminiChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +1 -0
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +1 -0
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/refreshOpenRouterFreeModels.d.ts +25 -0
- package/dist/cjs/utils/refreshOpenRouterFreeModels.d.ts.map +1 -0
- package/dist/cjs/utils/refreshOpenRouterFreeModels.js +207 -0
- package/dist/cjs/utils/refreshOpenRouterFreeModels.js.map +1 -0
- package/dist/esm/constants/gemini.d.ts +1 -0
- package/dist/esm/constants/gemini.d.ts.map +1 -1
- package/dist/esm/constants/gemini.js +2 -0
- package/dist/esm/constants/gemini.js.map +1 -1
- package/dist/esm/constants/openrouter.js +1 -1
- package/dist/esm/constants/openrouter.js.map +1 -1
- package/dist/esm/services/providers/gemini/GeminiChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/gemini/GeminiChatServiceProvider.js +2 -1
- package/dist/esm/services/providers/gemini/GeminiChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js +2 -2
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
- package/dist/esm/utils/index.d.ts +1 -0
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/refreshOpenRouterFreeModels.d.ts +25 -0
- package/dist/esm/utils/refreshOpenRouterFreeModels.d.ts.map +1 -0
- package/dist/esm/utils/refreshOpenRouterFreeModels.js +204 -0
- package/dist/esm/utils/refreshOpenRouterFreeModels.js.map +1 -0
- package/dist/umd/aituber-onair-chat.js +213 -2
- package/dist/umd/aituber-onair-chat.min.js +6 -6
- package/package.json +1 -1
package/README.ja.md
CHANGED
|
@@ -245,7 +245,7 @@ const claudeService = ChatServiceFactory.createChatService('claude', {
|
|
|
245
245
|
```typescript
|
|
246
246
|
const geminiService = ChatServiceFactory.createChatService('gemini', {
|
|
247
247
|
apiKey: process.env.GOOGLE_API_KEY,
|
|
248
|
-
model: 'gemini-
|
|
248
|
+
model: 'gemini-3.1-flash-lite-preview'
|
|
249
249
|
});
|
|
250
250
|
```
|
|
251
251
|
|
|
@@ -265,6 +265,7 @@ const openRouterService = ChatServiceFactory.createChatService('openrouter', {
|
|
|
265
265
|
- `gpt-oss-20b:free`モデルでは、技術的制限によりトークン制限が自動的に無効化されます
|
|
266
266
|
- 応答の長さを制御するには、プロンプト内で指示してください(例:「40文字以内で返答してください」)
|
|
267
267
|
- 無料階層にはレート制限があります(20リクエスト/分)
|
|
268
|
+
- 無料モデル判定はモデルID末尾の `:free` で行います(動的取得した `:free` も同様にレート制限対象)
|
|
268
269
|
- サポート対象モデル(キュレーション済み):
|
|
269
270
|
- `openai/gpt-oss-20b:free`
|
|
270
271
|
- `openai/gpt-5.1-chat`, `openai/gpt-5.1-codex`, `openai/gpt-5-mini`, `openai/gpt-5-nano`
|
|
@@ -275,6 +276,34 @@ const openRouterService = ChatServiceFactory.createChatService('openrouter', {
|
|
|
275
276
|
- `z-ai/glm-4.7-flash`, `z-ai/glm-4.5-air`, `z-ai/glm-4.5-air:free`
|
|
276
277
|
- `moonshotai/kimi-k2.5`
|
|
277
278
|
|
|
279
|
+
**OpenRouter freeモデルの動的リフレッシュ**
|
|
280
|
+
|
|
281
|
+
利用可能な `:free` モデルを取得し、利用前に疎通確認できます。
|
|
282
|
+
|
|
283
|
+
```typescript
|
|
284
|
+
import { refreshOpenRouterFreeModels } from '@aituber-onair/chat';
|
|
285
|
+
|
|
286
|
+
const result = await refreshOpenRouterFreeModels({
|
|
287
|
+
apiKey: process.env.OPENROUTER_API_KEY || '',
|
|
288
|
+
concurrency: 2, // デフォルト: 2
|
|
289
|
+
timeoutMs: 12000, // デフォルト: 12000
|
|
290
|
+
maxCandidates: 1, // デフォルト: 1
|
|
291
|
+
maxWorking: 10, // デフォルト: 10
|
|
292
|
+
});
|
|
293
|
+
|
|
294
|
+
console.log(result.working); // 例: ['openai/gpt-oss-20b:free']
|
|
295
|
+
console.log(result.failed); // [{ id, reason }, ...]
|
|
296
|
+
console.log(result.fetchedAt); // Date.now() のタイムスタンプ
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
注意:
|
|
300
|
+
- モデル一覧は `https://openrouter.ai/api/v1/models` から取得します
|
|
301
|
+
- 候補はモデルID末尾が `:free` のものに絞り込みます
|
|
302
|
+
- `maxCandidates` は「疎通確認する候補の最大件数」です
|
|
303
|
+
(例: `10` は「最大10候補を試す」意味で、動作モデルが10件見つかるまで継続はしません)
|
|
304
|
+
- 疎通確認は OpenRouter chat completions の最小 one-shot リクエスト(`stream: false`)を使います
|
|
305
|
+
- `fetch` を利用しているため、ブラウザとNodeの両方で動作します
|
|
306
|
+
|
|
278
307
|
#### Z.ai(GLM)
|
|
279
308
|
|
|
280
309
|
```typescript
|
|
@@ -543,7 +572,7 @@ type ChatResponseLength = 'veryShort' | 'short' | 'medium' | 'long' | 'veryLong'
|
|
|
543
572
|
現在、以下のAIプロバイダーが組み込まれています:
|
|
544
573
|
|
|
545
574
|
- **OpenAI**: GPT-5.1、GPT-5(Nano/Mini/Standard)、GPT-4.1(miniとnanoを含む), GPT-4, GPT-4o-mini, O3-mini, o1, o1-miniのモデルをサポート
|
|
546
|
-
- **Gemini**: Gemini 3.1 Pro Preview, Gemini 3 Pro Preview, Gemini 3 Flash Preview, Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.5 Flash Lite Preview, Gemini 2.0 Flash, Gemini 2.0 Flash-Liteのモデルをサポート
|
|
575
|
+
- **Gemini**: Gemini 3.1 Pro Preview, Gemini 3.1 Flash-Lite Preview, Gemini 3 Pro Preview, Gemini 3 Flash Preview, Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.5 Flash Lite Preview, Gemini 2.0 Flash, Gemini 2.0 Flash-Liteのモデルをサポート
|
|
547
576
|
- **Claude**: Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.5, Claude Sonnet 4.5, Claude Haiku 4.5, Claude 4 Sonnet, Claude 4 Opus, Claude 3.7 Sonnet, Claude 3.5 Haiku/Sonnet, Claude 3 Haikuのモデルをサポート
|
|
548
577
|
- **OpenRouter**: OpenRouterのキュレーション済みモデル一覧(OpenAI/Claude/Gemini/Z.ai/Kimi)をサポート。モデルIDはOpenRouter節を参照してください
|
|
549
578
|
- **Z.ai**: GLM-5(テキスト)、GLM-4.7/4.6(テキスト)、GLM-4.6V系(ビジョン)をサポート
|
package/README.md
CHANGED
|
@@ -242,7 +242,7 @@ const claudeService = ChatServiceFactory.createChatService('claude', {
|
|
|
242
242
|
```typescript
|
|
243
243
|
const geminiService = ChatServiceFactory.createChatService('gemini', {
|
|
244
244
|
apiKey: process.env.GOOGLE_API_KEY,
|
|
245
|
-
model: 'gemini-
|
|
245
|
+
model: 'gemini-3.1-flash-lite-preview'
|
|
246
246
|
});
|
|
247
247
|
```
|
|
248
248
|
|
|
@@ -262,6 +262,7 @@ const openRouterService = ChatServiceFactory.createChatService('openrouter', {
|
|
|
262
262
|
- Token limits are automatically disabled for the `gpt-oss-20b:free` model due to technical limitations
|
|
263
263
|
- To control response length, include instructions in your prompt (e.g., "Please respond in 40 characters or less")
|
|
264
264
|
- Free tier has rate limits (20 requests/minute)
|
|
265
|
+
- Free tier detection is based on the model ID suffix `:free` (dynamic `:free` IDs are also rate-limited)
|
|
265
266
|
- Supported models (curated list):
|
|
266
267
|
- `openai/gpt-oss-20b:free`
|
|
267
268
|
- `openai/gpt-5.1-chat`, `openai/gpt-5.1-codex`, `openai/gpt-5-mini`, `openai/gpt-5-nano`
|
|
@@ -272,6 +273,33 @@ const openRouterService = ChatServiceFactory.createChatService('openrouter', {
|
|
|
272
273
|
- `z-ai/glm-4.7-flash`, `z-ai/glm-4.5-air`, `z-ai/glm-4.5-air:free`
|
|
273
274
|
- `moonshotai/kimi-k2.5`
|
|
274
275
|
|
|
276
|
+
**Dynamic OpenRouter free model refresh**
|
|
277
|
+
|
|
278
|
+
You can fetch currently available `:free` models and probe them before use:
|
|
279
|
+
|
|
280
|
+
```typescript
|
|
281
|
+
import { refreshOpenRouterFreeModels } from '@aituber-onair/chat';
|
|
282
|
+
|
|
283
|
+
const result = await refreshOpenRouterFreeModels({
|
|
284
|
+
apiKey: process.env.OPENROUTER_API_KEY || '',
|
|
285
|
+
concurrency: 2, // default: 2
|
|
286
|
+
timeoutMs: 12000, // default: 12000
|
|
287
|
+
maxCandidates: 1, // default: 1
|
|
288
|
+
maxWorking: 10, // default: 10
|
|
289
|
+
});
|
|
290
|
+
|
|
291
|
+
console.log(result.working); // e.g. ['openai/gpt-oss-20b:free']
|
|
292
|
+
console.log(result.failed); // [{ id, reason }, ...]
|
|
293
|
+
console.log(result.fetchedAt); // Date.now() timestamp
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
Notes:
|
|
297
|
+
- Models are fetched from `https://openrouter.ai/api/v1/models`
|
|
298
|
+
- Candidates are filtered by model ID suffix `:free`
|
|
299
|
+
- `maxCandidates` means "maximum number of candidates to probe" (e.g., `10` probes up to 10 candidates, not until 10 working models are found)
|
|
300
|
+
- Probe uses OpenRouter chat completions with a minimal one-shot request (`stream: false`)
|
|
301
|
+
- Works in both browser and Node runtimes (uses `fetch`)
|
|
302
|
+
|
|
275
303
|
#### Z.ai (GLM)
|
|
276
304
|
|
|
277
305
|
```typescript
|
|
@@ -540,7 +568,7 @@ type ChatResponseLength = 'veryShort' | 'short' | 'medium' | 'long' | 'veryLong'
|
|
|
540
568
|
Currently, the following AI providers are built-in:
|
|
541
569
|
|
|
542
570
|
- **OpenAI**: Supports models like GPT-5.1, GPT-5 (Nano/Mini/Standard), GPT-4.1 (including mini and nano), GPT-4, GPT-4o-mini, O3-mini, o1, o1-mini
|
|
543
|
-
- **Gemini**: Supports models like Gemini 3.1 Pro Preview, Gemini 3 Pro Preview, Gemini 3 Flash Preview, Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.5 Flash Lite Preview, Gemini 2.0 Flash, Gemini 2.0 Flash-Lite
|
|
571
|
+
- **Gemini**: Supports models like Gemini 3.1 Pro Preview, Gemini 3.1 Flash-Lite Preview, Gemini 3 Pro Preview, Gemini 3 Flash Preview, Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.5 Flash Lite Preview, Gemini 2.0 Flash, Gemini 2.0 Flash-Lite
|
|
544
572
|
- **Claude**: Supports models like Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.5, Claude Sonnet 4.5, Claude Haiku 4.5, Claude 4 Sonnet, Claude 4 Opus, Claude 3.7 Sonnet, Claude 3.5 Haiku/Sonnet, Claude 3 Haiku
|
|
545
573
|
- **OpenRouter**: Supports a curated OpenRouter model list (OpenAI/Claude/Gemini/Z.ai/Kimi). See the OpenRouter section for model IDs.
|
|
546
574
|
- **Z.ai**: Supports GLM-5 (text), GLM-4.7/4.6 (text), and GLM-4.6V family (vision)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare const ENDPOINT_GEMINI_API = "https://generativelanguage.googleapis.com";
|
|
2
2
|
export declare const MODEL_GEMINI_3_1_PRO_PREVIEW = "gemini-3.1-pro-preview";
|
|
3
|
+
export declare const MODEL_GEMINI_3_1_FLASH_LITE_PREVIEW = "gemini-3.1-flash-lite-preview";
|
|
3
4
|
export declare const MODEL_GEMINI_3_PRO_PREVIEW = "gemini-3-pro-preview";
|
|
4
5
|
export declare const MODEL_GEMINI_3_FLASH_PREVIEW = "gemini-3-flash-preview";
|
|
5
6
|
export declare const MODEL_GEMINI_2_5_PRO = "gemini-2.5-pro";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../src/constants/gemini.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,mBAAmB,8CAA8C,CAAC;AAG/E,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AACrE,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AACjE,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AACrE,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AACnE,eAAO,MAAM,yCAAyC,wCACf,CAAC;AACxC,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AAGnE,eAAO,MAAM,8BAA8B,
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../src/constants/gemini.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,mBAAmB,8CAA8C,CAAC;AAG/E,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AACrE,eAAO,MAAM,mCAAmC,kCACf,CAAC;AAClC,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AACjE,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AACrE,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AACnE,eAAO,MAAM,yCAAyC,wCACf,CAAC;AACxC,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AAGnE,eAAO,MAAM,8BAA8B,UAW1C,CAAC"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GEMINI_VISION_SUPPORTED_MODELS = exports.MODEL_GEMINI_2_0_FLASH_LITE = exports.MODEL_GEMINI_2_0_FLASH = exports.MODEL_GEMINI_2_5_FLASH_LITE_PREVIEW_06_17 = exports.MODEL_GEMINI_2_5_FLASH_LITE = exports.MODEL_GEMINI_2_5_FLASH = exports.MODEL_GEMINI_2_5_PRO = exports.MODEL_GEMINI_3_FLASH_PREVIEW = exports.MODEL_GEMINI_3_PRO_PREVIEW = exports.MODEL_GEMINI_3_1_PRO_PREVIEW = exports.ENDPOINT_GEMINI_API = void 0;
|
|
3
|
+
exports.GEMINI_VISION_SUPPORTED_MODELS = exports.MODEL_GEMINI_2_0_FLASH_LITE = exports.MODEL_GEMINI_2_0_FLASH = exports.MODEL_GEMINI_2_5_FLASH_LITE_PREVIEW_06_17 = exports.MODEL_GEMINI_2_5_FLASH_LITE = exports.MODEL_GEMINI_2_5_FLASH = exports.MODEL_GEMINI_2_5_PRO = exports.MODEL_GEMINI_3_FLASH_PREVIEW = exports.MODEL_GEMINI_3_PRO_PREVIEW = exports.MODEL_GEMINI_3_1_FLASH_LITE_PREVIEW = exports.MODEL_GEMINI_3_1_PRO_PREVIEW = exports.ENDPOINT_GEMINI_API = void 0;
|
|
4
4
|
// API Endpoints
|
|
5
5
|
exports.ENDPOINT_GEMINI_API = 'https://generativelanguage.googleapis.com';
|
|
6
6
|
// gemini model
|
|
7
7
|
exports.MODEL_GEMINI_3_1_PRO_PREVIEW = 'gemini-3.1-pro-preview';
|
|
8
|
+
exports.MODEL_GEMINI_3_1_FLASH_LITE_PREVIEW = 'gemini-3.1-flash-lite-preview';
|
|
8
9
|
exports.MODEL_GEMINI_3_PRO_PREVIEW = 'gemini-3-pro-preview';
|
|
9
10
|
exports.MODEL_GEMINI_3_FLASH_PREVIEW = 'gemini-3-flash-preview';
|
|
10
11
|
exports.MODEL_GEMINI_2_5_PRO = 'gemini-2.5-pro';
|
|
@@ -16,6 +17,7 @@ exports.MODEL_GEMINI_2_0_FLASH_LITE = 'gemini-2.0-flash-lite';
|
|
|
16
17
|
// Vision support for Gemini models
|
|
17
18
|
exports.GEMINI_VISION_SUPPORTED_MODELS = [
|
|
18
19
|
exports.MODEL_GEMINI_3_1_PRO_PREVIEW,
|
|
20
|
+
exports.MODEL_GEMINI_3_1_FLASH_LITE_PREVIEW,
|
|
19
21
|
exports.MODEL_GEMINI_3_PRO_PREVIEW,
|
|
20
22
|
exports.MODEL_GEMINI_3_FLASH_PREVIEW,
|
|
21
23
|
exports.MODEL_GEMINI_2_5_PRO,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/constants/gemini.ts"],"names":[],"mappings":";;;AAAA,gBAAgB;AACH,QAAA,mBAAmB,GAAG,2CAA2C,CAAC;AAE/E,eAAe;AACF,QAAA,4BAA4B,GAAG,wBAAwB,CAAC;AACxD,QAAA,0BAA0B,GAAG,sBAAsB,CAAC;AACpD,QAAA,4BAA4B,GAAG,wBAAwB,CAAC;AACxD,QAAA,oBAAoB,GAAG,gBAAgB,CAAC;AACxC,QAAA,sBAAsB,GAAG,kBAAkB,CAAC;AAC5C,QAAA,2BAA2B,GAAG,uBAAuB,CAAC;AACtD,QAAA,yCAAyC,GACpD,qCAAqC,CAAC;AAC3B,QAAA,sBAAsB,GAAG,kBAAkB,CAAC;AAC5C,QAAA,2BAA2B,GAAG,uBAAuB,CAAC;AAEnE,mCAAmC;AACtB,QAAA,8BAA8B,GAAG;IAC5C,oCAA4B;IAC5B,kCAA0B;IAC1B,oCAA4B;IAC5B,4BAAoB;IACpB,8BAAsB;IACtB,mCAA2B;IAC3B,iDAAyC;IACzC,8BAAsB;IACtB,mCAA2B;CAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/constants/gemini.ts"],"names":[],"mappings":";;;AAAA,gBAAgB;AACH,QAAA,mBAAmB,GAAG,2CAA2C,CAAC;AAE/E,eAAe;AACF,QAAA,4BAA4B,GAAG,wBAAwB,CAAC;AACxD,QAAA,mCAAmC,GAC9C,+BAA+B,CAAC;AACrB,QAAA,0BAA0B,GAAG,sBAAsB,CAAC;AACpD,QAAA,4BAA4B,GAAG,wBAAwB,CAAC;AACxD,QAAA,oBAAoB,GAAG,gBAAgB,CAAC;AACxC,QAAA,sBAAsB,GAAG,kBAAkB,CAAC;AAC5C,QAAA,2BAA2B,GAAG,uBAAuB,CAAC;AACtD,QAAA,yCAAyC,GACpD,qCAAqC,CAAC;AAC3B,QAAA,sBAAsB,GAAG,kBAAkB,CAAC;AAC5C,QAAA,2BAA2B,GAAG,uBAAuB,CAAC;AAEnE,mCAAmC;AACtB,QAAA,8BAA8B,GAAG;IAC5C,oCAA4B;IAC5B,2CAAmC;IACnC,kCAA0B;IAC1B,oCAA4B;IAC5B,4BAAoB;IACpB,8BAAsB;IACtB,mCAA2B;IAC3B,iDAAyC;IACzC,8BAAsB;IACtB,mCAA2B;CAC5B,CAAC"}
|
|
@@ -59,7 +59,7 @@ exports.OPENROUTER_CREDITS_THRESHOLD = 10;
|
|
|
59
59
|
* @returns True if the model is free tier
|
|
60
60
|
*/
|
|
61
61
|
function isOpenRouterFreeModel(model) {
|
|
62
|
-
return
|
|
62
|
+
return model.trim().endsWith(':free');
|
|
63
63
|
}
|
|
64
64
|
/**
|
|
65
65
|
* Check if a model supports vision on OpenRouter
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/constants/openrouter.ts"],"names":[],"mappings":";;;AA8DA,sDAEC;AAOD,0DAIC;AA3EY,QAAA,uBAAuB,GAClC,+CAA+C,CAAC;AAElD,oBAAoB;AACP,QAAA,sBAAsB,GAAG,yBAAyB,CAAC;AACnD,QAAA,0BAA0B,GAAG,sBAAsB,CAAC;AACpD,QAAA,yBAAyB,GAAG,qBAAqB,CAAC;AAClD,QAAA,0BAA0B,GAAG,sBAAsB,CAAC;AACpD,QAAA,uBAAuB,GAAG,mBAAmB,CAAC;AAC9C,QAAA,uBAAuB,GAAG,mBAAmB,CAAC;AAC9C,QAAA,mBAAmB,GAAG,eAAe,CAAC;AACtC,QAAA,yBAAyB,GAAG,qBAAqB,CAAC;AAClD,QAAA,yBAAyB,GAAG,qBAAqB,CAAC;AAClD,QAAA,6BAA6B,GAAG,yBAAyB,CAAC;AAC1D,QAAA,+BAA+B,GAAG,2BAA2B,CAAC;AAC9D,QAAA,iCAAiC,GAAG,6BAA6B,CAAC;AAClE,QAAA,iCAAiC,GAAG,6BAA6B,CAAC;AAClE,QAAA,gCAAgC,GAAG,4BAA4B,CAAC;AAChE,QAAA,2BAA2B,GAAG,uBAAuB,CAAC;AACtD,QAAA,6BAA6B,GAAG,yBAAyB,CAAC;AAC1D,QAAA,kDAAkD,GAC7D,8CAA8C,CAAC;AACpC,QAAA,uBAAuB,GAAG,oBAAoB,CAAC;AAC/C,QAAA,qBAAqB,GAAG,kBAAkB,CAAC;AAC3C,QAAA,0BAA0B,GAAG,uBAAuB,CAAC;AAElE,mBAAmB;AACN,QAAA,sBAAsB,GAAG;IACpC,8BAAsB;IACtB,kCAA0B;CAC3B,CAAC;AAEF,wCAAwC;AAC3B,QAAA,kCAAkC,GAAG;IAChD,iCAAyB;IACzB,kCAA0B;IAC1B,+BAAuB;IACvB,+BAAuB;IACvB,2BAAmB;IACnB,iCAAyB;IACzB,iCAAyB;IACzB,qCAA6B;IAC7B,uCAA+B;IAC/B,yCAAiC;IACjC,wCAAgC;IAChC,mCAA2B;IAC3B,qCAA6B;IAC7B,0DAAkD;IAClD,kCAA0B;CAC3B,CAAC;AAEF,4BAA4B;AACf,QAAA,qCAAqC,GAAG,EAAE,CAAC;AAC3C,QAAA,uCAAuC,GAAG,EAAE,CAAC;AAC7C,QAAA,wCAAwC,GAAG,IAAI,CAAC;AAChD,QAAA,4BAA4B,GAAG,EAAE,CAAC;AAE/C;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,KAAa;IACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/constants/openrouter.ts"],"names":[],"mappings":";;;AA8DA,sDAEC;AAOD,0DAIC;AA3EY,QAAA,uBAAuB,GAClC,+CAA+C,CAAC;AAElD,oBAAoB;AACP,QAAA,sBAAsB,GAAG,yBAAyB,CAAC;AACnD,QAAA,0BAA0B,GAAG,sBAAsB,CAAC;AACpD,QAAA,yBAAyB,GAAG,qBAAqB,CAAC;AAClD,QAAA,0BAA0B,GAAG,sBAAsB,CAAC;AACpD,QAAA,uBAAuB,GAAG,mBAAmB,CAAC;AAC9C,QAAA,uBAAuB,GAAG,mBAAmB,CAAC;AAC9C,QAAA,mBAAmB,GAAG,eAAe,CAAC;AACtC,QAAA,yBAAyB,GAAG,qBAAqB,CAAC;AAClD,QAAA,yBAAyB,GAAG,qBAAqB,CAAC;AAClD,QAAA,6BAA6B,GAAG,yBAAyB,CAAC;AAC1D,QAAA,+BAA+B,GAAG,2BAA2B,CAAC;AAC9D,QAAA,iCAAiC,GAAG,6BAA6B,CAAC;AAClE,QAAA,iCAAiC,GAAG,6BAA6B,CAAC;AAClE,QAAA,gCAAgC,GAAG,4BAA4B,CAAC;AAChE,QAAA,2BAA2B,GAAG,uBAAuB,CAAC;AACtD,QAAA,6BAA6B,GAAG,yBAAyB,CAAC;AAC1D,QAAA,kDAAkD,GAC7D,8CAA8C,CAAC;AACpC,QAAA,uBAAuB,GAAG,oBAAoB,CAAC;AAC/C,QAAA,qBAAqB,GAAG,kBAAkB,CAAC;AAC3C,QAAA,0BAA0B,GAAG,uBAAuB,CAAC;AAElE,mBAAmB;AACN,QAAA,sBAAsB,GAAG;IACpC,8BAAsB;IACtB,kCAA0B;CAC3B,CAAC;AAEF,wCAAwC;AAC3B,QAAA,kCAAkC,GAAG;IAChD,iCAAyB;IACzB,kCAA0B;IAC1B,+BAAuB;IACvB,+BAAuB;IACvB,2BAAmB;IACnB,iCAAyB;IACzB,iCAAyB;IACzB,qCAA6B;IAC7B,uCAA+B;IAC/B,yCAAiC;IACjC,wCAAgC;IAChC,mCAA2B;IAC3B,qCAA6B;IAC7B,0DAAkD;IAClD,kCAA0B;CAC3B,CAAC;AAEF,4BAA4B;AACf,QAAA,qCAAqC,GAAG,EAAE,CAAC;AAC3C,QAAA,uCAAuC,GAAG,EAAE,CAAC;AAC7C,QAAA,wCAAwC,GAAG,IAAI,CAAC;AAChD,QAAA,4BAA4B,GAAG,EAAE,CAAC;AAE/C;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,KAAa;IACjD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,KAAa;IACnD,OAAO,0CAAkC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAC7D,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC5B,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeminiChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/gemini/GeminiChatServiceProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GeminiChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/gemini/GeminiChatServiceProvider.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAGhC;;GAEG;AACH,qBAAa,yBACX,YAAW,mBAAmB,CAAC,wBAAwB,CAAC;IAExD;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW;IAqBjE;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAe9B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,cAAc,IAAI,OAAO;IAIzB;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAG/C"}
|
|
@@ -39,6 +39,7 @@ class GeminiChatServiceProvider {
|
|
|
39
39
|
getSupportedModels() {
|
|
40
40
|
return [
|
|
41
41
|
constants_1.MODEL_GEMINI_3_1_PRO_PREVIEW,
|
|
42
|
+
constants_1.MODEL_GEMINI_3_1_FLASH_LITE_PREVIEW,
|
|
42
43
|
constants_1.MODEL_GEMINI_3_PRO_PREVIEW,
|
|
43
44
|
constants_1.MODEL_GEMINI_3_FLASH_PREVIEW,
|
|
44
45
|
constants_1.MODEL_GEMINI_2_5_PRO,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeminiChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/gemini/GeminiChatServiceProvider.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"GeminiChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/gemini/GeminiChatServiceProvider.ts"],"names":[],"mappings":";;;AAAA,kDAY4B;AAE5B,2DAAwD;AAKxD,0CAAoD;AAEpD;;GAEG;AACH,MAAa,yBAAyB;IAGpC;;;;OAIG;IACH,iBAAiB,CAAC,OAAiC;QACjD,gFAAgF;QAChF,MAAM,WAAW,GAAG,IAAA,0BAAkB,EAAC;YACrC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,kBAAkB,EAAE,IAAI,CAAC,eAAe,EAAE;YAC1C,sBAAsB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;YACrE,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;QAEH,OAAO,IAAI,qCAAiB,CAC1B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,EACvC,WAAW,EACX,OAAO,CAAC,KAAK,IAAI,EAAE,EACnB,OAAO,CAAC,UAAU,IAAI,EAAE,EACxB,OAAO,CAAC,cAAc,CACvB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,OAAO;YACL,wCAA4B;YAC5B,+CAAmC;YACnC,sCAA0B;YAC1B,wCAA4B;YAC5B,gCAAoB;YACpB,kCAAsB;YACtB,uCAA2B;YAC3B,qDAAyC;YACzC,kCAAsB;YACtB,uCAA2B;SAC5B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,uCAA2B,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,KAAa;QAClC,OAAO,0CAA8B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;CACF;AAhFD,8DAgFC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OpenRouterChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAIhC;;;GAGG;AACH,qBAAa,6BACX,YAAW,mBAAmB,CAAC,4BAA4B,CAAC;IAE5D;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,4BAA4B,GAAG,WAAW;IAmCrE;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;OAIG;IACH,kBAAkB,IAAI,MAAM,EAAE;IA+B9B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,cAAc,IAAI,OAAO;IAMzB;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9C;;;OAGG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGpC"}
|
|
@@ -109,7 +109,7 @@ class OpenRouterChatServiceProvider {
|
|
|
109
109
|
* @returns True if the model is free
|
|
110
110
|
*/
|
|
111
111
|
isModelFree(model) {
|
|
112
|
-
return openrouter_1.
|
|
112
|
+
return (0, openrouter_1.isOpenRouterFreeModel)(model);
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
exports.OpenRouterChatServiceProvider = OpenRouterChatServiceProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"OpenRouterChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":";;;AAAA,8DAwBuC;AAEvC,mEAAgE;AAMhE,0CAAoD;AAEpD;;;GAGG;AACH,MAAa,6BAA6B;IAGxC;;;;OAIG;IACH,iBAAiB,CAAC,OAAqC;QACrD,iEAAiE;QACjE,sDAAsD;QACtD,MAAM,WAAW,GAAG,IAAA,0BAAkB,EAAC;YACrC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,kBAAkB,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE;YAC3D,sBAAsB,EAAE,CAAC,WAAW,EAAE,EAAE,CACtC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC;YAC1C,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;QAEH,mBAAmB;QACnB,MAAM,KAAK,GAAiC,OAAO,CAAC,KAAK,CAAC;QAE1D,sCAAsC;QACtC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAE9B,OAAO,IAAI,6CAAqB,CAC9B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,EACvC,WAAW,EACX,KAAK,EACL,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,cAAc,EACtB,OAAO,EACP,MAAM,EACN,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,kBAAkB,CAC3B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,kBAAkB;QAChB,OAAO;YACL,cAAc;YACd,mCAAsB;YACtB,uCAA0B;YAC1B,gBAAgB;YAChB,sCAAyB;YACzB,uCAA0B;YAC1B,oCAAuB;YACvB,oCAAuB;YACvB,gCAAmB;YACnB,sCAAyB;YACzB,sCAAyB;YACzB,mBAAmB;YACnB,0CAA6B;YAC7B,4CAA+B;YAC/B,8CAAiC;YACjC,8CAAiC;YACjC,6CAAgC;YAChC,gBAAgB;YAChB,wCAA2B;YAC3B,0CAA6B;YAC7B,+DAAkD;YAClD,cAAc;YACd,oCAAuB;YACvB,kCAAqB;YACrB,eAAe;YACf,uCAA0B;SAC3B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,mCAAsB,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC9C,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CACnC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,KAAa;QAClC,OAAO,IAAA,oCAAuB,EAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,OAAO,mCAAsB,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,KAAa;QACvB,OAAO,IAAA,kCAAqB,EAAC,KAAK,CAAC,CAAC;IACtC,CAAC;CACF;AAlID,sEAkIC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC"}
|
package/dist/cjs/utils/index.js
CHANGED
|
@@ -26,4 +26,5 @@ __exportStar(require("./openaiCompatibleSse"), exports);
|
|
|
26
26
|
__exportStar(require("./openaiCompatibleTools"), exports);
|
|
27
27
|
__exportStar(require("./processChatFlow"), exports);
|
|
28
28
|
__exportStar(require("./visionModelResolver"), exports);
|
|
29
|
+
__exportStar(require("./refreshOpenRouterFreeModels"), exports);
|
|
29
30
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,0DAAwC;AACxC,0DAAwC;AACxC,+CAA6B;AAC7B,kDAAgC;AAChC,4CAA0B;AAC1B,wDAAsC;AACtC,0DAAwC;AACxC,oDAAkC;AAClC,wDAAsC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,0DAAwC;AACxC,0DAAwC;AACxC,+CAA6B;AAC7B,kDAAgC;AAChC,4CAA0B;AAC1B,wDAAsC;AACtC,0DAAwC;AACxC,oDAAkC;AAClC,wDAAsC;AACtC,gEAA8C"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface RefreshOpenRouterFreeModelsOptions {
|
|
2
|
+
apiKey: string;
|
|
3
|
+
endpoint?: string;
|
|
4
|
+
modelsEndpoint?: string;
|
|
5
|
+
timeoutMs?: number;
|
|
6
|
+
concurrency?: number;
|
|
7
|
+
maxCandidates?: number;
|
|
8
|
+
maxWorking?: number;
|
|
9
|
+
appName?: string;
|
|
10
|
+
appUrl?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface RefreshOpenRouterFreeModelsFailure {
|
|
13
|
+
id: string;
|
|
14
|
+
reason: string;
|
|
15
|
+
}
|
|
16
|
+
export interface RefreshOpenRouterFreeModelsResult {
|
|
17
|
+
working: string[];
|
|
18
|
+
failed: RefreshOpenRouterFreeModelsFailure[];
|
|
19
|
+
fetchedAt: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Fetch currently available OpenRouter free models and probe each model.
|
|
23
|
+
*/
|
|
24
|
+
export declare function refreshOpenRouterFreeModels(options: RefreshOpenRouterFreeModelsOptions): Promise<RefreshOpenRouterFreeModelsResult>;
|
|
25
|
+
//# sourceMappingURL=refreshOpenRouterFreeModels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refreshOpenRouterFreeModels.d.ts","sourceRoot":"","sources":["../../../src/utils/refreshOpenRouterFreeModels.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,kCAAkC;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kCAAkC;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,kCAAkC,EAAE,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;CACnB;AA6MD;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,kCAAkC,GAC1C,OAAO,CAAC,iCAAiC,CAAC,CAoE5C"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.refreshOpenRouterFreeModels = refreshOpenRouterFreeModels;
|
|
4
|
+
const openrouter_1 = require("../constants/openrouter");
|
|
5
|
+
const OPENROUTER_MODELS_ENDPOINT = 'https://openrouter.ai/api/v1/models';
|
|
6
|
+
const DEFAULT_CONCURRENCY = 2;
|
|
7
|
+
const DEFAULT_TIMEOUT_MS = 12000;
|
|
8
|
+
const DEFAULT_MAX_CANDIDATES = 1;
|
|
9
|
+
const DEFAULT_MAX_WORKING = 10;
|
|
10
|
+
function toErrorMessage(error) {
|
|
11
|
+
if (error instanceof Error) {
|
|
12
|
+
return error.message;
|
|
13
|
+
}
|
|
14
|
+
return String(error);
|
|
15
|
+
}
|
|
16
|
+
function normalizeLimit(value, fallback) {
|
|
17
|
+
if (typeof value !== 'number' || !Number.isFinite(value)) {
|
|
18
|
+
return fallback;
|
|
19
|
+
}
|
|
20
|
+
return Math.max(1, Math.floor(value));
|
|
21
|
+
}
|
|
22
|
+
function normalizeModelIds(modelIds) {
|
|
23
|
+
const seen = new Set();
|
|
24
|
+
const normalized = [];
|
|
25
|
+
for (const modelId of modelIds) {
|
|
26
|
+
const trimmed = modelId.trim();
|
|
27
|
+
if (!trimmed || seen.has(trimmed)) {
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
seen.add(trimmed);
|
|
31
|
+
normalized.push(trimmed);
|
|
32
|
+
}
|
|
33
|
+
return normalized;
|
|
34
|
+
}
|
|
35
|
+
async function fetchWithTimeout(url, init, timeoutMs) {
|
|
36
|
+
const hasAbortController = typeof AbortController !== 'undefined';
|
|
37
|
+
if (!hasAbortController) {
|
|
38
|
+
return fetch(url, init);
|
|
39
|
+
}
|
|
40
|
+
const controller = new AbortController();
|
|
41
|
+
const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
|
|
42
|
+
try {
|
|
43
|
+
return await fetch(url, {
|
|
44
|
+
...init,
|
|
45
|
+
signal: controller.signal,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
if (error instanceof Error && error.name === 'AbortError') {
|
|
50
|
+
throw new Error(`Timeout after ${timeoutMs}ms`);
|
|
51
|
+
}
|
|
52
|
+
throw error;
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
clearTimeout(timeoutId);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async function toHttpFailureReason(response) {
|
|
59
|
+
const status = `HTTP ${response.status} ${response.statusText}`.trim();
|
|
60
|
+
let body = '';
|
|
61
|
+
try {
|
|
62
|
+
body = await response.text();
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
return status;
|
|
66
|
+
}
|
|
67
|
+
const compactBody = body.replace(/\s+/g, ' ').trim().slice(0, 200);
|
|
68
|
+
if (!compactBody) {
|
|
69
|
+
return status;
|
|
70
|
+
}
|
|
71
|
+
return `${status}: ${compactBody}`;
|
|
72
|
+
}
|
|
73
|
+
function extractModelIds(payload) {
|
|
74
|
+
if (!payload || typeof payload !== 'object') {
|
|
75
|
+
throw new Error('Invalid models response shape');
|
|
76
|
+
}
|
|
77
|
+
const response = payload;
|
|
78
|
+
const modelEntries = Array.isArray(response.data)
|
|
79
|
+
? response.data
|
|
80
|
+
: Array.isArray(response.models)
|
|
81
|
+
? response.models
|
|
82
|
+
: [];
|
|
83
|
+
if (modelEntries.length === 0) {
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
const modelIds = modelEntries
|
|
87
|
+
.map((entry) => entry.id)
|
|
88
|
+
.filter((id) => typeof id === 'string');
|
|
89
|
+
return normalizeModelIds(modelIds);
|
|
90
|
+
}
|
|
91
|
+
async function probeModel({ modelId, apiKey, endpoint, timeoutMs, appName, appUrl, }) {
|
|
92
|
+
const headers = {
|
|
93
|
+
Authorization: `Bearer ${apiKey}`,
|
|
94
|
+
'Content-Type': 'application/json',
|
|
95
|
+
};
|
|
96
|
+
if (appName) {
|
|
97
|
+
headers['X-Title'] = appName;
|
|
98
|
+
}
|
|
99
|
+
if (appUrl) {
|
|
100
|
+
headers['HTTP-Referer'] = appUrl;
|
|
101
|
+
}
|
|
102
|
+
try {
|
|
103
|
+
const response = await fetchWithTimeout(endpoint, {
|
|
104
|
+
method: 'POST',
|
|
105
|
+
headers,
|
|
106
|
+
body: JSON.stringify({
|
|
107
|
+
model: modelId,
|
|
108
|
+
messages: [{ role: 'user', content: 'Reply only with OK.' }],
|
|
109
|
+
stream: false,
|
|
110
|
+
}),
|
|
111
|
+
}, timeoutMs);
|
|
112
|
+
if (!response.ok) {
|
|
113
|
+
return {
|
|
114
|
+
id: modelId,
|
|
115
|
+
ok: false,
|
|
116
|
+
reason: await toHttpFailureReason(response),
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
try {
|
|
120
|
+
await response.json();
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
return {
|
|
124
|
+
id: modelId,
|
|
125
|
+
ok: false,
|
|
126
|
+
reason: `JSON parse failed: ${toErrorMessage(error)}`,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
return { id: modelId, ok: true };
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
return {
|
|
133
|
+
id: modelId,
|
|
134
|
+
ok: false,
|
|
135
|
+
reason: toErrorMessage(error),
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
async function runWithConcurrency(items, concurrency, worker) {
|
|
140
|
+
if (items.length === 0) {
|
|
141
|
+
return [];
|
|
142
|
+
}
|
|
143
|
+
const results = new Array(items.length);
|
|
144
|
+
let nextIndex = 0;
|
|
145
|
+
const workerCount = Math.min(concurrency, items.length);
|
|
146
|
+
await Promise.all(Array.from({ length: workerCount }, async () => {
|
|
147
|
+
while (nextIndex < items.length) {
|
|
148
|
+
const current = nextIndex;
|
|
149
|
+
nextIndex += 1;
|
|
150
|
+
results[current] = await worker(items[current]);
|
|
151
|
+
}
|
|
152
|
+
}));
|
|
153
|
+
return results;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Fetch currently available OpenRouter free models and probe each model.
|
|
157
|
+
*/
|
|
158
|
+
async function refreshOpenRouterFreeModels(options) {
|
|
159
|
+
const apiKey = options.apiKey.trim();
|
|
160
|
+
if (!apiKey) {
|
|
161
|
+
throw new Error('OpenRouter API key is required.');
|
|
162
|
+
}
|
|
163
|
+
const modelsEndpoint = options.modelsEndpoint || OPENROUTER_MODELS_ENDPOINT;
|
|
164
|
+
const endpoint = options.endpoint || openrouter_1.ENDPOINT_OPENROUTER_API;
|
|
165
|
+
const timeoutMs = normalizeLimit(options.timeoutMs, DEFAULT_TIMEOUT_MS);
|
|
166
|
+
const concurrency = normalizeLimit(options.concurrency, DEFAULT_CONCURRENCY);
|
|
167
|
+
const maxCandidates = normalizeLimit(options.maxCandidates, DEFAULT_MAX_CANDIDATES);
|
|
168
|
+
const maxWorking = normalizeLimit(options.maxWorking, DEFAULT_MAX_WORKING);
|
|
169
|
+
const modelsResponse = await fetchWithTimeout(modelsEndpoint, { method: 'GET' }, timeoutMs);
|
|
170
|
+
if (!modelsResponse.ok) {
|
|
171
|
+
throw new Error(await toHttpFailureReason(modelsResponse));
|
|
172
|
+
}
|
|
173
|
+
let payload;
|
|
174
|
+
try {
|
|
175
|
+
payload = await modelsResponse.json();
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
throw new Error(`JSON parse failed: ${toErrorMessage(error)}`);
|
|
179
|
+
}
|
|
180
|
+
const candidateModelIds = extractModelIds(payload)
|
|
181
|
+
.filter((modelId) => (0, openrouter_1.isOpenRouterFreeModel)(modelId))
|
|
182
|
+
.slice(0, maxCandidates);
|
|
183
|
+
const probeResults = await runWithConcurrency(candidateModelIds, concurrency, (modelId) => probeModel({
|
|
184
|
+
modelId,
|
|
185
|
+
apiKey,
|
|
186
|
+
endpoint,
|
|
187
|
+
timeoutMs,
|
|
188
|
+
appName: options.appName,
|
|
189
|
+
appUrl: options.appUrl,
|
|
190
|
+
}));
|
|
191
|
+
const working = probeResults
|
|
192
|
+
.filter((result) => result.ok)
|
|
193
|
+
.map((result) => result.id)
|
|
194
|
+
.slice(0, maxWorking);
|
|
195
|
+
const failed = probeResults
|
|
196
|
+
.filter((result) => !result.ok)
|
|
197
|
+
.map((result) => ({
|
|
198
|
+
id: result.id,
|
|
199
|
+
reason: result.reason || 'Unknown error',
|
|
200
|
+
}));
|
|
201
|
+
return {
|
|
202
|
+
working,
|
|
203
|
+
failed,
|
|
204
|
+
fetchedAt: Date.now(),
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=refreshOpenRouterFreeModels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refreshOpenRouterFreeModels.js","sourceRoot":"","sources":["../../../src/utils/refreshOpenRouterFreeModels.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare const ENDPOINT_GEMINI_API = "https://generativelanguage.googleapis.com";
|
|
2
2
|
export declare const MODEL_GEMINI_3_1_PRO_PREVIEW = "gemini-3.1-pro-preview";
|
|
3
|
+
export declare const MODEL_GEMINI_3_1_FLASH_LITE_PREVIEW = "gemini-3.1-flash-lite-preview";
|
|
3
4
|
export declare const MODEL_GEMINI_3_PRO_PREVIEW = "gemini-3-pro-preview";
|
|
4
5
|
export declare const MODEL_GEMINI_3_FLASH_PREVIEW = "gemini-3-flash-preview";
|
|
5
6
|
export declare const MODEL_GEMINI_2_5_PRO = "gemini-2.5-pro";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../src/constants/gemini.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,mBAAmB,8CAA8C,CAAC;AAG/E,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AACrE,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AACjE,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AACrE,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AACnE,eAAO,MAAM,yCAAyC,wCACf,CAAC;AACxC,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AAGnE,eAAO,MAAM,8BAA8B,
|
|
1
|
+
{"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../../src/constants/gemini.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,mBAAmB,8CAA8C,CAAC;AAG/E,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AACrE,eAAO,MAAM,mCAAmC,kCACf,CAAC;AAClC,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AACjE,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AACrE,eAAO,MAAM,oBAAoB,mBAAmB,CAAC;AACrD,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AACnE,eAAO,MAAM,yCAAyC,wCACf,CAAC;AACxC,eAAO,MAAM,sBAAsB,qBAAqB,CAAC;AACzD,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AAGnE,eAAO,MAAM,8BAA8B,UAW1C,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
export const ENDPOINT_GEMINI_API = 'https://generativelanguage.googleapis.com';
|
|
3
3
|
// gemini model
|
|
4
4
|
export const MODEL_GEMINI_3_1_PRO_PREVIEW = 'gemini-3.1-pro-preview';
|
|
5
|
+
export const MODEL_GEMINI_3_1_FLASH_LITE_PREVIEW = 'gemini-3.1-flash-lite-preview';
|
|
5
6
|
export const MODEL_GEMINI_3_PRO_PREVIEW = 'gemini-3-pro-preview';
|
|
6
7
|
export const MODEL_GEMINI_3_FLASH_PREVIEW = 'gemini-3-flash-preview';
|
|
7
8
|
export const MODEL_GEMINI_2_5_PRO = 'gemini-2.5-pro';
|
|
@@ -13,6 +14,7 @@ export const MODEL_GEMINI_2_0_FLASH_LITE = 'gemini-2.0-flash-lite';
|
|
|
13
14
|
// Vision support for Gemini models
|
|
14
15
|
export const GEMINI_VISION_SUPPORTED_MODELS = [
|
|
15
16
|
MODEL_GEMINI_3_1_PRO_PREVIEW,
|
|
17
|
+
MODEL_GEMINI_3_1_FLASH_LITE_PREVIEW,
|
|
16
18
|
MODEL_GEMINI_3_PRO_PREVIEW,
|
|
17
19
|
MODEL_GEMINI_3_FLASH_PREVIEW,
|
|
18
20
|
MODEL_GEMINI_2_5_PRO,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/constants/gemini.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,MAAM,CAAC,MAAM,mBAAmB,GAAG,2CAA2C,CAAC;AAE/E,eAAe;AACf,MAAM,CAAC,MAAM,4BAA4B,GAAG,wBAAwB,CAAC;AACrE,MAAM,CAAC,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AACjE,MAAM,CAAC,MAAM,4BAA4B,GAAG,wBAAwB,CAAC;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AACrD,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AACzD,MAAM,CAAC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC;AACnE,MAAM,CAAC,MAAM,yCAAyC,GACpD,qCAAqC,CAAC;AACxC,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AACzD,MAAM,CAAC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC;AAEnE,mCAAmC;AACnC,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,4BAA4B;IAC5B,0BAA0B;IAC1B,4BAA4B;IAC5B,oBAAoB;IACpB,sBAAsB;IACtB,2BAA2B;IAC3B,yCAAyC;IACzC,sBAAsB;IACtB,2BAA2B;CAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/constants/gemini.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,MAAM,CAAC,MAAM,mBAAmB,GAAG,2CAA2C,CAAC;AAE/E,eAAe;AACf,MAAM,CAAC,MAAM,4BAA4B,GAAG,wBAAwB,CAAC;AACrE,MAAM,CAAC,MAAM,mCAAmC,GAC9C,+BAA+B,CAAC;AAClC,MAAM,CAAC,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AACjE,MAAM,CAAC,MAAM,4BAA4B,GAAG,wBAAwB,CAAC;AACrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AACrD,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AACzD,MAAM,CAAC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC;AACnE,MAAM,CAAC,MAAM,yCAAyC,GACpD,qCAAqC,CAAC;AACxC,MAAM,CAAC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AACzD,MAAM,CAAC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC;AAEnE,mCAAmC;AACnC,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,4BAA4B;IAC5B,mCAAmC;IACnC,0BAA0B;IAC1B,4BAA4B;IAC5B,oBAAoB;IACpB,sBAAsB;IACtB,2BAA2B;IAC3B,yCAAyC;IACzC,sBAAsB;IACtB,2BAA2B;CAC5B,CAAC"}
|
|
@@ -54,7 +54,7 @@ export const OPENROUTER_CREDITS_THRESHOLD = 10;
|
|
|
54
54
|
* @returns True if the model is free tier
|
|
55
55
|
*/
|
|
56
56
|
export function isOpenRouterFreeModel(model) {
|
|
57
|
-
return
|
|
57
|
+
return model.trim().endsWith(':free');
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
60
60
|
* Check if a model supports vision on OpenRouter
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/constants/openrouter.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAClC,+CAA+C,CAAC;AAElD,oBAAoB;AACpB,MAAM,CAAC,MAAM,sBAAsB,GAAG,yBAAyB,CAAC;AAChE,MAAM,CAAC,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AACjE,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAC/D,MAAM,CAAC,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AACjE,MAAM,CAAC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAC3D,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC;AACnD,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAC/D,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAC/D,MAAM,CAAC,MAAM,6BAA6B,GAAG,yBAAyB,CAAC;AACvE,MAAM,CAAC,MAAM,+BAA+B,GAAG,2BAA2B,CAAC;AAC3E,MAAM,CAAC,MAAM,iCAAiC,GAAG,6BAA6B,CAAC;AAC/E,MAAM,CAAC,MAAM,iCAAiC,GAAG,6BAA6B,CAAC;AAC/E,MAAM,CAAC,MAAM,gCAAgC,GAAG,4BAA4B,CAAC;AAC7E,MAAM,CAAC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC;AACnE,MAAM,CAAC,MAAM,6BAA6B,GAAG,yBAAyB,CAAC;AACvE,MAAM,CAAC,MAAM,kDAAkD,GAC7D,8CAA8C,CAAC;AACjD,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAC5D,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AACxD,MAAM,CAAC,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAElE,mBAAmB;AACnB,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,sBAAsB;IACtB,0BAA0B;CAC3B,CAAC;AAEF,wCAAwC;AACxC,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,yBAAyB;IACzB,0BAA0B;IAC1B,uBAAuB;IACvB,uBAAuB;IACvB,mBAAmB;IACnB,yBAAyB;IACzB,yBAAyB;IACzB,6BAA6B;IAC7B,+BAA+B;IAC/B,iCAAiC;IACjC,gCAAgC;IAChC,2BAA2B;IAC3B,6BAA6B;IAC7B,kDAAkD;IAClD,0BAA0B;CAC3B,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,MAAM,qCAAqC,GAAG,EAAE,CAAC;AACxD,MAAM,CAAC,MAAM,uCAAuC,GAAG,EAAE,CAAC;AAC1D,MAAM,CAAC,MAAM,wCAAwC,GAAG,IAAI,CAAC;AAC7D,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAE/C;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,OAAO,
|
|
1
|
+
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/constants/openrouter.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAClC,+CAA+C,CAAC;AAElD,oBAAoB;AACpB,MAAM,CAAC,MAAM,sBAAsB,GAAG,yBAAyB,CAAC;AAChE,MAAM,CAAC,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AACjE,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAC/D,MAAM,CAAC,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AACjE,MAAM,CAAC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAC3D,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC;AACnD,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAC/D,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;AAC/D,MAAM,CAAC,MAAM,6BAA6B,GAAG,yBAAyB,CAAC;AACvE,MAAM,CAAC,MAAM,+BAA+B,GAAG,2BAA2B,CAAC;AAC3E,MAAM,CAAC,MAAM,iCAAiC,GAAG,6BAA6B,CAAC;AAC/E,MAAM,CAAC,MAAM,iCAAiC,GAAG,6BAA6B,CAAC;AAC/E,MAAM,CAAC,MAAM,gCAAgC,GAAG,4BAA4B,CAAC;AAC7E,MAAM,CAAC,MAAM,2BAA2B,GAAG,uBAAuB,CAAC;AACnE,MAAM,CAAC,MAAM,6BAA6B,GAAG,yBAAyB,CAAC;AACvE,MAAM,CAAC,MAAM,kDAAkD,GAC7D,8CAA8C,CAAC;AACjD,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAC5D,MAAM,CAAC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AACxD,MAAM,CAAC,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAElE,mBAAmB;AACnB,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,sBAAsB;IACtB,0BAA0B;CAC3B,CAAC;AAEF,wCAAwC;AACxC,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,yBAAyB;IACzB,0BAA0B;IAC1B,uBAAuB;IACvB,uBAAuB;IACvB,mBAAmB;IACnB,yBAAyB;IACzB,yBAAyB;IACzB,6BAA6B;IAC7B,+BAA+B;IAC/B,iCAAiC;IACjC,gCAAgC;IAChC,2BAA2B;IAC3B,6BAA6B;IAC7B,kDAAkD;IAClD,0BAA0B;CAC3B,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,MAAM,qCAAqC,GAAG,EAAE,CAAC;AACxD,MAAM,CAAC,MAAM,uCAAuC,GAAG,EAAE,CAAC;AAC1D,MAAM,CAAC,MAAM,wCAAwC,GAAG,IAAI,CAAC;AAC7D,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,CAAC;AAE/C;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAa;IACjD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,OAAO,kCAAkC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAC7D,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAC5B,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeminiChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/gemini/GeminiChatServiceProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GeminiChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/gemini/GeminiChatServiceProvider.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAGhC;;GAEG;AACH,qBAAa,yBACX,YAAW,mBAAmB,CAAC,wBAAwB,CAAC;IAExD;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW;IAqBjE;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAe9B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,cAAc,IAAI,OAAO;IAIzB;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAG/C"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MODEL_GEMINI_3_1_PRO_PREVIEW, MODEL_GEMINI_3_PRO_PREVIEW, MODEL_GEMINI_3_FLASH_PREVIEW, MODEL_GEMINI_2_5_PRO, MODEL_GEMINI_2_5_FLASH, MODEL_GEMINI_2_5_FLASH_LITE, MODEL_GEMINI_2_5_FLASH_LITE_PREVIEW_06_17, MODEL_GEMINI_2_0_FLASH, MODEL_GEMINI_2_0_FLASH_LITE, GEMINI_VISION_SUPPORTED_MODELS, } from '../../../constants';
|
|
1
|
+
import { MODEL_GEMINI_3_1_PRO_PREVIEW, MODEL_GEMINI_3_1_FLASH_LITE_PREVIEW, MODEL_GEMINI_3_PRO_PREVIEW, MODEL_GEMINI_3_FLASH_PREVIEW, MODEL_GEMINI_2_5_PRO, MODEL_GEMINI_2_5_FLASH, MODEL_GEMINI_2_5_FLASH_LITE, MODEL_GEMINI_2_5_FLASH_LITE_PREVIEW_06_17, MODEL_GEMINI_2_0_FLASH, MODEL_GEMINI_2_0_FLASH_LITE, GEMINI_VISION_SUPPORTED_MODELS, } from '../../../constants';
|
|
2
2
|
import { GeminiChatService } from './GeminiChatService';
|
|
3
3
|
import { resolveVisionModel } from '../../../utils';
|
|
4
4
|
/**
|
|
@@ -36,6 +36,7 @@ export class GeminiChatServiceProvider {
|
|
|
36
36
|
getSupportedModels() {
|
|
37
37
|
return [
|
|
38
38
|
MODEL_GEMINI_3_1_PRO_PREVIEW,
|
|
39
|
+
MODEL_GEMINI_3_1_FLASH_LITE_PREVIEW,
|
|
39
40
|
MODEL_GEMINI_3_PRO_PREVIEW,
|
|
40
41
|
MODEL_GEMINI_3_FLASH_PREVIEW,
|
|
41
42
|
MODEL_GEMINI_2_5_PRO,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeminiChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/gemini/GeminiChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,EAC5B,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,EAC3B,yCAAyC,EACzC,sBAAsB,EACtB,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;GAEG;AACH,MAAM,OAAO,yBAAyB;IAGpC;;;;OAIG;IACH,iBAAiB,CAAC,OAAiC;QACjD,gFAAgF;QAChF,MAAM,WAAW,GAAG,kBAAkB,CAAC;YACrC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,kBAAkB,EAAE,IAAI,CAAC,eAAe,EAAE;YAC1C,sBAAsB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;YACrE,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;QAEH,OAAO,IAAI,iBAAiB,CAC1B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,EACvC,WAAW,EACX,OAAO,CAAC,KAAK,IAAI,EAAE,EACnB,OAAO,CAAC,UAAU,IAAI,EAAE,EACxB,OAAO,CAAC,cAAc,CACvB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,OAAO;YACL,4BAA4B;YAC5B,0BAA0B;YAC1B,4BAA4B;YAC5B,oBAAoB;YACpB,sBAAsB;YACtB,2BAA2B;YAC3B,yCAAyC;YACzC,sBAAsB;YACtB,2BAA2B;SAC5B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,KAAa;QAClC,OAAO,8BAA8B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"GeminiChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/gemini/GeminiChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,mCAAmC,EACnC,0BAA0B,EAC1B,4BAA4B,EAC5B,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,EAC3B,yCAAyC,EACzC,sBAAsB,EACtB,2BAA2B,EAC3B,8BAA8B,GAC/B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;GAEG;AACH,MAAM,OAAO,yBAAyB;IAGpC;;;;OAIG;IACH,iBAAiB,CAAC,OAAiC;QACjD,gFAAgF;QAChF,MAAM,WAAW,GAAG,kBAAkB,CAAC;YACrC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,kBAAkB,EAAE,IAAI,CAAC,eAAe,EAAE;YAC1C,sBAAsB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;YACrE,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;QAEH,OAAO,IAAI,iBAAiB,CAC1B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,EACvC,WAAW,EACX,OAAO,CAAC,KAAK,IAAI,EAAE,EACnB,OAAO,CAAC,UAAU,IAAI,EAAE,EACxB,OAAO,CAAC,cAAc,CACvB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,OAAO;YACL,4BAA4B;YAC5B,mCAAmC;YACnC,0BAA0B;YAC1B,4BAA4B;YAC5B,oBAAoB;YACpB,sBAAsB;YACtB,2BAA2B;YAC3B,yCAAyC;YACzC,sBAAsB;YACtB,2BAA2B;SAC5B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,2BAA2B,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,KAAa;QAClC,OAAO,8BAA8B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenRouterChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OpenRouterChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAIhC;;;GAGG;AACH,qBAAa,6BACX,YAAW,mBAAmB,CAAC,4BAA4B,CAAC;IAE5D;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,4BAA4B,GAAG,WAAW;IAmCrE;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;OAIG;IACH,kBAAkB,IAAI,MAAM,EAAE;IA+B9B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,cAAc,IAAI,OAAO;IAMzB;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9C;;;OAGG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGpC"}
|