@aituber-onair/chat 0.22.0 → 0.24.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 +18 -2
- package/README.md +18 -2
- package/dist/cjs/constants/geminiNano.d.ts +6 -0
- package/dist/cjs/constants/geminiNano.d.ts.map +1 -0
- package/dist/cjs/constants/geminiNano.js +9 -0
- package/dist/cjs/constants/geminiNano.js.map +1 -0
- package/dist/cjs/constants/index.d.ts +2 -0
- package/dist/cjs/constants/index.d.ts.map +1 -1
- package/dist/cjs/constants/index.js +2 -0
- package/dist/cjs/constants/index.js.map +1 -1
- package/dist/cjs/constants/xai.d.ts +11 -0
- package/dist/cjs/constants/xai.d.ts.map +1 -0
- package/dist/cjs/constants/xai.js +24 -0
- package/dist/cjs/constants/xai.js.map +1 -0
- package/dist/cjs/index.d.ts +5 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +11 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/services/providers/ChatServiceProvider.d.ts +15 -0
- package/dist/cjs/services/providers/ChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatService.d.ts +37 -0
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatService.d.ts.map +1 -0
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatService.js +128 -0
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatService.js.map +1 -0
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatServiceProvider.d.ts +15 -0
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatServiceProvider.d.ts.map +1 -0
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatServiceProvider.js +35 -0
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatServiceProvider.js.map +1 -0
- package/dist/cjs/services/providers/index.d.ts +3 -1
- package/dist/cjs/services/providers/index.d.ts.map +1 -1
- package/dist/cjs/services/providers/index.js +4 -0
- package/dist/cjs/services/providers/index.js.map +1 -1
- package/dist/cjs/services/providers/xai/XAIChatService.d.ts +65 -0
- package/dist/cjs/services/providers/xai/XAIChatService.d.ts.map +1 -0
- package/dist/cjs/services/providers/xai/XAIChatService.js +150 -0
- package/dist/cjs/services/providers/xai/XAIChatService.js.map +1 -0
- package/dist/cjs/services/providers/xai/XAIChatServiceProvider.d.ts +38 -0
- package/dist/cjs/services/providers/xai/XAIChatServiceProvider.d.ts.map +1 -0
- package/dist/cjs/services/providers/xai/XAIChatServiceProvider.js +76 -0
- package/dist/cjs/services/providers/xai/XAIChatServiceProvider.js.map +1 -0
- package/dist/esm/constants/geminiNano.d.ts +6 -0
- package/dist/esm/constants/geminiNano.d.ts.map +1 -0
- package/dist/esm/constants/geminiNano.js +6 -0
- package/dist/esm/constants/geminiNano.js.map +1 -0
- package/dist/esm/constants/index.d.ts +2 -0
- package/dist/esm/constants/index.d.ts.map +1 -1
- package/dist/esm/constants/index.js +2 -0
- package/dist/esm/constants/index.js.map +1 -1
- package/dist/esm/constants/xai.d.ts +11 -0
- package/dist/esm/constants/xai.d.ts.map +1 -0
- package/dist/esm/constants/xai.js +20 -0
- package/dist/esm/constants/xai.js.map +1 -0
- package/dist/esm/index.d.ts +5 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/services/providers/ChatServiceProvider.d.ts +15 -0
- package/dist/esm/services/providers/ChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatService.d.ts +37 -0
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatService.d.ts.map +1 -0
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatService.js +124 -0
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatService.js.map +1 -0
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatServiceProvider.d.ts +15 -0
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatServiceProvider.d.ts.map +1 -0
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatServiceProvider.js +31 -0
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatServiceProvider.js.map +1 -0
- package/dist/esm/services/providers/index.d.ts +3 -1
- package/dist/esm/services/providers/index.d.ts.map +1 -1
- package/dist/esm/services/providers/index.js +4 -0
- package/dist/esm/services/providers/index.js.map +1 -1
- package/dist/esm/services/providers/xai/XAIChatService.d.ts +65 -0
- package/dist/esm/services/providers/xai/XAIChatService.d.ts.map +1 -0
- package/dist/esm/services/providers/xai/XAIChatService.js +146 -0
- package/dist/esm/services/providers/xai/XAIChatService.js.map +1 -0
- package/dist/esm/services/providers/xai/XAIChatServiceProvider.d.ts +38 -0
- package/dist/esm/services/providers/xai/XAIChatServiceProvider.d.ts.map +1 -0
- package/dist/esm/services/providers/xai/XAIChatServiceProvider.js +72 -0
- package/dist/esm/services/providers/xai/XAIChatServiceProvider.js.map +1 -0
- package/dist/umd/aituber-onair-chat.js +387 -0
- package/dist/umd/aituber-onair-chat.min.js +11 -6
- 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、ローカルLLM含むOpenAI互換プロバイダー、Claude、Gemini、OpenRouter、Z.ai、Kimi等の様々なAIチャットプロバイダーとやり取りするための統一されたインターフェースを提供します。
|
|
5
|
+
AITuber OnAirのチャット・LLM API統合ライブラリです。このパッケージは、OpenAI、ローカルLLM含むOpenAI互換プロバイダー、Claude、Gemini、OpenRouter、Z.ai、xAI、Kimi等の様々なAIチャットプロバイダーとやり取りするための統一されたインターフェースを提供します。
|
|
6
6
|
|
|
7
7
|
## 機能
|
|
8
8
|
|
|
9
|
-
- 🤖 **複数のAIプロバイダー対応**: OpenAI、ローカルLLM含むOpenAI互換プロバイダー、Claude (Anthropic)、Google Gemini、OpenRouter、Z.ai、Kimi
|
|
9
|
+
- 🤖 **複数のAIプロバイダー対応**: OpenAI、ローカルLLM含むOpenAI互換プロバイダー、Claude (Anthropic)、Google Gemini、OpenRouter、Z.ai、xAI、Kimi
|
|
10
10
|
- 🔄 **統一されたインターフェース**: 異なるプロバイダー間での一貫したAPI
|
|
11
11
|
- 🛠️ **ツール・関数呼び出し**: AI関数呼び出しの自動反復処理をサポート
|
|
12
12
|
- 💬 **ストリーミングレスポンス**: リアルタイムストリーミングチャット応答
|
|
@@ -337,6 +337,21 @@ const zaiService = ChatServiceFactory.createChatService('zai', {
|
|
|
337
337
|
- ビジョン対応モデル: `glm-4.6V`, `glm-4.6V-FlashX`, `glm-4.6V-Flash`
|
|
338
338
|
- `thinking` はデフォルトで無効化しています。
|
|
339
339
|
|
|
340
|
+
#### xAI(Grok)
|
|
341
|
+
|
|
342
|
+
```typescript
|
|
343
|
+
const xaiService = ChatServiceFactory.createChatService('xai', {
|
|
344
|
+
apiKey: process.env.XAI_API_KEY,
|
|
345
|
+
model: 'grok-4-1-fast-non-reasoning',
|
|
346
|
+
visionModel: 'grok-4-1-fast-non-reasoning', // 任意: xAI の全モデルがビジョン対応
|
|
347
|
+
});
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
注意:
|
|
351
|
+
- xAIはOpenAI互換のChat Completionsを利用します。
|
|
352
|
+
- 対応モデル: `grok-4.20-0309-reasoning`, `grok-4.20-0309-non-reasoning`, `grok-4-1-fast-reasoning`, `grok-4-1-fast-non-reasoning`
|
|
353
|
+
- すべての対応 xAI モデルでビジョンとツール・関数呼び出しを利用できます。
|
|
354
|
+
|
|
340
355
|
#### Kimi(Moonshot)
|
|
341
356
|
|
|
342
357
|
```typescript
|
|
@@ -647,6 +662,7 @@ console.log(modelLevel); // 'unknown'
|
|
|
647
662
|
- **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のモデルをサポート
|
|
648
663
|
- **OpenRouter**: OpenRouterのキュレーション済みモデル一覧(OpenAI/Claude/Gemini/Z.ai/Kimi)をサポート。モデルIDはOpenRouter節を参照してください
|
|
649
664
|
- **Z.ai**: GLM-5/GLM-5-Turbo(テキスト)、GLM-4.7/4.6(テキスト)、GLM-4.6V系(ビジョン)をサポート
|
|
665
|
+
- **xAI**: Grok 4.20 の Reasoning/Non-Reasoning と Grok 4-1 Fast の Reasoning/Non-Reasoning をサポートし、全モデルでビジョン対応
|
|
650
666
|
- **Kimi**: Kimi K2.5(`kimi-k2.5`、ビジョン対応)をサポート
|
|
651
667
|
|
|
652
668
|
## ライセンス
|
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, OpenAI-compatible, Claude, Gemini, OpenRouter, Z.ai, and Kimi.
|
|
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, OpenAI-compatible, Claude, Gemini, OpenRouter, Z.ai, xAI, and Kimi.
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
|
-
- 🤖 **Multiple AI Provider Support**: OpenAI, OpenAI-compatible, Claude (Anthropic), Google Gemini, OpenRouter, Z.ai, and Kimi
|
|
9
|
+
- 🤖 **Multiple AI Provider Support**: OpenAI, OpenAI-compatible, Claude (Anthropic), Google Gemini, OpenRouter, Z.ai, xAI, 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
|
|
@@ -333,6 +333,21 @@ Notes:
|
|
|
333
333
|
- Supported vision models: `glm-4.6V`, `glm-4.6V-FlashX`, `glm-4.6V-Flash`
|
|
334
334
|
- `thinking` is disabled by default to match fast response behavior.
|
|
335
335
|
|
|
336
|
+
#### xAI (Grok)
|
|
337
|
+
|
|
338
|
+
```typescript
|
|
339
|
+
const xaiService = ChatServiceFactory.createChatService('xai', {
|
|
340
|
+
apiKey: process.env.XAI_API_KEY,
|
|
341
|
+
model: 'grok-4-1-fast-non-reasoning',
|
|
342
|
+
visionModel: 'grok-4-1-fast-non-reasoning', // Optional: all xAI models support vision
|
|
343
|
+
});
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
Notes:
|
|
347
|
+
- xAI uses OpenAI-compatible Chat Completions.
|
|
348
|
+
- Supported models: `grok-4.20-0309-reasoning`, `grok-4.20-0309-non-reasoning`, `grok-4-1-fast-reasoning`, `grok-4-1-fast-non-reasoning`
|
|
349
|
+
- All supported xAI models support vision and tool/function calling.
|
|
350
|
+
|
|
336
351
|
#### Kimi (Moonshot)
|
|
337
352
|
|
|
338
353
|
```typescript
|
|
@@ -643,6 +658,7 @@ Currently, the following AI providers are built-in:
|
|
|
643
658
|
- **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
|
|
644
659
|
- **OpenRouter**: Supports a curated OpenRouter model list (OpenAI/Claude/Gemini/Z.ai/Kimi). See the OpenRouter section for model IDs.
|
|
645
660
|
- **Z.ai**: Supports GLM-5/GLM-5-Turbo (text), GLM-4.7/4.6 (text), and GLM-4.6V family (vision)
|
|
661
|
+
- **xAI**: Supports Grok 4.20 Reasoning/Non-Reasoning and Grok 4-1 Fast Reasoning/Non-Reasoning, all with vision support
|
|
646
662
|
- **Kimi**: Supports Kimi K2.5 (`kimi-k2.5`) with vision support
|
|
647
663
|
|
|
648
664
|
## License
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geminiNano.d.ts","sourceRoot":"","sources":["../../../src/constants/geminiNano.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,gBAAgB,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,gCAAgC,KAAK,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GEMINI_NANO_MAX_CONTEXT_MESSAGES = exports.MODEL_GEMINI_NANO = void 0;
|
|
4
|
+
exports.MODEL_GEMINI_NANO = 'gemini-nano';
|
|
5
|
+
/**
|
|
6
|
+
* Maximum number of messages to include in context history.
|
|
7
|
+
*/
|
|
8
|
+
exports.GEMINI_NANO_MAX_CONTEXT_MESSAGES = 20;
|
|
9
|
+
//# sourceMappingURL=geminiNano.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"geminiNano.js","sourceRoot":"","sources":["../../../src/constants/geminiNano.ts"],"names":[],"mappings":";;;AAAa,QAAA,iBAAiB,GAAG,aAAa,CAAC;AAE/C;;GAEG;AACU,QAAA,gCAAgC,GAAG,EAAE,CAAC"}
|
|
@@ -6,7 +6,9 @@ export * from './gemini';
|
|
|
6
6
|
export * from './claude';
|
|
7
7
|
export * from './openrouter';
|
|
8
8
|
export * from './zai';
|
|
9
|
+
export * from './xai';
|
|
9
10
|
export * from './kimi';
|
|
10
11
|
export * from './chat';
|
|
11
12
|
export * from './prompts';
|
|
13
|
+
export * from './geminiNano';
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,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,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC"}
|
|
@@ -22,7 +22,9 @@ __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("./xai"), exports);
|
|
25
26
|
__exportStar(require("./kimi"), exports);
|
|
26
27
|
__exportStar(require("./chat"), exports);
|
|
27
28
|
__exportStar(require("./prompts"), exports);
|
|
29
|
+
__exportStar(require("./geminiNano"), exports);
|
|
28
30
|
//# 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,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,wCAAsB;AACtB,yCAAuB;AACvB,yCAAuB;AACvB,4CAA0B;AAC1B,+CAA6B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const ENDPOINT_XAI_CHAT_COMPLETIONS_API = "https://api.x.ai/v1/chat/completions";
|
|
2
|
+
export declare const MODEL_GROK_4_20_REASONING = "grok-4.20-0309-reasoning";
|
|
3
|
+
export declare const MODEL_GROK_4_20_NON_REASONING = "grok-4.20-0309-non-reasoning";
|
|
4
|
+
export declare const MODEL_GROK_4_1_FAST_REASONING = "grok-4-1-fast-reasoning";
|
|
5
|
+
export declare const MODEL_GROK_4_1_FAST_NON_REASONING = "grok-4-1-fast-non-reasoning";
|
|
6
|
+
export declare const XAI_VISION_SUPPORTED_MODELS: string[];
|
|
7
|
+
/**
|
|
8
|
+
* Check if a model supports vision capabilities
|
|
9
|
+
*/
|
|
10
|
+
export declare function isXaiVisionModel(model: string): boolean;
|
|
11
|
+
//# sourceMappingURL=xai.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xai.d.ts","sourceRoot":"","sources":["../../../src/constants/xai.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,yCACN,CAAC;AAGzC,eAAO,MAAM,yBAAyB,6BAA6B,CAAC;AACpE,eAAO,MAAM,6BAA6B,iCAAiC,CAAC;AAC5E,eAAO,MAAM,6BAA6B,4BAA4B,CAAC;AACvE,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAG/E,eAAO,MAAM,2BAA2B,UAKvC,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvD"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XAI_VISION_SUPPORTED_MODELS = exports.MODEL_GROK_4_1_FAST_NON_REASONING = exports.MODEL_GROK_4_1_FAST_REASONING = exports.MODEL_GROK_4_20_NON_REASONING = exports.MODEL_GROK_4_20_REASONING = exports.ENDPOINT_XAI_CHAT_COMPLETIONS_API = void 0;
|
|
4
|
+
exports.isXaiVisionModel = isXaiVisionModel;
|
|
5
|
+
exports.ENDPOINT_XAI_CHAT_COMPLETIONS_API = 'https://api.x.ai/v1/chat/completions';
|
|
6
|
+
// xAI Grok models
|
|
7
|
+
exports.MODEL_GROK_4_20_REASONING = 'grok-4.20-0309-reasoning';
|
|
8
|
+
exports.MODEL_GROK_4_20_NON_REASONING = 'grok-4.20-0309-non-reasoning';
|
|
9
|
+
exports.MODEL_GROK_4_1_FAST_REASONING = 'grok-4-1-fast-reasoning';
|
|
10
|
+
exports.MODEL_GROK_4_1_FAST_NON_REASONING = 'grok-4-1-fast-non-reasoning';
|
|
11
|
+
// Vision support for models
|
|
12
|
+
exports.XAI_VISION_SUPPORTED_MODELS = [
|
|
13
|
+
exports.MODEL_GROK_4_20_REASONING,
|
|
14
|
+
exports.MODEL_GROK_4_20_NON_REASONING,
|
|
15
|
+
exports.MODEL_GROK_4_1_FAST_REASONING,
|
|
16
|
+
exports.MODEL_GROK_4_1_FAST_NON_REASONING,
|
|
17
|
+
];
|
|
18
|
+
/**
|
|
19
|
+
* Check if a model supports vision capabilities
|
|
20
|
+
*/
|
|
21
|
+
function isXaiVisionModel(model) {
|
|
22
|
+
return exports.XAI_VISION_SUPPORTED_MODELS.includes(model);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=xai.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xai.js","sourceRoot":"","sources":["../../../src/constants/xai.ts"],"names":[],"mappings":";;;AAoBA,4CAEC;AAtBY,QAAA,iCAAiC,GAC5C,sCAAsC,CAAC;AAEzC,kBAAkB;AACL,QAAA,yBAAyB,GAAG,0BAA0B,CAAC;AACvD,QAAA,6BAA6B,GAAG,8BAA8B,CAAC;AAC/D,QAAA,6BAA6B,GAAG,yBAAyB,CAAC;AAC1D,QAAA,iCAAiC,GAAG,6BAA6B,CAAC;AAE/E,4BAA4B;AACf,QAAA,2BAA2B,GAAG;IACzC,iCAAyB;IACzB,qCAA6B;IAC7B,qCAA6B;IAC7B,yCAAiC;CAClC,CAAC;AAEF;;GAEG;AACH,SAAgB,gBAAgB,CAAC,KAAa;IAC5C,OAAO,mCAA2B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrD,CAAC"}
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -5,18 +5,22 @@
|
|
|
5
5
|
export * from './types';
|
|
6
6
|
export type { ChatService } from './services/ChatService';
|
|
7
7
|
export { ChatServiceFactory } from './services/ChatServiceFactory';
|
|
8
|
-
export type { ChatServiceOptions, ChatServiceOptionsByProvider, ChatProviderName, OpenAIChatServiceOptions, OpenAICompatibleChatServiceOptions, OpenRouterChatServiceOptions, GeminiChatServiceOptions, ClaudeChatServiceOptions, ZAIChatServiceOptions, KimiChatServiceOptions, ChatServiceProvider, VisionSupportLevel, } from './services/providers/ChatServiceProvider';
|
|
8
|
+
export type { ChatServiceOptions, ChatServiceOptionsByProvider, ChatProviderName, OpenAIChatServiceOptions, OpenAICompatibleChatServiceOptions, OpenRouterChatServiceOptions, GeminiChatServiceOptions, GeminiNanoChatServiceOptions, ClaudeChatServiceOptions, ZAIChatServiceOptions, XAIChatServiceOptions, KimiChatServiceOptions, ChatServiceProvider, VisionSupportLevel, } 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 { OpenAICompatibleChatServiceProvider } from './services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider';
|
|
12
12
|
export { GeminiChatService } from './services/providers/gemini/GeminiChatService';
|
|
13
13
|
export { GeminiChatServiceProvider } from './services/providers/gemini/GeminiChatServiceProvider';
|
|
14
|
+
export { GeminiNanoChatService } from './services/providers/geminiNano/GeminiNanoChatService';
|
|
15
|
+
export { GeminiNanoChatServiceProvider } from './services/providers/geminiNano/GeminiNanoChatServiceProvider';
|
|
14
16
|
export { ClaudeChatService } from './services/providers/claude/ClaudeChatService';
|
|
15
17
|
export { ClaudeChatServiceProvider } from './services/providers/claude/ClaudeChatServiceProvider';
|
|
16
18
|
export { OpenRouterChatService } from './services/providers/openrouter/OpenRouterChatService';
|
|
17
19
|
export { OpenRouterChatServiceProvider } from './services/providers/openrouter/OpenRouterChatServiceProvider';
|
|
18
20
|
export { ZAIChatService } from './services/providers/zai/ZAIChatService';
|
|
19
21
|
export { ZAIChatServiceProvider } from './services/providers/zai/ZAIChatServiceProvider';
|
|
22
|
+
export { XAIChatService } from './services/providers/xai/XAIChatService';
|
|
23
|
+
export { XAIChatServiceProvider } from './services/providers/xai/XAIChatServiceProvider';
|
|
20
24
|
export { KimiChatService } from './services/providers/kimi/KimiChatService';
|
|
21
25
|
export { KimiChatServiceProvider } from './services/providers/kimi/KimiChatServiceProvider';
|
|
22
26
|
export * from './constants';
|
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,4BAA4B,EAC5B,gBAAgB,EAChB,wBAAwB,EACxB,kCAAkC,EAClC,4BAA4B,EAC5B,wBAAwB,EACxB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,mCAAmC,EAAE,MAAM,2EAA2E,CAAC;AAGhI,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"}
|
|
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,kCAAkC,EAClC,4BAA4B,EAC5B,wBAAwB,EACxB,4BAA4B,EAC5B,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAClG,OAAO,EAAE,mCAAmC,EAAE,MAAM,2EAA2E,CAAC;AAGhI,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,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,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.KimiChatServiceProvider = exports.KimiChatService = exports.ZAIChatServiceProvider = exports.ZAIChatService = exports.OpenRouterChatServiceProvider = exports.OpenRouterChatService = exports.ClaudeChatServiceProvider = exports.ClaudeChatService = exports.GeminiChatServiceProvider = exports.GeminiChatService = exports.OpenAICompatibleChatServiceProvider = exports.OpenAIChatServiceProvider = exports.OpenAIChatService = exports.ChatServiceFactory = void 0;
|
|
21
|
+
exports.installGASFetch = exports.KimiChatServiceProvider = exports.KimiChatService = exports.XAIChatServiceProvider = exports.XAIChatService = exports.ZAIChatServiceProvider = exports.ZAIChatService = exports.OpenRouterChatServiceProvider = exports.OpenRouterChatService = exports.ClaudeChatServiceProvider = exports.ClaudeChatService = exports.GeminiNanoChatServiceProvider = exports.GeminiNanoChatService = exports.GeminiChatServiceProvider = exports.GeminiChatService = exports.OpenAICompatibleChatServiceProvider = 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");
|
|
@@ -35,6 +35,11 @@ var GeminiChatService_1 = require("./services/providers/gemini/GeminiChatService
|
|
|
35
35
|
Object.defineProperty(exports, "GeminiChatService", { enumerable: true, get: function () { return GeminiChatService_1.GeminiChatService; } });
|
|
36
36
|
var GeminiChatServiceProvider_1 = require("./services/providers/gemini/GeminiChatServiceProvider");
|
|
37
37
|
Object.defineProperty(exports, "GeminiChatServiceProvider", { enumerable: true, get: function () { return GeminiChatServiceProvider_1.GeminiChatServiceProvider; } });
|
|
38
|
+
// Gemini Nano provider exports
|
|
39
|
+
var GeminiNanoChatService_1 = require("./services/providers/geminiNano/GeminiNanoChatService");
|
|
40
|
+
Object.defineProperty(exports, "GeminiNanoChatService", { enumerable: true, get: function () { return GeminiNanoChatService_1.GeminiNanoChatService; } });
|
|
41
|
+
var GeminiNanoChatServiceProvider_1 = require("./services/providers/geminiNano/GeminiNanoChatServiceProvider");
|
|
42
|
+
Object.defineProperty(exports, "GeminiNanoChatServiceProvider", { enumerable: true, get: function () { return GeminiNanoChatServiceProvider_1.GeminiNanoChatServiceProvider; } });
|
|
38
43
|
// Claude provider exports
|
|
39
44
|
var ClaudeChatService_1 = require("./services/providers/claude/ClaudeChatService");
|
|
40
45
|
Object.defineProperty(exports, "ClaudeChatService", { enumerable: true, get: function () { return ClaudeChatService_1.ClaudeChatService; } });
|
|
@@ -50,6 +55,11 @@ var ZAIChatService_1 = require("./services/providers/zai/ZAIChatService");
|
|
|
50
55
|
Object.defineProperty(exports, "ZAIChatService", { enumerable: true, get: function () { return ZAIChatService_1.ZAIChatService; } });
|
|
51
56
|
var ZAIChatServiceProvider_1 = require("./services/providers/zai/ZAIChatServiceProvider");
|
|
52
57
|
Object.defineProperty(exports, "ZAIChatServiceProvider", { enumerable: true, get: function () { return ZAIChatServiceProvider_1.ZAIChatServiceProvider; } });
|
|
58
|
+
// xAI provider exports
|
|
59
|
+
var XAIChatService_1 = require("./services/providers/xai/XAIChatService");
|
|
60
|
+
Object.defineProperty(exports, "XAIChatService", { enumerable: true, get: function () { return XAIChatService_1.XAIChatService; } });
|
|
61
|
+
var XAIChatServiceProvider_1 = require("./services/providers/xai/XAIChatServiceProvider");
|
|
62
|
+
Object.defineProperty(exports, "XAIChatServiceProvider", { enumerable: true, get: function () { return XAIChatServiceProvider_1.XAIChatServiceProvider; } });
|
|
53
63
|
// Kimi provider exports
|
|
54
64
|
var KimiChatService_1 = require("./services/providers/kimi/KimiChatService");
|
|
55
65
|
Object.defineProperty(exports, "KimiChatService", { enumerable: true, get: function () { return KimiChatService_1.KimiChatService; } });
|
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;AAoB3B,0BAA0B;AAC1B,mFAAkF;AAAzE,sHAAA,iBAAiB,OAAA;AAC1B,mGAAkG;AAAzF,sIAAA,yBAAyB,OAAA;AAClC,iIAAgI;AAAvH,0JAAA,mCAAmC,OAAA;AAE5C,0BAA0B;AAC1B,mFAAkF;AAAzE,sHAAA,iBAAiB,OAAA;AAC1B,mGAAkG;AAAzF,sIAAA,yBAAyB,OAAA;AAElC,+BAA+B;AAC/B,+FAA8F;AAArF,8HAAA,qBAAqB,OAAA;AAC9B,+GAA8G;AAArG,8IAAA,6BAA6B,OAAA;AAEtC,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,uBAAuB;AACvB,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"}
|
|
@@ -69,6 +69,19 @@ export type ClaudeChatServiceOptions = DisallowKeys<BaseChatServiceOptions, 'end
|
|
|
69
69
|
};
|
|
70
70
|
export type KimiChatServiceOptions = DisallowKeys<BaseChatServiceOptions, 'verbosity' | 'reasoning_effort' | 'gpt5Preset' | 'gpt5EndpointPreference' | 'enableReasoningSummary' | 'includeReasoning' | 'reasoningMaxTokens'>;
|
|
71
71
|
export type ZAIChatServiceOptions = DisallowKeys<BaseChatServiceOptions, 'verbosity' | 'reasoning_effort' | 'gpt5Preset' | 'gpt5EndpointPreference' | 'enableReasoningSummary' | 'includeReasoning' | 'reasoningMaxTokens' | 'baseUrl'>;
|
|
72
|
+
export type XAIChatServiceOptions = DisallowKeys<BaseChatServiceOptions, 'verbosity' | 'reasoning_effort' | 'gpt5Preset' | 'gpt5EndpointPreference' | 'enableReasoningSummary' | 'includeReasoning' | 'reasoningMaxTokens' | 'baseUrl' | 'thinking' | 'responseFormat'>;
|
|
73
|
+
export type GeminiNanoChatServiceOptions = {
|
|
74
|
+
/** API Key is not needed for Gemini Nano (browser built-in AI) */
|
|
75
|
+
apiKey?: never;
|
|
76
|
+
/** Model name (fixed to 'gemini-nano') */
|
|
77
|
+
model?: string;
|
|
78
|
+
/** Response length setting */
|
|
79
|
+
responseLength?: ChatResponseLength;
|
|
80
|
+
/** Expected input languages for the Prompt API (default: ['ja']) */
|
|
81
|
+
expectedInputLanguages?: string[];
|
|
82
|
+
/** Expected output languages for the Prompt API (default: ['ja']) */
|
|
83
|
+
expectedOutputLanguages?: string[];
|
|
84
|
+
};
|
|
72
85
|
export type ChatServiceOptions<TExtra extends Record<string, unknown> = Record<string, unknown>> = BaseChatServiceOptions & TExtra;
|
|
73
86
|
export type ChatServiceOptionsByProvider = {
|
|
74
87
|
openai: OpenAIChatServiceOptions;
|
|
@@ -77,7 +90,9 @@ export type ChatServiceOptionsByProvider = {
|
|
|
77
90
|
gemini: GeminiChatServiceOptions;
|
|
78
91
|
claude: ClaudeChatServiceOptions;
|
|
79
92
|
zai: ZAIChatServiceOptions;
|
|
93
|
+
xai: XAIChatServiceOptions;
|
|
80
94
|
kimi: KimiChatServiceOptions;
|
|
95
|
+
'gemini-nano': GeminiNanoChatServiceOptions;
|
|
81
96
|
};
|
|
82
97
|
export type ChatProviderName = keyof ChatServiceOptionsByProvider;
|
|
83
98
|
export type VisionSupportLevel = 'supported' | 'unsupported' | 'unknown';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../src/services/providers/ChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,qDAAqD;IACrD,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5E,2FAA2F;IAC3F,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,+IAA+I;IAC/I,sBAAsB,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IACvD,mGAAmG;IACnG,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,+FAA+F;IAC/F,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oDAAoD;IACpD,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,aAAa,CAAC;QAC7C,WAAW,CAAC,EAAE,GAAG,CAAC;KACnB,CAAC;IACF,6CAA6C;IAC7C,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;QAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,iDAAiD;IACjD,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;KACpD,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK;CACjB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,YAAY,CACjD,sBAAsB,EACtB,SAAS,GAAG,UAAU,GAAG,kBAAkB,GAAG,oBAAoB,CACnE,GAAG;IACF,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG,IAAI,CACnD,wBAAwB,EACxB,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,YAAY,CAC/C,GAAG;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,KAAK,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG,YAAY,CACrD,sBAAsB,EACpB,YAAY,GACZ,wBAAwB,GACxB,wBAAwB,GACxB,WAAW,GACX,SAAS,GACT,UAAU,GACV,gBAAgB,CACnB,GAAG;IACF,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,YAAY,CACjD,sBAAsB,EACpB,UAAU,GACV,SAAS,GACT,WAAW,GACX,kBAAkB,GAClB,YAAY,GACZ,wBAAwB,GACxB,wBAAwB,GACxB,kBAAkB,GAClB,oBAAoB,GACpB,gBAAgB,GAChB,UAAU,CACb,GAAG;IACF,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,YAAY,CACjD,sBAAsB,EACpB,UAAU,GACV,SAAS,GACT,WAAW,GACX,kBAAkB,GAClB,YAAY,GACZ,wBAAwB,GACxB,wBAAwB,GACxB,kBAAkB,GAClB,oBAAoB,GACpB,gBAAgB,GAChB,UAAU,CACb,GAAG;IACF,UAAU,CAAC,EAAE,eAAe,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,YAAY,CAC/C,sBAAsB,EACpB,WAAW,GACX,kBAAkB,GAClB,YAAY,GACZ,wBAAwB,GACxB,wBAAwB,GACxB,kBAAkB,GAClB,oBAAoB,CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,YAAY,CAC9C,sBAAsB,EACpB,WAAW,GACX,kBAAkB,GAClB,YAAY,GACZ,wBAAwB,GACxB,wBAAwB,GACxB,kBAAkB,GAClB,oBAAoB,GACpB,SAAS,CACZ,CAAC;AAEF,MAAM,MAAM,kBAAkB,CAC5B,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC9D,sBAAsB,GAAG,MAAM,CAAC;AAEpC,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,EAAE,wBAAwB,CAAC;IACjC,mBAAmB,EAAE,kCAAkC,CAAC;IACxD,UAAU,EAAE,4BAA4B,CAAC;IACzC,MAAM,EAAE,wBAAwB,CAAC;IACjC,MAAM,EAAE,wBAAwB,CAAC;IACjC,GAAG,EAAE,qBAAqB,CAAC;IAC3B,IAAI,EAAE,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../src/services/providers/ChatServiceProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ChatService } from '../../ChatService';
|
|
2
|
+
import { Message, MessageWithVision } from '../../../types';
|
|
3
|
+
import { ToolChatCompletion } from '../../../types/toolChat';
|
|
4
|
+
import type { GeminiNanoChatServiceOptions } from '../ChatServiceProvider';
|
|
5
|
+
/**
|
|
6
|
+
* Gemini Nano implementation of ChatService.
|
|
7
|
+
* Uses Chrome's built-in LanguageModel API (Prompt API, Chrome 138+).
|
|
8
|
+
* Runs entirely in the browser — no API key or network required.
|
|
9
|
+
*/
|
|
10
|
+
export declare class GeminiNanoChatService implements ChatService {
|
|
11
|
+
readonly provider: string;
|
|
12
|
+
private expectedInputLanguages;
|
|
13
|
+
private expectedOutputLanguages;
|
|
14
|
+
private _responseLength?;
|
|
15
|
+
constructor(options?: GeminiNanoChatServiceOptions);
|
|
16
|
+
getModel(): string;
|
|
17
|
+
getVisionModel(): string;
|
|
18
|
+
/**
|
|
19
|
+
* Process chat messages using Gemini Nano.
|
|
20
|
+
* Non-streaming: calls onPartialResponse once with the full response,
|
|
21
|
+
* then calls onCompleteResponse.
|
|
22
|
+
*/
|
|
23
|
+
processChat(messages: Message[], onPartialResponse: (text: string) => void, onCompleteResponse: (text: string) => Promise<void>): Promise<void>;
|
|
24
|
+
processVisionChat(_messages: MessageWithVision[], _onPartialResponse: (text: string) => void, _onCompleteResponse: (text: string) => Promise<void>): Promise<void>;
|
|
25
|
+
chatOnce(messages: Message[], _stream?: boolean, onPartialResponse?: (text: string) => void, _maxTokens?: number): Promise<ToolChatCompletion>;
|
|
26
|
+
visionChatOnce(_messages: MessageWithVision[], _stream?: boolean, _onPartialResponse?: (text: string) => void, _maxTokens?: number): Promise<ToolChatCompletion>;
|
|
27
|
+
/**
|
|
28
|
+
* Core logic: extract system prompt, manage session, call prompt().
|
|
29
|
+
*/
|
|
30
|
+
private generateResponse;
|
|
31
|
+
/**
|
|
32
|
+
* Create a new LanguageModel session with system prompt and context history.
|
|
33
|
+
* Context history (excluding the last user message) is embedded in the system prompt.
|
|
34
|
+
*/
|
|
35
|
+
private createSession;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=GeminiNanoChatService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeminiNanoChatService.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/geminiNano/GeminiNanoChatService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAM7D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAC;AA2B3E;;;;GAIG;AACH,qBAAa,qBAAsB,YAAW,WAAW;IACvD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAiB;IAE1C,OAAO,CAAC,sBAAsB,CAAW;IACzC,OAAO,CAAC,uBAAuB,CAAW;IAC1C,OAAO,CAAC,eAAe,CAAC,CAAqB;gBAEjC,OAAO,GAAE,4BAAiC;IAOtD,QAAQ,IAAI,MAAM;IAIlB,cAAc,IAAI,MAAM;IAIxB;;;;OAIG;IACG,WAAW,CACf,QAAQ,EAAE,OAAO,EAAE,EACnB,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EACzC,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAClD,OAAO,CAAC,IAAI,CAAC;IAMV,iBAAiB,CACrB,SAAS,EAAE,iBAAiB,EAAE,EAC9B,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC1C,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACnD,OAAO,CAAC,IAAI,CAAC;IAIV,QAAQ,CACZ,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,GAAE,OAAe,EACxB,iBAAiB,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAe,EACpD,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC;IAUxB,cAAc,CAClB,SAAS,EAAE,iBAAiB,EAAE,EAC9B,OAAO,GAAE,OAAe,EACxB,kBAAkB,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAe,EACrD,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,kBAAkB,CAAC;IAI9B;;OAEG;YACW,gBAAgB;IAqD9B;;;OAGG;YACW,aAAa;CA4B5B"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GeminiNanoChatService = void 0;
|
|
4
|
+
const geminiNano_1 = require("../../../constants/geminiNano");
|
|
5
|
+
/**
|
|
6
|
+
* Get the LanguageModel API from the global scope.
|
|
7
|
+
* Returns undefined in non-browser environments or unsupported browsers.
|
|
8
|
+
*/
|
|
9
|
+
function getLanguageModelAPI() {
|
|
10
|
+
if (typeof globalThis !== 'undefined' && 'LanguageModel' in globalThis) {
|
|
11
|
+
return globalThis.LanguageModel;
|
|
12
|
+
}
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Gemini Nano implementation of ChatService.
|
|
17
|
+
* Uses Chrome's built-in LanguageModel API (Prompt API, Chrome 138+).
|
|
18
|
+
* Runs entirely in the browser — no API key or network required.
|
|
19
|
+
*/
|
|
20
|
+
class GeminiNanoChatService {
|
|
21
|
+
constructor(options = {}) {
|
|
22
|
+
this.provider = 'gemini-nano';
|
|
23
|
+
this.expectedInputLanguages = options.expectedInputLanguages ?? ['ja'];
|
|
24
|
+
this.expectedOutputLanguages = options.expectedOutputLanguages ?? ['ja'];
|
|
25
|
+
this._responseLength = options.responseLength;
|
|
26
|
+
void this._responseLength;
|
|
27
|
+
}
|
|
28
|
+
getModel() {
|
|
29
|
+
return geminiNano_1.MODEL_GEMINI_NANO;
|
|
30
|
+
}
|
|
31
|
+
getVisionModel() {
|
|
32
|
+
return geminiNano_1.MODEL_GEMINI_NANO;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Process chat messages using Gemini Nano.
|
|
36
|
+
* Non-streaming: calls onPartialResponse once with the full response,
|
|
37
|
+
* then calls onCompleteResponse.
|
|
38
|
+
*/
|
|
39
|
+
async processChat(messages, onPartialResponse, onCompleteResponse) {
|
|
40
|
+
const response = await this.generateResponse(messages);
|
|
41
|
+
onPartialResponse(response);
|
|
42
|
+
await onCompleteResponse(response);
|
|
43
|
+
}
|
|
44
|
+
async processVisionChat(_messages, _onPartialResponse, _onCompleteResponse) {
|
|
45
|
+
throw new Error('Gemini Nano does not support vision capabilities.');
|
|
46
|
+
}
|
|
47
|
+
async chatOnce(messages, _stream = false, onPartialResponse = () => { }, _maxTokens) {
|
|
48
|
+
const response = await this.generateResponse(messages);
|
|
49
|
+
onPartialResponse(response);
|
|
50
|
+
return {
|
|
51
|
+
blocks: [{ type: 'text', text: response }],
|
|
52
|
+
stop_reason: 'end',
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
async visionChatOnce(_messages, _stream = false, _onPartialResponse = () => { }, _maxTokens) {
|
|
56
|
+
throw new Error('Gemini Nano does not support vision capabilities.');
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Core logic: extract system prompt, manage session, call prompt().
|
|
60
|
+
*/
|
|
61
|
+
async generateResponse(messages) {
|
|
62
|
+
const api = getLanguageModelAPI();
|
|
63
|
+
if (!api) {
|
|
64
|
+
throw new Error('Gemini Nano is not available in this environment. ' +
|
|
65
|
+
'Chrome 138+ with Prompt API enabled is required.');
|
|
66
|
+
}
|
|
67
|
+
const availability = await api.availability();
|
|
68
|
+
if (availability !== 'available' && availability !== 'downloadable') {
|
|
69
|
+
throw new Error('Gemini Nano Prompt API is not ready in this environment. ' +
|
|
70
|
+
`LanguageModel.availability() returned "${availability}". ` +
|
|
71
|
+
'Expected "available" or "downloadable".');
|
|
72
|
+
}
|
|
73
|
+
// Extract system prompt
|
|
74
|
+
const systemMessages = messages.filter((m) => m.role === 'system');
|
|
75
|
+
const systemPrompt = systemMessages.map((m) => m.content).join('\n');
|
|
76
|
+
// Get conversation messages (exclude system)
|
|
77
|
+
const conversationMessages = messages
|
|
78
|
+
.filter((m) => m.role !== 'system')
|
|
79
|
+
.slice(-geminiNano_1.GEMINI_NANO_MAX_CONTEXT_MESSAGES);
|
|
80
|
+
// Get the last user message to send via prompt()
|
|
81
|
+
const lastUserMessage = [...conversationMessages]
|
|
82
|
+
.reverse()
|
|
83
|
+
.find((m) => m.role === 'user');
|
|
84
|
+
if (!lastUserMessage) {
|
|
85
|
+
throw new Error('No user message found in the provided messages.');
|
|
86
|
+
}
|
|
87
|
+
const session = await this.createSession(api, systemPrompt, conversationMessages);
|
|
88
|
+
try {
|
|
89
|
+
return await session.prompt(lastUserMessage.content);
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
try {
|
|
93
|
+
session.destroy();
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// ignore
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Create a new LanguageModel session with system prompt and context history.
|
|
102
|
+
* Context history (excluding the last user message) is embedded in the system prompt.
|
|
103
|
+
*/
|
|
104
|
+
async createSession(api, systemPrompt, contextHistory) {
|
|
105
|
+
let prompt = systemPrompt;
|
|
106
|
+
// Embed conversation history into system prompt (exclude last user msg)
|
|
107
|
+
const historyMessages = contextHistory.slice(0, -1);
|
|
108
|
+
if (historyMessages.length > 0) {
|
|
109
|
+
const history = historyMessages
|
|
110
|
+
.map((m) => `${m.role === 'user' ? 'User' : 'Assistant'}: ${m.content}`)
|
|
111
|
+
.join('\n');
|
|
112
|
+
prompt +=
|
|
113
|
+
'\n\n以下はこれまでの会話履歴です。この文脈を踏まえて回答してください:\n' +
|
|
114
|
+
history;
|
|
115
|
+
}
|
|
116
|
+
return api.create({
|
|
117
|
+
systemPrompt: prompt,
|
|
118
|
+
expectedInputs: [
|
|
119
|
+
{ type: 'text', languages: this.expectedInputLanguages },
|
|
120
|
+
],
|
|
121
|
+
expectedOutputs: [
|
|
122
|
+
{ type: 'text', languages: this.expectedOutputLanguages },
|
|
123
|
+
],
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.GeminiNanoChatService = GeminiNanoChatService;
|
|
128
|
+
//# sourceMappingURL=GeminiNanoChatService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeminiNanoChatService.js","sourceRoot":"","sources":["../../../../../src/services/providers/geminiNano/GeminiNanoChatService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ChatService } from '../../ChatService';
|
|
2
|
+
import { GeminiNanoChatServiceOptions, ChatServiceProvider, VisionSupportLevel } from '../ChatServiceProvider';
|
|
3
|
+
/**
|
|
4
|
+
* Gemini Nano (Chrome built-in AI) provider implementation.
|
|
5
|
+
* No API key required — runs entirely in the browser.
|
|
6
|
+
*/
|
|
7
|
+
export declare class GeminiNanoChatServiceProvider implements ChatServiceProvider<GeminiNanoChatServiceOptions> {
|
|
8
|
+
createChatService(options: GeminiNanoChatServiceOptions): ChatService;
|
|
9
|
+
getProviderName(): string;
|
|
10
|
+
getSupportedModels(): string[];
|
|
11
|
+
getDefaultModel(): string;
|
|
12
|
+
supportsVision(): boolean;
|
|
13
|
+
getVisionSupportLevel(): VisionSupportLevel;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=GeminiNanoChatServiceProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeminiNanoChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/geminiNano/GeminiNanoChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAGhC;;;GAGG;AACH,qBAAa,6BACX,YAAW,mBAAmB,CAAC,4BAA4B,CAAC;IAE5D,iBAAiB,CAAC,OAAO,EAAE,4BAA4B,GAAG,WAAW;IAQrE,eAAe,IAAI,MAAM;IAIzB,kBAAkB,IAAI,MAAM,EAAE;IAI9B,eAAe,IAAI,MAAM;IAIzB,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,kBAAkB;CAG5C"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GeminiNanoChatServiceProvider = void 0;
|
|
4
|
+
const GeminiNanoChatService_1 = require("./GeminiNanoChatService");
|
|
5
|
+
const geminiNano_1 = require("../../../constants/geminiNano");
|
|
6
|
+
/**
|
|
7
|
+
* Gemini Nano (Chrome built-in AI) provider implementation.
|
|
8
|
+
* No API key required — runs entirely in the browser.
|
|
9
|
+
*/
|
|
10
|
+
class GeminiNanoChatServiceProvider {
|
|
11
|
+
createChatService(options) {
|
|
12
|
+
return new GeminiNanoChatService_1.GeminiNanoChatService({
|
|
13
|
+
expectedInputLanguages: options.expectedInputLanguages,
|
|
14
|
+
expectedOutputLanguages: options.expectedOutputLanguages,
|
|
15
|
+
responseLength: options.responseLength,
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
getProviderName() {
|
|
19
|
+
return 'gemini-nano';
|
|
20
|
+
}
|
|
21
|
+
getSupportedModels() {
|
|
22
|
+
return [geminiNano_1.MODEL_GEMINI_NANO];
|
|
23
|
+
}
|
|
24
|
+
getDefaultModel() {
|
|
25
|
+
return geminiNano_1.MODEL_GEMINI_NANO;
|
|
26
|
+
}
|
|
27
|
+
supportsVision() {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
getVisionSupportLevel() {
|
|
31
|
+
return 'unsupported';
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.GeminiNanoChatServiceProvider = GeminiNanoChatServiceProvider;
|
|
35
|
+
//# sourceMappingURL=GeminiNanoChatServiceProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GeminiNanoChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/geminiNano/GeminiNanoChatServiceProvider.ts"],"names":[],"mappings":";;;AACA,mEAAgE;AAMhE,8DAAkE;AAElE;;;GAGG;AACH,MAAa,6BAA6B;IAGxC,iBAAiB,CAAC,OAAqC;QACrD,OAAO,IAAI,6CAAqB,CAAC;YAC/B,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;YACtD,uBAAuB,EAAE,OAAO,CAAC,uBAAuB;YACxD,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;QACb,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,kBAAkB;QAChB,OAAO,CAAC,8BAAiB,CAAC,CAAC;IAC7B,CAAC;IAED,eAAe;QACb,OAAO,8BAAiB,CAAC;IAC3B,CAAC;IAED,cAAc;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qBAAqB;QACnB,OAAO,aAAa,CAAC;IACvB,CAAC;CACF;AA9BD,sEA8BC"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { ClaudeChatServiceProvider } from './claude/ClaudeChatServiceProvider';
|
|
2
2
|
import { GeminiChatServiceProvider } from './gemini/GeminiChatServiceProvider';
|
|
3
|
+
import { GeminiNanoChatServiceProvider } from './geminiNano/GeminiNanoChatServiceProvider';
|
|
3
4
|
import { KimiChatServiceProvider } from './kimi/KimiChatServiceProvider';
|
|
4
5
|
import { OpenAICompatibleChatServiceProvider } from './openaiCompatible/OpenAICompatibleChatServiceProvider';
|
|
5
6
|
import { OpenAIChatServiceProvider } from './openai/OpenAIChatServiceProvider';
|
|
6
7
|
import { OpenRouterChatServiceProvider } from './openrouter/OpenRouterChatServiceProvider';
|
|
8
|
+
import { XAIChatServiceProvider } from './xai/XAIChatServiceProvider';
|
|
7
9
|
import { ZAIChatServiceProvider } from './zai/ZAIChatServiceProvider';
|
|
8
|
-
export declare const DEFAULT_CHAT_SERVICE_PROVIDERS: (ClaudeChatServiceProvider | GeminiChatServiceProvider | KimiChatServiceProvider | OpenAICompatibleChatServiceProvider | OpenAIChatServiceProvider | OpenRouterChatServiceProvider | ZAIChatServiceProvider)[];
|
|
10
|
+
export declare const DEFAULT_CHAT_SERVICE_PROVIDERS: (ClaudeChatServiceProvider | GeminiChatServiceProvider | GeminiNanoChatServiceProvider | KimiChatServiceProvider | OpenAICompatibleChatServiceProvider | OpenAIChatServiceProvider | OpenRouterChatServiceProvider | XAIChatServiceProvider | ZAIChatServiceProvider)[];
|
|
9
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,mCAAmC,EAAE,MAAM,wDAAwD,CAAC;AAC7G,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,eAAO,MAAM,8BAA8B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AACzE,OAAO,EAAE,mCAAmC,EAAE,MAAM,wDAAwD,CAAC;AAC7G,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,eAAO,MAAM,8BAA8B,yQAU1C,CAAC"}
|
|
@@ -3,18 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.DEFAULT_CHAT_SERVICE_PROVIDERS = void 0;
|
|
4
4
|
const ClaudeChatServiceProvider_1 = require("./claude/ClaudeChatServiceProvider");
|
|
5
5
|
const GeminiChatServiceProvider_1 = require("./gemini/GeminiChatServiceProvider");
|
|
6
|
+
const GeminiNanoChatServiceProvider_1 = require("./geminiNano/GeminiNanoChatServiceProvider");
|
|
6
7
|
const KimiChatServiceProvider_1 = require("./kimi/KimiChatServiceProvider");
|
|
7
8
|
const OpenAICompatibleChatServiceProvider_1 = require("./openaiCompatible/OpenAICompatibleChatServiceProvider");
|
|
8
9
|
const OpenAIChatServiceProvider_1 = require("./openai/OpenAIChatServiceProvider");
|
|
9
10
|
const OpenRouterChatServiceProvider_1 = require("./openrouter/OpenRouterChatServiceProvider");
|
|
11
|
+
const XAIChatServiceProvider_1 = require("./xai/XAIChatServiceProvider");
|
|
10
12
|
const ZAIChatServiceProvider_1 = require("./zai/ZAIChatServiceProvider");
|
|
11
13
|
exports.DEFAULT_CHAT_SERVICE_PROVIDERS = [
|
|
12
14
|
new OpenAIChatServiceProvider_1.OpenAIChatServiceProvider(),
|
|
13
15
|
new OpenAICompatibleChatServiceProvider_1.OpenAICompatibleChatServiceProvider(),
|
|
14
16
|
new GeminiChatServiceProvider_1.GeminiChatServiceProvider(),
|
|
17
|
+
new GeminiNanoChatServiceProvider_1.GeminiNanoChatServiceProvider(),
|
|
15
18
|
new ClaudeChatServiceProvider_1.ClaudeChatServiceProvider(),
|
|
16
19
|
new OpenRouterChatServiceProvider_1.OpenRouterChatServiceProvider(),
|
|
17
20
|
new ZAIChatServiceProvider_1.ZAIChatServiceProvider(),
|
|
21
|
+
new XAIChatServiceProvider_1.XAIChatServiceProvider(),
|
|
18
22
|
new KimiChatServiceProvider_1.KimiChatServiceProvider(),
|
|
19
23
|
];
|
|
20
24
|
//# sourceMappingURL=index.js.map
|