@aituber-onair/chat 0.9.0 → 0.11.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 +45 -6
- package/README.md +45 -6
- package/dist/cjs/constants/claude.d.ts +1 -0
- package/dist/cjs/constants/claude.d.ts.map +1 -1
- package/dist/cjs/constants/claude.js +3 -1
- package/dist/cjs/constants/claude.js.map +1 -1
- package/dist/cjs/constants/index.d.ts +1 -0
- package/dist/cjs/constants/index.d.ts.map +1 -1
- package/dist/cjs/constants/index.js +1 -0
- package/dist/cjs/constants/index.js.map +1 -1
- package/dist/cjs/constants/kimi.d.ts +8 -0
- package/dist/cjs/constants/kimi.d.ts.map +1 -0
- package/dist/cjs/constants/kimi.js +16 -0
- package/dist/cjs/constants/kimi.js.map +1 -0
- package/dist/cjs/constants/openrouter.d.ts +20 -1
- package/dist/cjs/constants/openrouter.d.ts.map +1 -1
- package/dist/cjs/constants/openrouter.js +41 -3
- package/dist/cjs/constants/openrouter.js.map +1 -1
- package/dist/cjs/index.d.ts +3 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +6 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/services/ChatServiceFactory.d.ts +2 -2
- package/dist/cjs/services/ChatServiceFactory.d.ts.map +1 -1
- package/dist/cjs/services/ChatServiceFactory.js +2 -21
- package/dist/cjs/services/ChatServiceFactory.js.map +1 -1
- package/dist/cjs/services/providers/ChatServiceProvider.d.ts +38 -6
- package/dist/cjs/services/providers/ChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/claude/ClaudeChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/claude/ClaudeChatService.js +21 -36
- package/dist/cjs/services/providers/claude/ClaudeChatService.js.map +1 -1
- package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.d.ts +3 -3
- package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js +10 -4
- package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/gemini/GeminiChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/gemini/GeminiChatService.js +28 -45
- package/dist/cjs/services/providers/gemini/GeminiChatService.js.map +1 -1
- package/dist/cjs/services/providers/gemini/GeminiChatServiceProvider.d.ts +3 -3
- package/dist/cjs/services/providers/gemini/GeminiChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/gemini/GeminiChatServiceProvider.js +9 -4
- package/dist/cjs/services/providers/gemini/GeminiChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/index.d.ts +8 -0
- package/dist/cjs/services/providers/index.d.ts.map +1 -0
- package/dist/cjs/services/providers/index.js +18 -0
- package/dist/cjs/services/providers/index.js.map +1 -0
- package/dist/cjs/services/providers/kimi/KimiChatService.d.ts +75 -0
- package/dist/cjs/services/providers/kimi/KimiChatService.d.ts.map +1 -0
- package/dist/cjs/services/providers/kimi/KimiChatService.js +173 -0
- package/dist/cjs/services/providers/kimi/KimiChatService.js.map +1 -0
- package/dist/cjs/services/providers/kimi/KimiChatServiceProvider.d.ts +38 -0
- package/dist/cjs/services/providers/kimi/KimiChatServiceProvider.d.ts.map +1 -0
- package/dist/cjs/services/providers/kimi/KimiChatServiceProvider.js +86 -0
- package/dist/cjs/services/providers/kimi/KimiChatServiceProvider.js.map +1 -0
- package/dist/cjs/services/providers/openai/OpenAIChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/openai/OpenAIChatService.js +47 -199
- package/dist/cjs/services/providers/openai/OpenAIChatService.js.map +1 -1
- package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.d.ts +3 -3
- package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.js +9 -4
- package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js +31 -165
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts +4 -4
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js +35 -8
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/zai/ZAIChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/zai/ZAIChatService.js +31 -162
- package/dist/cjs/services/providers/zai/ZAIChatService.js.map +1 -1
- package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.d.ts +3 -3
- package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.js +9 -8
- package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +4 -0
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +4 -0
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/openaiCompatibleSse.d.ts +10 -0
- package/dist/cjs/utils/openaiCompatibleSse.d.ts.map +1 -0
- package/dist/cjs/utils/openaiCompatibleSse.js +124 -0
- package/dist/cjs/utils/openaiCompatibleSse.js.map +1 -0
- package/dist/cjs/utils/openaiCompatibleTools.d.ts +4 -0
- package/dist/cjs/utils/openaiCompatibleTools.d.ts.map +1 -0
- package/dist/cjs/utils/openaiCompatibleTools.js +25 -0
- package/dist/cjs/utils/openaiCompatibleTools.js.map +1 -0
- package/dist/cjs/utils/processChatFlow.d.ts +12 -0
- package/dist/cjs/utils/processChatFlow.d.ts.map +1 -0
- package/dist/cjs/utils/processChatFlow.js +22 -0
- package/dist/cjs/utils/processChatFlow.js.map +1 -0
- package/dist/cjs/utils/visionModelResolver.d.ts +12 -0
- package/dist/cjs/utils/visionModelResolver.d.ts.map +1 -0
- package/dist/cjs/utils/visionModelResolver.js +22 -0
- package/dist/cjs/utils/visionModelResolver.js.map +1 -0
- package/dist/esm/constants/claude.d.ts +1 -0
- package/dist/esm/constants/claude.d.ts.map +1 -1
- package/dist/esm/constants/claude.js +2 -0
- package/dist/esm/constants/claude.js.map +1 -1
- package/dist/esm/constants/index.d.ts +1 -0
- package/dist/esm/constants/index.d.ts.map +1 -1
- package/dist/esm/constants/index.js +1 -0
- package/dist/esm/constants/index.js.map +1 -1
- package/dist/esm/constants/kimi.d.ts +8 -0
- package/dist/esm/constants/kimi.d.ts.map +1 -0
- package/dist/esm/constants/kimi.js +12 -0
- package/dist/esm/constants/kimi.js.map +1 -0
- package/dist/esm/constants/openrouter.d.ts +20 -1
- package/dist/esm/constants/openrouter.d.ts.map +1 -1
- package/dist/esm/constants/openrouter.js +40 -2
- package/dist/esm/constants/openrouter.js.map +1 -1
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/services/ChatServiceFactory.d.ts +2 -2
- package/dist/esm/services/ChatServiceFactory.d.ts.map +1 -1
- package/dist/esm/services/ChatServiceFactory.js +2 -21
- package/dist/esm/services/ChatServiceFactory.js.map +1 -1
- package/dist/esm/services/providers/ChatServiceProvider.d.ts +38 -6
- package/dist/esm/services/providers/ChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/claude/ClaudeChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/claude/ClaudeChatService.js +21 -36
- package/dist/esm/services/providers/claude/ClaudeChatService.js.map +1 -1
- package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.d.ts +3 -3
- package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js +11 -5
- package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/gemini/GeminiChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/gemini/GeminiChatService.js +28 -45
- package/dist/esm/services/providers/gemini/GeminiChatService.js.map +1 -1
- package/dist/esm/services/providers/gemini/GeminiChatServiceProvider.d.ts +3 -3
- package/dist/esm/services/providers/gemini/GeminiChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/gemini/GeminiChatServiceProvider.js +9 -4
- package/dist/esm/services/providers/gemini/GeminiChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/index.d.ts +8 -0
- package/dist/esm/services/providers/index.d.ts.map +1 -0
- package/dist/esm/services/providers/index.js +15 -0
- package/dist/esm/services/providers/index.js.map +1 -0
- package/dist/esm/services/providers/kimi/KimiChatService.d.ts +75 -0
- package/dist/esm/services/providers/kimi/KimiChatService.d.ts.map +1 -0
- package/dist/esm/services/providers/kimi/KimiChatService.js +169 -0
- package/dist/esm/services/providers/kimi/KimiChatService.js.map +1 -0
- package/dist/esm/services/providers/kimi/KimiChatServiceProvider.d.ts +38 -0
- package/dist/esm/services/providers/kimi/KimiChatServiceProvider.d.ts.map +1 -0
- package/dist/esm/services/providers/kimi/KimiChatServiceProvider.js +82 -0
- package/dist/esm/services/providers/kimi/KimiChatServiceProvider.js.map +1 -0
- package/dist/esm/services/providers/openai/OpenAIChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/openai/OpenAIChatService.js +47 -199
- package/dist/esm/services/providers/openai/OpenAIChatService.js.map +1 -1
- package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.d.ts +3 -3
- package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.js +9 -4
- package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.js +31 -165
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.js.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts +4 -4
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js +36 -9
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/zai/ZAIChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/zai/ZAIChatService.js +31 -162
- package/dist/esm/services/providers/zai/ZAIChatService.js.map +1 -1
- package/dist/esm/services/providers/zai/ZAIChatServiceProvider.d.ts +3 -3
- package/dist/esm/services/providers/zai/ZAIChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/zai/ZAIChatServiceProvider.js +9 -8
- package/dist/esm/services/providers/zai/ZAIChatServiceProvider.js.map +1 -1
- package/dist/esm/utils/index.d.ts +4 -0
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +4 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/openaiCompatibleSse.d.ts +10 -0
- package/dist/esm/utils/openaiCompatibleSse.d.ts.map +1 -0
- package/dist/esm/utils/openaiCompatibleSse.js +119 -0
- package/dist/esm/utils/openaiCompatibleSse.js.map +1 -0
- package/dist/esm/utils/openaiCompatibleTools.d.ts +4 -0
- package/dist/esm/utils/openaiCompatibleTools.d.ts.map +1 -0
- package/dist/esm/utils/openaiCompatibleTools.js +21 -0
- package/dist/esm/utils/openaiCompatibleTools.js.map +1 -0
- package/dist/esm/utils/processChatFlow.d.ts +12 -0
- package/dist/esm/utils/processChatFlow.d.ts.map +1 -0
- package/dist/esm/utils/processChatFlow.js +19 -0
- package/dist/esm/utils/processChatFlow.js.map +1 -0
- package/dist/esm/utils/visionModelResolver.d.ts +12 -0
- package/dist/esm/utils/visionModelResolver.d.ts.map +1 -0
- package/dist/esm/utils/visionModelResolver.js +18 -0
- package/dist/esm/utils/visionModelResolver.js.map +1 -0
- package/dist/umd/aituber-onair-chat.js +1615 -1438
- package/dist/umd/aituber-onair-chat.min.js +6 -13
- package/package.json +1 -1
package/README.ja.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|
|
|
5
|
-
AITuber OnAirのチャット・LLM API統合ライブラリです。このパッケージは、OpenAI、Claude、Gemini、OpenRouter、Z.ai等の様々なAIチャットプロバイダーとやり取りするための統一されたインターフェースを提供します。
|
|
5
|
+
AITuber OnAirのチャット・LLM API統合ライブラリです。このパッケージは、OpenAI、Claude、Gemini、OpenRouter、Z.ai、Kimi等の様々なAIチャットプロバイダーとやり取りするための統一されたインターフェースを提供します。
|
|
6
6
|
|
|
7
7
|
## 機能
|
|
8
8
|
|
|
9
|
-
- 🤖 **複数のAIプロバイダー対応**: OpenAI、Claude (Anthropic)、Google Gemini、OpenRouter、Z.ai
|
|
9
|
+
- 🤖 **複数のAIプロバイダー対応**: OpenAI、Claude (Anthropic)、Google Gemini、OpenRouter、Z.ai、Kimi
|
|
10
10
|
- 🔄 **統一されたインターフェース**: 異なるプロバイダー間での一貫したAPI
|
|
11
11
|
- 🛠️ **ツール・関数呼び出し**: AI関数呼び出しの自動反復処理をサポート
|
|
12
12
|
- 💬 **ストリーミングレスポンス**: リアルタイムストリーミングチャット応答
|
|
@@ -150,7 +150,7 @@ const openaiService = ChatServiceFactory.createChatService('openai', {
|
|
|
150
150
|
```typescript
|
|
151
151
|
const claudeService = ChatServiceFactory.createChatService('claude', {
|
|
152
152
|
apiKey: process.env.ANTHROPIC_API_KEY,
|
|
153
|
-
model: 'claude-
|
|
153
|
+
model: 'claude-opus-4-6'
|
|
154
154
|
});
|
|
155
155
|
```
|
|
156
156
|
|
|
@@ -179,7 +179,15 @@ const openRouterService = ChatServiceFactory.createChatService('openrouter', {
|
|
|
179
179
|
- `gpt-oss-20b:free`モデルでは、技術的制限によりトークン制限が自動的に無効化されます
|
|
180
180
|
- 応答の長さを制御するには、プロンプト内で指示してください(例:「40文字以内で返答してください」)
|
|
181
181
|
- 無料階層にはレート制限があります(20リクエスト/分)
|
|
182
|
-
-
|
|
182
|
+
- サポート対象モデル(キュレーション済み):
|
|
183
|
+
- `openai/gpt-oss-20b:free`
|
|
184
|
+
- `openai/gpt-5.1-chat`, `openai/gpt-5.1-codex`, `openai/gpt-5-mini`, `openai/gpt-5-nano`
|
|
185
|
+
- `openai/gpt-4o`, `openai/gpt-4.1-mini`, `openai/gpt-4.1-nano`
|
|
186
|
+
- `anthropic/claude-opus-4`, `anthropic/claude-sonnet-4`
|
|
187
|
+
- `anthropic/claude-3.7-sonnet`, `anthropic/claude-3.5-sonnet`, `anthropic/claude-haiku-4.5`
|
|
188
|
+
- `google/gemini-2.5-pro`, `google/gemini-2.5-flash`, `google/gemini-2.5-flash-lite-preview-09-2025`
|
|
189
|
+
- `z-ai/glm-4.7-flash`, `z-ai/glm-4.5-air`, `z-ai/glm-4.5-air:free`
|
|
190
|
+
- `moonshotai/kimi-k2.5`
|
|
183
191
|
|
|
184
192
|
#### Z.ai(GLM)
|
|
185
193
|
|
|
@@ -196,6 +204,36 @@ const zaiService = ChatServiceFactory.createChatService('zai', {
|
|
|
196
204
|
- Z.aiはOpenAI互換のChat Completionsを利用します。
|
|
197
205
|
- `thinking` はデフォルトで無効化しています。
|
|
198
206
|
|
|
207
|
+
#### Kimi(Moonshot)
|
|
208
|
+
|
|
209
|
+
```typescript
|
|
210
|
+
const kimiService = ChatServiceFactory.createChatService('kimi', {
|
|
211
|
+
apiKey: process.env.MOONSHOT_API_KEY,
|
|
212
|
+
model: 'kimi-k2.5',
|
|
213
|
+
// Optional: エンドポイント/ベースURLの上書き
|
|
214
|
+
// endpoint: 'https://api.moonshot.ai/v1/chat/completions',
|
|
215
|
+
// baseUrl: 'https://api.moonshot.ai/v1',
|
|
216
|
+
thinking: { type: 'enabled' }
|
|
217
|
+
});
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
注意:
|
|
221
|
+
- KimiはOpenAI互換のChat Completionsを利用します。
|
|
222
|
+
- ツール使用時は`thinking`を`{ type: 'disabled' }`に強制します。
|
|
223
|
+
|
|
224
|
+
自前ホスティング例:
|
|
225
|
+
|
|
226
|
+
```typescript
|
|
227
|
+
const kimiService = ChatServiceFactory.createChatService('kimi', {
|
|
228
|
+
apiKey: process.env.MOONSHOT_API_KEY,
|
|
229
|
+
baseUrl: 'http://localhost:8000/v1',
|
|
230
|
+
thinking: { type: 'disabled' }
|
|
231
|
+
});
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
注意:
|
|
235
|
+
- 自前ホスティングではthinking制御に`chat_template_kwargs`を使用します。
|
|
236
|
+
|
|
199
237
|
### ビジョンチャット
|
|
200
238
|
|
|
201
239
|
```typescript
|
|
@@ -418,9 +456,10 @@ type ChatResponseLength = 'veryShort' | 'short' | 'medium' | 'long' | 'veryLong'
|
|
|
418
456
|
|
|
419
457
|
- **OpenAI**: GPT-5.1、GPT-5(Nano/Mini/Standard)、GPT-4.1(miniとnanoを含む), GPT-4, GPT-4o-mini, O3-mini, o1, o1-miniのモデルをサポート
|
|
420
458
|
- **Gemini**: Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.5 Flash Lite Preview, Gemini 2.0 Flash, Gemini 2.0 Flash-Liteのモデルをサポート
|
|
421
|
-
- **Claude**: 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のモデルをサポート
|
|
422
|
-
- **OpenRouter**:
|
|
459
|
+
- **Claude**: 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のモデルをサポート
|
|
460
|
+
- **OpenRouter**: OpenRouterのキュレーション済みモデル一覧(OpenAI/Claude/Gemini/Z.ai/Kimi)をサポート。モデルIDはOpenRouter節を参照してください
|
|
423
461
|
- **Z.ai**: GLM-4.7(Flash/FlashX含む)とGLM-4.6V-Flash(ビジョン)をサポート
|
|
462
|
+
- **Kimi**: Kimi K2.5(`kimi-k2.5`、ビジョン対応)をサポート
|
|
424
463
|
|
|
425
464
|
## ライセンス
|
|
426
465
|
|
package/README.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|
|
|
5
|
-
Chat and LLM API integration library for AITuber OnAir. This package provides a unified interface for interacting with various AI chat providers including OpenAI, Claude, Gemini, OpenRouter,
|
|
5
|
+
Chat and LLM API integration library for AITuber OnAir. This package provides a unified interface for interacting with various AI chat providers including OpenAI, Claude, Gemini, OpenRouter, Z.ai, and Kimi.
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
|
-
- 🤖 **Multiple AI Provider Support**: OpenAI, Claude (Anthropic), Google Gemini, OpenRouter,
|
|
9
|
+
- 🤖 **Multiple AI Provider Support**: OpenAI, Claude (Anthropic), Google Gemini, OpenRouter, Z.ai, and Kimi
|
|
10
10
|
- 🔄 **Unified Interface**: Consistent API across different providers
|
|
11
11
|
- 🛠️ **Tool/Function Calling**: Support for AI function calling with automatic iteration
|
|
12
12
|
- 💬 **Streaming Responses**: Real-time streaming chat responses
|
|
@@ -150,7 +150,7 @@ const openaiService = ChatServiceFactory.createChatService('openai', {
|
|
|
150
150
|
```typescript
|
|
151
151
|
const claudeService = ChatServiceFactory.createChatService('claude', {
|
|
152
152
|
apiKey: process.env.ANTHROPIC_API_KEY,
|
|
153
|
-
model: 'claude-
|
|
153
|
+
model: 'claude-opus-4-6'
|
|
154
154
|
});
|
|
155
155
|
```
|
|
156
156
|
|
|
@@ -179,7 +179,15 @@ const openRouterService = ChatServiceFactory.createChatService('openrouter', {
|
|
|
179
179
|
- Token limits are automatically disabled for the `gpt-oss-20b:free` model due to technical limitations
|
|
180
180
|
- To control response length, include instructions in your prompt (e.g., "Please respond in 40 characters or less")
|
|
181
181
|
- Free tier has rate limits (20 requests/minute)
|
|
182
|
-
-
|
|
182
|
+
- Supported models (curated list):
|
|
183
|
+
- `openai/gpt-oss-20b:free`
|
|
184
|
+
- `openai/gpt-5.1-chat`, `openai/gpt-5.1-codex`, `openai/gpt-5-mini`, `openai/gpt-5-nano`
|
|
185
|
+
- `openai/gpt-4o`, `openai/gpt-4.1-mini`, `openai/gpt-4.1-nano`
|
|
186
|
+
- `anthropic/claude-opus-4`, `anthropic/claude-sonnet-4`
|
|
187
|
+
- `anthropic/claude-3.7-sonnet`, `anthropic/claude-3.5-sonnet`, `anthropic/claude-haiku-4.5`
|
|
188
|
+
- `google/gemini-2.5-pro`, `google/gemini-2.5-flash`, `google/gemini-2.5-flash-lite-preview-09-2025`
|
|
189
|
+
- `z-ai/glm-4.7-flash`, `z-ai/glm-4.5-air`, `z-ai/glm-4.5-air:free`
|
|
190
|
+
- `moonshotai/kimi-k2.5`
|
|
183
191
|
|
|
184
192
|
#### Z.ai (GLM)
|
|
185
193
|
|
|
@@ -196,6 +204,36 @@ Notes:
|
|
|
196
204
|
- Z.ai uses OpenAI-compatible Chat Completions.
|
|
197
205
|
- `thinking` is disabled by default to match fast response behavior.
|
|
198
206
|
|
|
207
|
+
#### Kimi (Moonshot)
|
|
208
|
+
|
|
209
|
+
```typescript
|
|
210
|
+
const kimiService = ChatServiceFactory.createChatService('kimi', {
|
|
211
|
+
apiKey: process.env.MOONSHOT_API_KEY,
|
|
212
|
+
model: 'kimi-k2.5',
|
|
213
|
+
// Optional: override endpoint or baseUrl
|
|
214
|
+
// endpoint: 'https://api.moonshot.ai/v1/chat/completions',
|
|
215
|
+
// baseUrl: 'https://api.moonshot.ai/v1',
|
|
216
|
+
thinking: { type: 'enabled' }
|
|
217
|
+
});
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Notes:
|
|
221
|
+
- Kimi uses OpenAI-compatible Chat Completions.
|
|
222
|
+
- When tools are enabled, `thinking` is forced to `{ type: 'disabled' }`.
|
|
223
|
+
|
|
224
|
+
Self-hosted example:
|
|
225
|
+
|
|
226
|
+
```typescript
|
|
227
|
+
const kimiService = ChatServiceFactory.createChatService('kimi', {
|
|
228
|
+
apiKey: process.env.MOONSHOT_API_KEY,
|
|
229
|
+
baseUrl: 'http://localhost:8000/v1',
|
|
230
|
+
thinking: { type: 'disabled' }
|
|
231
|
+
});
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Notes for self-hosted:
|
|
235
|
+
- Self-hosted endpoints use `chat_template_kwargs` for thinking controls.
|
|
236
|
+
|
|
199
237
|
### Vision Chat
|
|
200
238
|
|
|
201
239
|
```typescript
|
|
@@ -418,9 +456,10 @@ Currently, the following AI providers are built-in:
|
|
|
418
456
|
|
|
419
457
|
- **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
|
|
420
458
|
- **Gemini**: Supports models like Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.5 Flash Lite Preview, Gemini 2.0 Flash, Gemini 2.0 Flash-Lite
|
|
421
|
-
- **Claude**: Supports models like 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
|
|
422
|
-
- **OpenRouter**: Supports
|
|
459
|
+
- **Claude**: Supports models like 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
|
|
460
|
+
- **OpenRouter**: Supports a curated OpenRouter model list (OpenAI/Claude/Gemini/Z.ai/Kimi). See the OpenRouter section for model IDs.
|
|
423
461
|
- **Z.ai**: Supports GLM-4.7 (including Flash/FlashX) and GLM-4.6V-Flash (vision)
|
|
462
|
+
- **Kimi**: Supports Kimi K2.5 (`kimi-k2.5`) with vision support
|
|
424
463
|
|
|
425
464
|
## License
|
|
426
465
|
|
|
@@ -8,5 +8,6 @@ export declare const MODEL_CLAUDE_4_OPUS = "claude-4-opus-20250514";
|
|
|
8
8
|
export declare const MODEL_CLAUDE_4_5_SONNET = "claude-sonnet-4-5-20250929";
|
|
9
9
|
export declare const MODEL_CLAUDE_4_5_HAIKU = "claude-haiku-4-5-20251001";
|
|
10
10
|
export declare const MODEL_CLAUDE_4_5_OPUS = "claude-opus-4-5-20251101";
|
|
11
|
+
export declare const MODEL_CLAUDE_4_6_OPUS = "claude-opus-4-6";
|
|
11
12
|
export declare const CLAUDE_VISION_SUPPORTED_MODELS: string[];
|
|
12
13
|
//# sourceMappingURL=claude.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/constants/claude.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,0CAA0C,CAAC;AAG3E,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAC9D,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAClE,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AACpE,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AACpE,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAChE,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAC5D,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AACpE,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAClE,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/constants/claude.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,0CAA0C,CAAC;AAG3E,eAAO,MAAM,oBAAoB,4BAA4B,CAAC;AAC9D,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAClE,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AACpE,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AACpE,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAChE,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAC5D,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AACpE,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAClE,eAAO,MAAM,qBAAqB,6BAA6B,CAAC;AAChE,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD,eAAO,MAAM,8BAA8B,UAW1C,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CLAUDE_VISION_SUPPORTED_MODELS = exports.MODEL_CLAUDE_4_5_OPUS = exports.MODEL_CLAUDE_4_5_HAIKU = exports.MODEL_CLAUDE_4_5_SONNET = exports.MODEL_CLAUDE_4_OPUS = exports.MODEL_CLAUDE_4_SONNET = exports.MODEL_CLAUDE_3_7_SONNET = exports.MODEL_CLAUDE_3_5_SONNET = exports.MODEL_CLAUDE_3_5_HAIKU = exports.MODEL_CLAUDE_3_HAIKU = exports.ENDPOINT_CLAUDE_API = void 0;
|
|
3
|
+
exports.CLAUDE_VISION_SUPPORTED_MODELS = exports.MODEL_CLAUDE_4_6_OPUS = exports.MODEL_CLAUDE_4_5_OPUS = exports.MODEL_CLAUDE_4_5_HAIKU = exports.MODEL_CLAUDE_4_5_SONNET = exports.MODEL_CLAUDE_4_OPUS = exports.MODEL_CLAUDE_4_SONNET = exports.MODEL_CLAUDE_3_7_SONNET = exports.MODEL_CLAUDE_3_5_SONNET = exports.MODEL_CLAUDE_3_5_HAIKU = exports.MODEL_CLAUDE_3_HAIKU = exports.ENDPOINT_CLAUDE_API = void 0;
|
|
4
4
|
exports.ENDPOINT_CLAUDE_API = 'https://api.anthropic.com/v1/messages';
|
|
5
5
|
// claude model
|
|
6
6
|
exports.MODEL_CLAUDE_3_HAIKU = 'claude-3-haiku-20240307';
|
|
@@ -12,6 +12,7 @@ exports.MODEL_CLAUDE_4_OPUS = 'claude-4-opus-20250514';
|
|
|
12
12
|
exports.MODEL_CLAUDE_4_5_SONNET = 'claude-sonnet-4-5-20250929';
|
|
13
13
|
exports.MODEL_CLAUDE_4_5_HAIKU = 'claude-haiku-4-5-20251001';
|
|
14
14
|
exports.MODEL_CLAUDE_4_5_OPUS = 'claude-opus-4-5-20251101';
|
|
15
|
+
exports.MODEL_CLAUDE_4_6_OPUS = 'claude-opus-4-6';
|
|
15
16
|
exports.CLAUDE_VISION_SUPPORTED_MODELS = [
|
|
16
17
|
exports.MODEL_CLAUDE_3_HAIKU,
|
|
17
18
|
exports.MODEL_CLAUDE_3_5_HAIKU,
|
|
@@ -22,5 +23,6 @@ exports.CLAUDE_VISION_SUPPORTED_MODELS = [
|
|
|
22
23
|
exports.MODEL_CLAUDE_4_5_SONNET,
|
|
23
24
|
exports.MODEL_CLAUDE_4_5_HAIKU,
|
|
24
25
|
exports.MODEL_CLAUDE_4_5_OPUS,
|
|
26
|
+
exports.MODEL_CLAUDE_4_6_OPUS,
|
|
25
27
|
];
|
|
26
28
|
//# sourceMappingURL=claude.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/constants/claude.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG,uCAAuC,CAAC;AAE3E,eAAe;AACF,QAAA,oBAAoB,GAAG,yBAAyB,CAAC;AACjD,QAAA,sBAAsB,GAAG,2BAA2B,CAAC;AACrD,QAAA,uBAAuB,GAAG,4BAA4B,CAAC;AACvD,QAAA,uBAAuB,GAAG,4BAA4B,CAAC;AACvD,QAAA,qBAAqB,GAAG,0BAA0B,CAAC;AACnD,QAAA,mBAAmB,GAAG,wBAAwB,CAAC;AAC/C,QAAA,uBAAuB,GAAG,4BAA4B,CAAC;AACvD,QAAA,sBAAsB,GAAG,2BAA2B,CAAC;AACrD,QAAA,qBAAqB,GAAG,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../../src/constants/claude.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG,uCAAuC,CAAC;AAE3E,eAAe;AACF,QAAA,oBAAoB,GAAG,yBAAyB,CAAC;AACjD,QAAA,sBAAsB,GAAG,2BAA2B,CAAC;AACrD,QAAA,uBAAuB,GAAG,4BAA4B,CAAC;AACvD,QAAA,uBAAuB,GAAG,4BAA4B,CAAC;AACvD,QAAA,qBAAqB,GAAG,0BAA0B,CAAC;AACnD,QAAA,mBAAmB,GAAG,wBAAwB,CAAC;AAC/C,QAAA,uBAAuB,GAAG,4BAA4B,CAAC;AACvD,QAAA,sBAAsB,GAAG,2BAA2B,CAAC;AACrD,QAAA,qBAAqB,GAAG,0BAA0B,CAAC;AACnD,QAAA,qBAAqB,GAAG,iBAAiB,CAAC;AAE1C,QAAA,8BAA8B,GAAG;IAC5C,4BAAoB;IACpB,8BAAsB;IACtB,+BAAuB;IACvB,+BAAuB;IACvB,6BAAqB;IACrB,2BAAmB;IACnB,+BAAuB;IACvB,8BAAsB;IACtB,6BAAqB;IACrB,6BAAqB;CACtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
|
|
@@ -22,6 +22,7 @@ __exportStar(require("./gemini"), exports);
|
|
|
22
22
|
__exportStar(require("./claude"), exports);
|
|
23
23
|
__exportStar(require("./openrouter"), exports);
|
|
24
24
|
__exportStar(require("./zai"), exports);
|
|
25
|
+
__exportStar(require("./kimi"), exports);
|
|
25
26
|
__exportStar(require("./chat"), exports);
|
|
26
27
|
__exportStar(require("./prompts"), exports);
|
|
27
28
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,+CAA6B;AAC7B,wCAAsB;AACtB,yCAAuB;AACvB,4CAA0B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,2CAAyB;AACzB,2CAAyB;AACzB,2CAAyB;AACzB,+CAA6B;AAC7B,wCAAsB;AACtB,yCAAuB;AACvB,yCAAuB;AACvB,4CAA0B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const ENDPOINT_KIMI_CHAT_COMPLETIONS_API = "https://api.moonshot.ai/v1/chat/completions";
|
|
2
|
+
export declare const MODEL_KIMI_K2_5 = "kimi-k2.5";
|
|
3
|
+
export declare const KIMI_VISION_SUPPORTED_MODELS: string[];
|
|
4
|
+
/**
|
|
5
|
+
* Check if a model supports vision capabilities
|
|
6
|
+
*/
|
|
7
|
+
export declare function isKimiVisionModel(model: string): boolean;
|
|
8
|
+
//# sourceMappingURL=kimi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kimi.d.ts","sourceRoot":"","sources":["../../../src/constants/kimi.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kCAAkC,gDACA,CAAC;AAGhD,eAAO,MAAM,eAAe,cAAc,CAAC;AAG3C,eAAO,MAAM,4BAA4B,UAAoB,CAAC;AAE9D;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAExD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.KIMI_VISION_SUPPORTED_MODELS = exports.MODEL_KIMI_K2_5 = exports.ENDPOINT_KIMI_CHAT_COMPLETIONS_API = void 0;
|
|
4
|
+
exports.isKimiVisionModel = isKimiVisionModel;
|
|
5
|
+
exports.ENDPOINT_KIMI_CHAT_COMPLETIONS_API = 'https://api.moonshot.ai/v1/chat/completions';
|
|
6
|
+
// Kimi models
|
|
7
|
+
exports.MODEL_KIMI_K2_5 = 'kimi-k2.5';
|
|
8
|
+
// Vision support for models
|
|
9
|
+
exports.KIMI_VISION_SUPPORTED_MODELS = [exports.MODEL_KIMI_K2_5];
|
|
10
|
+
/**
|
|
11
|
+
* Check if a model supports vision capabilities
|
|
12
|
+
*/
|
|
13
|
+
function isKimiVisionModel(model) {
|
|
14
|
+
return exports.KIMI_VISION_SUPPORTED_MODELS.includes(model);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=kimi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kimi.js","sourceRoot":"","sources":["../../../src/constants/kimi.ts"],"names":[],"mappings":";;;AAYA,8CAEC;AAdY,QAAA,kCAAkC,GAC7C,6CAA6C,CAAC;AAEhD,cAAc;AACD,QAAA,eAAe,GAAG,WAAW,CAAC;AAE3C,4BAA4B;AACf,QAAA,4BAA4B,GAAG,CAAC,uBAAe,CAAC,CAAC;AAE9D;;GAEG;AACH,SAAgB,iBAAiB,CAAC,KAAa;IAC7C,OAAO,oCAA4B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC"}
|
|
@@ -1,7 +1,26 @@
|
|
|
1
1
|
export declare const ENDPOINT_OPENROUTER_API = "https://openrouter.ai/api/v1/chat/completions";
|
|
2
2
|
export declare const MODEL_GPT_OSS_20B_FREE = "openai/gpt-oss-20b:free";
|
|
3
|
+
export declare const MODEL_MOONSHOTAI_KIMI_K2_5 = "moonshotai/kimi-k2.5";
|
|
4
|
+
export declare const MODEL_OPENAI_GPT_5_1_CHAT = "openai/gpt-5.1-chat";
|
|
5
|
+
export declare const MODEL_OPENAI_GPT_5_1_CODEX = "openai/gpt-5.1-codex";
|
|
6
|
+
export declare const MODEL_OPENAI_GPT_5_MINI = "openai/gpt-5-mini";
|
|
7
|
+
export declare const MODEL_OPENAI_GPT_5_NANO = "openai/gpt-5-nano";
|
|
8
|
+
export declare const MODEL_OPENAI_GPT_4O = "openai/gpt-4o";
|
|
9
|
+
export declare const MODEL_OPENAI_GPT_4_1_MINI = "openai/gpt-4.1-mini";
|
|
10
|
+
export declare const MODEL_OPENAI_GPT_4_1_NANO = "openai/gpt-4.1-nano";
|
|
11
|
+
export declare const MODEL_ANTHROPIC_CLAUDE_OPUS_4 = "anthropic/claude-opus-4";
|
|
12
|
+
export declare const MODEL_ANTHROPIC_CLAUDE_SONNET_4 = "anthropic/claude-sonnet-4";
|
|
13
|
+
export declare const MODEL_ANTHROPIC_CLAUDE_3_7_SONNET = "anthropic/claude-3.7-sonnet";
|
|
14
|
+
export declare const MODEL_ANTHROPIC_CLAUDE_3_5_SONNET = "anthropic/claude-3.5-sonnet";
|
|
15
|
+
export declare const MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU = "anthropic/claude-haiku-4.5";
|
|
16
|
+
export declare const MODEL_GOOGLE_GEMINI_2_5_PRO = "google/gemini-2.5-pro";
|
|
17
|
+
export declare const MODEL_GOOGLE_GEMINI_2_5_FLASH = "google/gemini-2.5-flash";
|
|
18
|
+
export declare const MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = "google/gemini-2.5-flash-lite-preview-09-2025";
|
|
19
|
+
export declare const MODEL_ZAI_GLM_4_7_FLASH = "z-ai/glm-4.7-flash";
|
|
20
|
+
export declare const MODEL_ZAI_GLM_4_5_AIR = "z-ai/glm-4.5-air";
|
|
21
|
+
export declare const MODEL_ZAI_GLM_4_5_AIR_FREE = "z-ai/glm-4.5-air:free";
|
|
3
22
|
export declare const OPENROUTER_FREE_MODELS: string[];
|
|
4
|
-
export declare const OPENROUTER_VISION_SUPPORTED_MODELS:
|
|
23
|
+
export declare const OPENROUTER_VISION_SUPPORTED_MODELS: string[];
|
|
5
24
|
export declare const OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE = 20;
|
|
6
25
|
export declare const OPENROUTER_FREE_DAILY_LIMIT_LOW_CREDITS = 50;
|
|
7
26
|
export declare const OPENROUTER_FREE_DAILY_LIMIT_HIGH_CREDITS = 1000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/constants/openrouter.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,kDACa,CAAC;AAGlD,eAAO,MAAM,sBAAsB,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"openrouter.d.ts","sourceRoot":"","sources":["../../../src/constants/openrouter.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,kDACa,CAAC;AAGlD,eAAO,MAAM,sBAAsB,4BAA4B,CAAC;AAChE,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AACjE,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAC/D,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AACjE,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AACnD,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAC/D,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAC/D,eAAO,MAAM,6BAA6B,4BAA4B,CAAC;AACvE,eAAO,MAAM,+BAA+B,8BAA8B,CAAC;AAC3E,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAC/E,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAC/E,eAAO,MAAM,gCAAgC,+BAA+B,CAAC;AAC7E,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AACnE,eAAO,MAAM,6BAA6B,4BAA4B,CAAC;AACvE,eAAO,MAAM,kDAAkD,iDACf,CAAC;AACjD,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAC5D,eAAO,MAAM,qBAAqB,qBAAqB,CAAC;AACxD,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAGlE,eAAO,MAAM,sBAAsB,UAGlC,CAAC;AAGF,eAAO,MAAM,kCAAkC,UAgB9C,CAAC;AAGF,eAAO,MAAM,qCAAqC,KAAK,CAAC;AACxD,eAAO,MAAM,uCAAuC,KAAK,CAAC;AAC1D,eAAO,MAAM,wCAAwC,OAAO,CAAC;AAC7D,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAI9D"}
|
|
@@ -1,15 +1,53 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OPENROUTER_CREDITS_THRESHOLD = exports.OPENROUTER_FREE_DAILY_LIMIT_HIGH_CREDITS = exports.OPENROUTER_FREE_DAILY_LIMIT_LOW_CREDITS = exports.OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE = exports.OPENROUTER_VISION_SUPPORTED_MODELS = exports.OPENROUTER_FREE_MODELS = exports.MODEL_GPT_OSS_20B_FREE = exports.ENDPOINT_OPENROUTER_API = void 0;
|
|
3
|
+
exports.OPENROUTER_CREDITS_THRESHOLD = exports.OPENROUTER_FREE_DAILY_LIMIT_HIGH_CREDITS = exports.OPENROUTER_FREE_DAILY_LIMIT_LOW_CREDITS = exports.OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE = exports.OPENROUTER_VISION_SUPPORTED_MODELS = exports.OPENROUTER_FREE_MODELS = exports.MODEL_ZAI_GLM_4_5_AIR_FREE = exports.MODEL_ZAI_GLM_4_5_AIR = exports.MODEL_ZAI_GLM_4_7_FLASH = exports.MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = exports.MODEL_GOOGLE_GEMINI_2_5_FLASH = exports.MODEL_GOOGLE_GEMINI_2_5_PRO = exports.MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU = exports.MODEL_ANTHROPIC_CLAUDE_3_5_SONNET = exports.MODEL_ANTHROPIC_CLAUDE_3_7_SONNET = exports.MODEL_ANTHROPIC_CLAUDE_SONNET_4 = exports.MODEL_ANTHROPIC_CLAUDE_OPUS_4 = exports.MODEL_OPENAI_GPT_4_1_NANO = exports.MODEL_OPENAI_GPT_4_1_MINI = exports.MODEL_OPENAI_GPT_4O = exports.MODEL_OPENAI_GPT_5_NANO = exports.MODEL_OPENAI_GPT_5_MINI = exports.MODEL_OPENAI_GPT_5_1_CODEX = exports.MODEL_OPENAI_GPT_5_1_CHAT = exports.MODEL_MOONSHOTAI_KIMI_K2_5 = exports.MODEL_GPT_OSS_20B_FREE = exports.ENDPOINT_OPENROUTER_API = void 0;
|
|
4
4
|
exports.isOpenRouterFreeModel = isOpenRouterFreeModel;
|
|
5
5
|
exports.isOpenRouterVisionModel = isOpenRouterVisionModel;
|
|
6
6
|
exports.ENDPOINT_OPENROUTER_API = 'https://openrouter.ai/api/v1/chat/completions';
|
|
7
7
|
// OpenRouter models
|
|
8
8
|
exports.MODEL_GPT_OSS_20B_FREE = 'openai/gpt-oss-20b:free';
|
|
9
|
+
exports.MODEL_MOONSHOTAI_KIMI_K2_5 = 'moonshotai/kimi-k2.5';
|
|
10
|
+
exports.MODEL_OPENAI_GPT_5_1_CHAT = 'openai/gpt-5.1-chat';
|
|
11
|
+
exports.MODEL_OPENAI_GPT_5_1_CODEX = 'openai/gpt-5.1-codex';
|
|
12
|
+
exports.MODEL_OPENAI_GPT_5_MINI = 'openai/gpt-5-mini';
|
|
13
|
+
exports.MODEL_OPENAI_GPT_5_NANO = 'openai/gpt-5-nano';
|
|
14
|
+
exports.MODEL_OPENAI_GPT_4O = 'openai/gpt-4o';
|
|
15
|
+
exports.MODEL_OPENAI_GPT_4_1_MINI = 'openai/gpt-4.1-mini';
|
|
16
|
+
exports.MODEL_OPENAI_GPT_4_1_NANO = 'openai/gpt-4.1-nano';
|
|
17
|
+
exports.MODEL_ANTHROPIC_CLAUDE_OPUS_4 = 'anthropic/claude-opus-4';
|
|
18
|
+
exports.MODEL_ANTHROPIC_CLAUDE_SONNET_4 = 'anthropic/claude-sonnet-4';
|
|
19
|
+
exports.MODEL_ANTHROPIC_CLAUDE_3_7_SONNET = 'anthropic/claude-3.7-sonnet';
|
|
20
|
+
exports.MODEL_ANTHROPIC_CLAUDE_3_5_SONNET = 'anthropic/claude-3.5-sonnet';
|
|
21
|
+
exports.MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU = 'anthropic/claude-haiku-4.5';
|
|
22
|
+
exports.MODEL_GOOGLE_GEMINI_2_5_PRO = 'google/gemini-2.5-pro';
|
|
23
|
+
exports.MODEL_GOOGLE_GEMINI_2_5_FLASH = 'google/gemini-2.5-flash';
|
|
24
|
+
exports.MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = 'google/gemini-2.5-flash-lite-preview-09-2025';
|
|
25
|
+
exports.MODEL_ZAI_GLM_4_7_FLASH = 'z-ai/glm-4.7-flash';
|
|
26
|
+
exports.MODEL_ZAI_GLM_4_5_AIR = 'z-ai/glm-4.5-air';
|
|
27
|
+
exports.MODEL_ZAI_GLM_4_5_AIR_FREE = 'z-ai/glm-4.5-air:free';
|
|
9
28
|
// Free tier models
|
|
10
|
-
exports.OPENROUTER_FREE_MODELS = [
|
|
29
|
+
exports.OPENROUTER_FREE_MODELS = [
|
|
30
|
+
exports.MODEL_GPT_OSS_20B_FREE,
|
|
31
|
+
exports.MODEL_ZAI_GLM_4_5_AIR_FREE,
|
|
32
|
+
];
|
|
11
33
|
// Vision supported models on OpenRouter
|
|
12
|
-
exports.OPENROUTER_VISION_SUPPORTED_MODELS = [
|
|
34
|
+
exports.OPENROUTER_VISION_SUPPORTED_MODELS = [
|
|
35
|
+
exports.MODEL_OPENAI_GPT_5_1_CHAT,
|
|
36
|
+
exports.MODEL_OPENAI_GPT_5_1_CODEX,
|
|
37
|
+
exports.MODEL_OPENAI_GPT_5_MINI,
|
|
38
|
+
exports.MODEL_OPENAI_GPT_5_NANO,
|
|
39
|
+
exports.MODEL_OPENAI_GPT_4O,
|
|
40
|
+
exports.MODEL_OPENAI_GPT_4_1_MINI,
|
|
41
|
+
exports.MODEL_OPENAI_GPT_4_1_NANO,
|
|
42
|
+
exports.MODEL_ANTHROPIC_CLAUDE_OPUS_4,
|
|
43
|
+
exports.MODEL_ANTHROPIC_CLAUDE_SONNET_4,
|
|
44
|
+
exports.MODEL_ANTHROPIC_CLAUDE_3_7_SONNET,
|
|
45
|
+
exports.MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU,
|
|
46
|
+
exports.MODEL_GOOGLE_GEMINI_2_5_PRO,
|
|
47
|
+
exports.MODEL_GOOGLE_GEMINI_2_5_FLASH,
|
|
48
|
+
exports.MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025,
|
|
49
|
+
exports.MODEL_MOONSHOTAI_KIMI_K2_5,
|
|
50
|
+
];
|
|
13
51
|
// Rate limits for free tier
|
|
14
52
|
exports.OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE = 20;
|
|
15
53
|
exports.OPENROUTER_FREE_DAILY_LIMIT_LOW_CREDITS = 50;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/constants/openrouter.ts"],"names":[],"mappings":";;;
|
|
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,8BAAsB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AAC/E,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"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
export * from './types';
|
|
6
6
|
export type { ChatService } from './services/ChatService';
|
|
7
7
|
export { ChatServiceFactory } from './services/ChatServiceFactory';
|
|
8
|
-
export type { ChatServiceOptions, ChatServiceProvider, } from './services/providers/ChatServiceProvider';
|
|
8
|
+
export type { ChatServiceOptions, ChatServiceOptionsByProvider, ChatProviderName, OpenAIChatServiceOptions, OpenRouterChatServiceOptions, GeminiChatServiceOptions, ClaudeChatServiceOptions, ZAIChatServiceOptions, KimiChatServiceOptions, ChatServiceProvider, } from './services/providers/ChatServiceProvider';
|
|
9
9
|
export { OpenAIChatService } from './services/providers/openai/OpenAIChatService';
|
|
10
10
|
export { OpenAIChatServiceProvider } from './services/providers/openai/OpenAIChatServiceProvider';
|
|
11
11
|
export { GeminiChatService } from './services/providers/gemini/GeminiChatService';
|
|
@@ -16,6 +16,8 @@ export { OpenRouterChatService } from './services/providers/openrouter/OpenRoute
|
|
|
16
16
|
export { OpenRouterChatServiceProvider } from './services/providers/openrouter/OpenRouterChatServiceProvider';
|
|
17
17
|
export { ZAIChatService } from './services/providers/zai/ZAIChatService';
|
|
18
18
|
export { ZAIChatServiceProvider } from './services/providers/zai/ZAIChatServiceProvider';
|
|
19
|
+
export { KimiChatService } from './services/providers/kimi/KimiChatService';
|
|
20
|
+
export { KimiChatServiceProvider } from './services/providers/kimi/KimiChatServiceProvider';
|
|
19
21
|
export * from './constants';
|
|
20
22
|
export * from './utils';
|
|
21
23
|
export { installGASFetch } from './adapters/gasFetch';
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,SAAS,CAAC;AAGxB,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,YAAY,EACV,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAGlG,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAGlG,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAGlG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAC9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,+DAA+D,CAAC;AAG9G,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAGzF,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,cAAc,SAAS,CAAC;AAGxB,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,YAAY,EACV,kBAAkB,EAClB,4BAA4B,EAC5B,gBAAgB,EAChB,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAGlG,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAGlG,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAGlG,OAAO,EAAE,qBAAqB,EAAE,MAAM,uDAAuD,CAAC;AAC9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,+DAA+D,CAAC;AAG9G,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAGzF,OAAO,EAAE,eAAe,EAAE,MAAM,2CAA2C,CAAC;AAC5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAG5F,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -18,7 +18,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
18
18
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
19
19
|
};
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.installGASFetch = exports.ZAIChatServiceProvider = exports.ZAIChatService = exports.OpenRouterChatServiceProvider = exports.OpenRouterChatService = exports.ClaudeChatServiceProvider = exports.ClaudeChatService = exports.GeminiChatServiceProvider = exports.GeminiChatService = exports.OpenAIChatServiceProvider = exports.OpenAIChatService = exports.ChatServiceFactory = void 0;
|
|
21
|
+
exports.installGASFetch = exports.KimiChatServiceProvider = exports.KimiChatService = exports.ZAIChatServiceProvider = exports.ZAIChatService = exports.OpenRouterChatServiceProvider = exports.OpenRouterChatService = exports.ClaudeChatServiceProvider = exports.ClaudeChatService = exports.GeminiChatServiceProvider = exports.GeminiChatService = exports.OpenAIChatServiceProvider = exports.OpenAIChatService = exports.ChatServiceFactory = void 0;
|
|
22
22
|
// Type definitions exports
|
|
23
23
|
__exportStar(require("./types"), exports);
|
|
24
24
|
var ChatServiceFactory_1 = require("./services/ChatServiceFactory");
|
|
@@ -48,6 +48,11 @@ var ZAIChatService_1 = require("./services/providers/zai/ZAIChatService");
|
|
|
48
48
|
Object.defineProperty(exports, "ZAIChatService", { enumerable: true, get: function () { return ZAIChatService_1.ZAIChatService; } });
|
|
49
49
|
var ZAIChatServiceProvider_1 = require("./services/providers/zai/ZAIChatServiceProvider");
|
|
50
50
|
Object.defineProperty(exports, "ZAIChatServiceProvider", { enumerable: true, get: function () { return ZAIChatServiceProvider_1.ZAIChatServiceProvider; } });
|
|
51
|
+
// Kimi provider exports
|
|
52
|
+
var KimiChatService_1 = require("./services/providers/kimi/KimiChatService");
|
|
53
|
+
Object.defineProperty(exports, "KimiChatService", { enumerable: true, get: function () { return KimiChatService_1.KimiChatService; } });
|
|
54
|
+
var KimiChatServiceProvider_1 = require("./services/providers/kimi/KimiChatServiceProvider");
|
|
55
|
+
Object.defineProperty(exports, "KimiChatServiceProvider", { enumerable: true, get: function () { return KimiChatServiceProvider_1.KimiChatServiceProvider; } });
|
|
51
56
|
// Constants exports
|
|
52
57
|
__exportStar(require("./constants"), exports);
|
|
53
58
|
// Utility exports
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,2BAA2B;AAC3B,0CAAwB;AAIxB,oEAAmE;AAA1D,wHAAA,kBAAkB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;AAEH,2BAA2B;AAC3B,0CAAwB;AAIxB,oEAAmE;AAA1D,wHAAA,kBAAkB,OAAA;AAgB3B,0BAA0B;AAC1B,mFAAkF;AAAzE,sHAAA,iBAAiB,OAAA;AAC1B,mGAAkG;AAAzF,sIAAA,yBAAyB,OAAA;AAElC,0BAA0B;AAC1B,mFAAkF;AAAzE,sHAAA,iBAAiB,OAAA;AAC1B,mGAAkG;AAAzF,sIAAA,yBAAyB,OAAA;AAElC,0BAA0B;AAC1B,mFAAkF;AAAzE,sHAAA,iBAAiB,OAAA;AAC1B,mGAAkG;AAAzF,sIAAA,yBAAyB,OAAA;AAElC,8BAA8B;AAC9B,+FAA8F;AAArF,8HAAA,qBAAqB,OAAA;AAC9B,+GAA8G;AAArG,8IAAA,6BAA6B,OAAA;AAEtC,wBAAwB;AACxB,0EAAyE;AAAhE,gHAAA,cAAc,OAAA;AACvB,0FAAyF;AAAhF,gIAAA,sBAAsB,OAAA;AAE/B,wBAAwB;AACxB,6EAA4E;AAAnE,kHAAA,eAAe,OAAA;AACxB,6FAA4F;AAAnF,kIAAA,uBAAuB,OAAA;AAEhC,oBAAoB;AACpB,8CAA4B;AAE5B,kBAAkB;AAClB,0CAAwB;AAExB,WAAW;AACX,gDAAsD;AAA7C,2GAAA,eAAe,OAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChatService } from './ChatService';
|
|
2
|
-
import {
|
|
2
|
+
import { ChatServiceOptionsByProvider, ChatProviderName, ChatServiceProvider } from './providers/ChatServiceProvider';
|
|
3
3
|
/**
|
|
4
4
|
* Chat service factory
|
|
5
5
|
* Manages and creates various AI providers
|
|
@@ -18,7 +18,7 @@ export declare class ChatServiceFactory {
|
|
|
18
18
|
* @param options Service options
|
|
19
19
|
* @returns Created ChatService instance
|
|
20
20
|
*/
|
|
21
|
-
static createChatService(providerName:
|
|
21
|
+
static createChatService<TProvider extends ChatProviderName>(providerName: TProvider, options: ChatServiceOptionsByProvider[TProvider]): ChatService;
|
|
22
22
|
/**
|
|
23
23
|
* Get registered providers
|
|
24
24
|
* @returns Provider map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatServiceFactory.d.ts","sourceRoot":"","sources":["../../../src/services/ChatServiceFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,
|
|
1
|
+
{"version":3,"file":"ChatServiceFactory.d.ts","sourceRoot":"","sources":["../../../src/services/ChatServiceFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAEL,4BAA4B,EAC5B,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAGzC;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,kCAAkC;IAClC,OAAO,CAAC,MAAM,CAAC,SAAS,CAA+C;IAEvE;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAI5D;;;;;OAKG;IACH,MAAM,CAAC,iBAAiB,CAAC,SAAS,SAAS,gBAAgB,EACzD,YAAY,EAAE,SAAS,EACvB,OAAO,EAAE,4BAA4B,CAAC,SAAS,CAAC,GAC/C,WAAW;IAYd;;;OAGG;IACH,MAAM,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC;IAIvD;;;OAGG;IACH,MAAM,CAAC,qBAAqB,IAAI,MAAM,EAAE;IAIxC;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE;CAI1D"}
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ChatServiceFactory = void 0;
|
|
4
|
-
const
|
|
5
|
-
const GeminiChatServiceProvider_1 = require("./providers/gemini/GeminiChatServiceProvider");
|
|
6
|
-
const ClaudeChatServiceProvider_1 = require("./providers/claude/ClaudeChatServiceProvider");
|
|
7
|
-
const OpenRouterChatServiceProvider_1 = require("./providers/openrouter/OpenRouterChatServiceProvider");
|
|
8
|
-
const ZAIChatServiceProvider_1 = require("./providers/zai/ZAIChatServiceProvider");
|
|
4
|
+
const providers_1 = require("./providers");
|
|
9
5
|
/**
|
|
10
6
|
* Chat service factory
|
|
11
7
|
* Manages and creates various AI providers
|
|
@@ -18,12 +14,6 @@ class ChatServiceFactory {
|
|
|
18
14
|
static registerProvider(provider) {
|
|
19
15
|
this.providers.set(provider.getProviderName(), provider);
|
|
20
16
|
}
|
|
21
|
-
/**
|
|
22
|
-
* Create a chat service with the specified provider name and options
|
|
23
|
-
* @param providerName Provider name
|
|
24
|
-
* @param options Service options
|
|
25
|
-
* @returns Created ChatService instance
|
|
26
|
-
*/
|
|
27
17
|
static createChatService(providerName, options) {
|
|
28
18
|
const provider = this.providers.get(providerName);
|
|
29
19
|
if (!provider) {
|
|
@@ -58,14 +48,5 @@ class ChatServiceFactory {
|
|
|
58
48
|
exports.ChatServiceFactory = ChatServiceFactory;
|
|
59
49
|
/** Map of registered providers */
|
|
60
50
|
ChatServiceFactory.providers = new Map();
|
|
61
|
-
|
|
62
|
-
ChatServiceFactory.registerProvider(new OpenAIChatServiceProvider_1.OpenAIChatServiceProvider());
|
|
63
|
-
// Register Gemini as a provider
|
|
64
|
-
ChatServiceFactory.registerProvider(new GeminiChatServiceProvider_1.GeminiChatServiceProvider());
|
|
65
|
-
// Register Claude as a provider
|
|
66
|
-
ChatServiceFactory.registerProvider(new ClaudeChatServiceProvider_1.ClaudeChatServiceProvider());
|
|
67
|
-
// Register OpenRouter as a provider
|
|
68
|
-
ChatServiceFactory.registerProvider(new OpenRouterChatServiceProvider_1.OpenRouterChatServiceProvider());
|
|
69
|
-
// Register Z.ai as a provider
|
|
70
|
-
ChatServiceFactory.registerProvider(new ZAIChatServiceProvider_1.ZAIChatServiceProvider());
|
|
51
|
+
providers_1.DEFAULT_CHAT_SERVICE_PROVIDERS.forEach((provider) => ChatServiceFactory.registerProvider(provider));
|
|
71
52
|
//# sourceMappingURL=ChatServiceFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatServiceFactory.js","sourceRoot":"","sources":["../../../src/services/ChatServiceFactory.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"ChatServiceFactory.js","sourceRoot":"","sources":["../../../src/services/ChatServiceFactory.ts"],"names":[],"mappings":";;;AAOA,2CAA6D;AAE7D;;;GAGG;AACH,MAAa,kBAAkB;IAI7B;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAA6B;QACnD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAYD,MAAM,CAAC,iBAAiB,CACtB,YAAoB,EACpB,OAA2B;QAE3B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,OAAO,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,YAAY;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,qBAAqB;QAC1B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,YAAoB;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAClD,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,CAAC;;AAzDH,gDA0DC;AAzDC,kCAAkC;AACnB,4BAAS,GAAqC,IAAI,GAAG,EAAE,CAAC;AA0DzE,0CAA8B,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAClD,kBAAkB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAC9C,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ChatService } from '../ChatService';
|
|
2
2
|
import { ChatResponseLength, GPT5PresetKey } from '../../constants/chat';
|
|
3
|
+
import { ToolDefinition, MCPServerConfig } from '../../types';
|
|
3
4
|
/**
|
|
4
5
|
* Options for chat service providers
|
|
5
6
|
*/
|
|
6
|
-
export interface
|
|
7
|
+
export interface BaseChatServiceOptions {
|
|
7
8
|
/** API Key */
|
|
8
9
|
apiKey: string;
|
|
9
10
|
/** Model name */
|
|
@@ -12,6 +13,8 @@ export interface ChatServiceOptions {
|
|
|
12
13
|
visionModel?: string;
|
|
13
14
|
/** API endpoint type (chat/completions or responses (OpenAI only)) */
|
|
14
15
|
endpoint?: string;
|
|
16
|
+
/** Base URL for OpenAI-compatible APIs (Kimi only) */
|
|
17
|
+
baseUrl?: string;
|
|
15
18
|
/** Response length setting */
|
|
16
19
|
responseLength?: ChatResponseLength;
|
|
17
20
|
/** Verbosity level for GPT-5 models (OpenAI only) */
|
|
@@ -33,25 +36,53 @@ export interface ChatServiceOptions {
|
|
|
33
36
|
type: 'text' | 'json_object' | 'json_schema';
|
|
34
37
|
json_schema?: any;
|
|
35
38
|
};
|
|
36
|
-
/** Thinking mode options (Z.ai only) */
|
|
39
|
+
/** Thinking mode options (Z.ai/Kimi only) */
|
|
37
40
|
thinking?: {
|
|
38
41
|
type: 'enabled' | 'disabled';
|
|
39
42
|
clear_thinking?: boolean;
|
|
40
43
|
};
|
|
41
|
-
/**
|
|
42
|
-
[
|
|
44
|
+
/** Tool definitions (OpenAI-compatible tools) */
|
|
45
|
+
tools?: ToolDefinition[];
|
|
43
46
|
}
|
|
47
|
+
type DisallowKeys<T, K extends keyof T> = Omit<T, K> & {
|
|
48
|
+
[P in K]?: never;
|
|
49
|
+
};
|
|
50
|
+
export type OpenAIChatServiceOptions = DisallowKeys<BaseChatServiceOptions, 'baseUrl' | 'thinking' | 'includeReasoning' | 'reasoningMaxTokens'> & {
|
|
51
|
+
mcpServers?: MCPServerConfig[];
|
|
52
|
+
};
|
|
53
|
+
export type OpenRouterChatServiceOptions = DisallowKeys<BaseChatServiceOptions, 'gpt5Preset' | 'gpt5EndpointPreference' | 'enableReasoningSummary' | 'verbosity' | 'baseUrl' | 'thinking' | 'responseFormat'> & {
|
|
54
|
+
appName?: string;
|
|
55
|
+
appUrl?: string;
|
|
56
|
+
};
|
|
57
|
+
export type GeminiChatServiceOptions = DisallowKeys<BaseChatServiceOptions, 'endpoint' | 'baseUrl' | 'verbosity' | 'reasoning_effort' | 'gpt5Preset' | 'gpt5EndpointPreference' | 'enableReasoningSummary' | 'includeReasoning' | 'reasoningMaxTokens' | 'responseFormat' | 'thinking'> & {
|
|
58
|
+
mcpServers?: MCPServerConfig[];
|
|
59
|
+
};
|
|
60
|
+
export type ClaudeChatServiceOptions = DisallowKeys<BaseChatServiceOptions, 'endpoint' | 'baseUrl' | 'verbosity' | 'reasoning_effort' | 'gpt5Preset' | 'gpt5EndpointPreference' | 'enableReasoningSummary' | 'includeReasoning' | 'reasoningMaxTokens' | 'responseFormat' | 'thinking'> & {
|
|
61
|
+
mcpServers?: MCPServerConfig[];
|
|
62
|
+
};
|
|
63
|
+
export type KimiChatServiceOptions = DisallowKeys<BaseChatServiceOptions, 'verbosity' | 'reasoning_effort' | 'gpt5Preset' | 'gpt5EndpointPreference' | 'enableReasoningSummary' | 'includeReasoning' | 'reasoningMaxTokens'>;
|
|
64
|
+
export type ZAIChatServiceOptions = DisallowKeys<BaseChatServiceOptions, 'verbosity' | 'reasoning_effort' | 'gpt5Preset' | 'gpt5EndpointPreference' | 'enableReasoningSummary' | 'includeReasoning' | 'reasoningMaxTokens' | 'baseUrl'>;
|
|
65
|
+
export type ChatServiceOptions<TExtra extends Record<string, unknown> = Record<string, unknown>> = BaseChatServiceOptions & TExtra;
|
|
66
|
+
export type ChatServiceOptionsByProvider = {
|
|
67
|
+
openai: OpenAIChatServiceOptions;
|
|
68
|
+
openrouter: OpenRouterChatServiceOptions;
|
|
69
|
+
gemini: GeminiChatServiceOptions;
|
|
70
|
+
claude: ClaudeChatServiceOptions;
|
|
71
|
+
zai: ZAIChatServiceOptions;
|
|
72
|
+
kimi: KimiChatServiceOptions;
|
|
73
|
+
};
|
|
74
|
+
export type ChatProviderName = keyof ChatServiceOptionsByProvider;
|
|
44
75
|
/**
|
|
45
76
|
* Chat service provider interface
|
|
46
77
|
* Abstraction for various AI API providers (OpenAI, Gemini, Claude, etc.)
|
|
47
78
|
*/
|
|
48
|
-
export interface ChatServiceProvider {
|
|
79
|
+
export interface ChatServiceProvider<TOptions extends BaseChatServiceOptions = BaseChatServiceOptions> {
|
|
49
80
|
/**
|
|
50
81
|
* Create a chat service instance
|
|
51
82
|
* @param options Service options
|
|
52
83
|
* @returns ChatService implementation
|
|
53
84
|
*/
|
|
54
|
-
createChatService(options:
|
|
85
|
+
createChatService(options: TOptions): ChatService;
|
|
55
86
|
/**
|
|
56
87
|
* Get the provider name
|
|
57
88
|
* @returns Provider name
|
|
@@ -73,4 +104,5 @@ export interface ChatServiceProvider {
|
|
|
73
104
|
*/
|
|
74
105
|
supportsVision(): boolean;
|
|
75
106
|
}
|
|
107
|
+
export {};
|
|
76
108
|
//# sourceMappingURL=ChatServiceProvider.d.ts.map
|