@aituber-onair/chat 0.2.1 → 0.3.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.
Files changed (53) hide show
  1. package/README.ja.md +21 -2
  2. package/README.md +22 -3
  3. package/dist/cjs/constants/index.d.ts +1 -0
  4. package/dist/cjs/constants/index.d.ts.map +1 -1
  5. package/dist/cjs/constants/index.js +1 -0
  6. package/dist/cjs/constants/index.js.map +1 -1
  7. package/dist/cjs/constants/openrouter.d.ts +21 -0
  8. package/dist/cjs/constants/openrouter.d.ts.map +1 -0
  9. package/dist/cjs/constants/openrouter.js +34 -0
  10. package/dist/cjs/constants/openrouter.js.map +1 -0
  11. package/dist/cjs/index.d.ts +2 -0
  12. package/dist/cjs/index.d.ts.map +1 -1
  13. package/dist/cjs/index.js +6 -1
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/services/ChatServiceFactory.d.ts.map +1 -1
  16. package/dist/cjs/services/ChatServiceFactory.js +3 -0
  17. package/dist/cjs/services/ChatServiceFactory.js.map +1 -1
  18. package/dist/cjs/services/providers/ChatServiceProvider.d.ts +5 -1
  19. package/dist/cjs/services/providers/ChatServiceProvider.d.ts.map +1 -1
  20. package/dist/cjs/services/providers/openrouter/OpenRouterChatService.d.ts +108 -0
  21. package/dist/cjs/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -0
  22. package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js +397 -0
  23. package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js.map +1 -0
  24. package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts +53 -0
  25. package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -0
  26. package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js +89 -0
  27. package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -0
  28. package/dist/esm/constants/index.d.ts +1 -0
  29. package/dist/esm/constants/index.d.ts.map +1 -1
  30. package/dist/esm/constants/index.js +1 -0
  31. package/dist/esm/constants/index.js.map +1 -1
  32. package/dist/esm/constants/openrouter.d.ts +21 -0
  33. package/dist/esm/constants/openrouter.d.ts.map +1 -0
  34. package/dist/esm/constants/openrouter.js +29 -0
  35. package/dist/esm/constants/openrouter.js.map +1 -0
  36. package/dist/esm/index.d.ts +2 -0
  37. package/dist/esm/index.d.ts.map +1 -1
  38. package/dist/esm/index.js +3 -0
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/esm/services/ChatServiceFactory.d.ts.map +1 -1
  41. package/dist/esm/services/ChatServiceFactory.js +3 -0
  42. package/dist/esm/services/ChatServiceFactory.js.map +1 -1
  43. package/dist/esm/services/providers/ChatServiceProvider.d.ts +5 -1
  44. package/dist/esm/services/providers/ChatServiceProvider.d.ts.map +1 -1
  45. package/dist/esm/services/providers/openrouter/OpenRouterChatService.d.ts +108 -0
  46. package/dist/esm/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -0
  47. package/dist/esm/services/providers/openrouter/OpenRouterChatService.js +393 -0
  48. package/dist/esm/services/providers/openrouter/OpenRouterChatService.js.map +1 -0
  49. package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts +53 -0
  50. package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -0
  51. package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js +85 -0
  52. package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -0
  53. package/package.json +1 -1
package/README.ja.md CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  ![@aituber-onair/chat ロゴ](./images/aituber-onair-chat.png)
4
4
 
5
- AITuber OnAirのチャット・LLM API統合ライブラリです。このパッケージは、OpenAI、Claude、Gemini等の様々なAIチャットプロバイダーとやり取りするための統一されたインターフェースを提供します。
5
+ AITuber OnAirのチャット・LLM API統合ライブラリです。このパッケージは、OpenAI、Claude、Gemini、OpenRouter等の様々なAIチャットプロバイダーとやり取りするための統一されたインターフェースを提供します。
6
6
 
7
7
  ## 機能
8
8
 
9
- - 🤖 **複数のAIプロバイダー対応**: OpenAI、Claude (Anthropic)、Google Gemini
9
+ - 🤖 **複数のAIプロバイダー対応**: OpenAI、Claude (Anthropic)、Google Gemini、OpenRouter
10
10
  - 🔄 **統一されたインターフェース**: 異なるプロバイダー間での一貫したAPI
11
11
  - 🛠️ **ツール・関数呼び出し**: AI関数呼び出しの自動反復処理をサポート
12
12
  - 💬 **ストリーミングレスポンス**: リアルタイムストリーミングチャット応答
@@ -85,6 +85,24 @@ const geminiService = ChatServiceFactory.createChatService('gemini', {
85
85
  });
86
86
  ```
87
87
 
88
+ #### OpenRouter
89
+
90
+ ```typescript
91
+ const openRouterService = ChatServiceFactory.createChatService('openrouter', {
92
+ apiKey: process.env.OPENROUTER_API_KEY,
93
+ model: 'openai/gpt-oss-20b:free', // 無料利用枠モデル
94
+ // オプション: 分析用アプリ情報を追加
95
+ appName: 'あなたのアプリ名',
96
+ appUrl: 'https://your-app-url.com'
97
+ });
98
+ ```
99
+
100
+ **OpenRouterの重要な注意事項:**
101
+ - `gpt-oss-20b:free`モデルでは、技術的制限によりトークン制限が自動的に無効化されます
102
+ - 応答の長さを制御するには、プロンプト内で指示してください(例:「40文字以内で返答してください」)
103
+ - 無料階層にはレート制限があります(20リクエスト/分)
104
+ - 現在は`openai/gpt-oss-20b:free`モデルのみサポートしています
105
+
88
106
  ### ビジョンチャット
89
107
 
90
108
  ```typescript
@@ -308,6 +326,7 @@ type ChatResponseLength = 'veryShort' | 'short' | 'medium' | 'long' | 'veryLong'
308
326
  - **OpenAI**: GPT-4.1(miniとnanoを含む), GPT-4, GPT-4o-mini, O3-mini, o1, o1-miniのモデルをサポート
309
327
  - **Gemini**: Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.5 Flash Lite Preview, Gemini 2.0 Flash, Gemini 2.0 Flash-Lite, Gemini 1.5 Flash, Gemini 1.5 Proのモデルをサポート
310
328
  - **Claude**: Claude 3 Haiku, Claude 3.5 Haiku, Claude 3.5 Sonnet v2, Claude 3.7 Sonnetのモデルをサポート
329
+ - **OpenRouter**: `openai/gpt-oss-20b:free`(トークン制限の特別処理がある無料利用枠モデル)をサポート
311
330
 
312
331
  ## ライセンス
313
332
 
package/README.md CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  ![@aituber-onair/chat logo](./images/aituber-onair-chat.png)
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, and Gemini.
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, and OpenRouter.
6
6
 
7
7
  ## Features
8
8
 
9
- - 🤖 **Multiple AI Provider Support**: OpenAI, Claude (Anthropic), and Google Gemini
9
+ - 🤖 **Multiple AI Provider Support**: OpenAI, Claude (Anthropic), Google Gemini, and OpenRouter
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
@@ -85,6 +85,24 @@ const geminiService = ChatServiceFactory.createChatService('gemini', {
85
85
  });
86
86
  ```
87
87
 
88
+ #### OpenRouter
89
+
90
+ ```typescript
91
+ const openRouterService = ChatServiceFactory.createChatService('openrouter', {
92
+ apiKey: process.env.OPENROUTER_API_KEY,
93
+ model: 'openai/gpt-oss-20b:free', // Free tier model
94
+ // Optional: Add app information for analytics
95
+ appName: 'Your App Name',
96
+ appUrl: 'https://your-app-url.com'
97
+ });
98
+ ```
99
+
100
+ **Important Notes for OpenRouter:**
101
+ - Token limits are automatically disabled for the `gpt-oss-20b:free` model due to technical limitations
102
+ - To control response length, include instructions in your prompt (e.g., "Please respond in 40 characters or less")
103
+ - Free tier has rate limits (20 requests/minute)
104
+ - Only `openai/gpt-oss-20b:free` model is currently supported
105
+
88
106
  ### Vision Chat
89
107
 
90
108
  ```typescript
@@ -303,11 +321,12 @@ type ChatResponseLength = 'veryShort' | 'short' | 'medium' | 'long' | 'veryLong'
303
321
 
304
322
  ## Available Providers
305
323
 
306
- Currently, the following AI provider is built-in:
324
+ Currently, the following AI providers are built-in:
307
325
 
308
326
  - **OpenAI**: Supports models like GPT-4.1(including mini and nano), GPT-4, GPT-4o-mini, O3-mini, o1, o1-mini
309
327
  - **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, Gemini 1.5 Flash, Gemini 1.5 Pro
310
328
  - **Claude**: Supports models like Claude 3 Haiku, Claude 3.5 Haiku, Claude 3.5 Sonnet v2, Claude 3.7 Sonnet
329
+ - **OpenRouter**: Supports `openai/gpt-oss-20b:free` (free tier model with special handling for token limits)
311
330
 
312
331
  ## License
313
332
 
@@ -4,6 +4,7 @@
4
4
  export * from './openai';
5
5
  export * from './gemini';
6
6
  export * from './claude';
7
+ export * from './openrouter';
7
8
  export * from './chat';
8
9
  export * from './prompts';
9
10
  //# 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,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,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC"}
@@ -20,6 +20,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
20
20
  __exportStar(require("./openai"), exports);
21
21
  __exportStar(require("./gemini"), exports);
22
22
  __exportStar(require("./claude"), exports);
23
+ __exportStar(require("./openrouter"), exports);
23
24
  __exportStar(require("./chat"), exports);
24
25
  __exportStar(require("./prompts"), exports);
25
26
  //# 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,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,yCAAuB;AACvB,4CAA0B"}
@@ -0,0 +1,21 @@
1
+ export declare const ENDPOINT_OPENROUTER_API = "https://openrouter.ai/api/v1/chat/completions";
2
+ export declare const MODEL_GPT_OSS_20B_FREE = "openai/gpt-oss-20b:free";
3
+ export declare const OPENROUTER_FREE_MODELS: string[];
4
+ export declare const OPENROUTER_VISION_SUPPORTED_MODELS: never[];
5
+ export declare const OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE = 20;
6
+ export declare const OPENROUTER_FREE_DAILY_LIMIT_LOW_CREDITS = 50;
7
+ export declare const OPENROUTER_FREE_DAILY_LIMIT_HIGH_CREDITS = 1000;
8
+ export declare const OPENROUTER_CREDITS_THRESHOLD = 10;
9
+ /**
10
+ * Check if a model is a free tier model
11
+ * @param model Model name to check
12
+ * @returns True if the model is free tier
13
+ */
14
+ export declare function isOpenRouterFreeModel(model: string): boolean;
15
+ /**
16
+ * Check if a model supports vision on OpenRouter
17
+ * @param model Model name to check
18
+ * @returns True if the model supports vision
19
+ */
20
+ export declare function isOpenRouterVisionModel(model: string): boolean;
21
+ //# sourceMappingURL=openrouter.d.ts.map
@@ -0,0 +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;AAGhE,eAAO,MAAM,sBAAsB,UAA2B,CAAC;AAG/D,eAAO,MAAM,kCAAkC,SAAK,CAAC;AAGrD,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"}
@@ -0,0 +1,34 @@
1
+ "use strict";
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;
4
+ exports.isOpenRouterFreeModel = isOpenRouterFreeModel;
5
+ exports.isOpenRouterVisionModel = isOpenRouterVisionModel;
6
+ exports.ENDPOINT_OPENROUTER_API = 'https://openrouter.ai/api/v1/chat/completions';
7
+ // OpenRouter models
8
+ exports.MODEL_GPT_OSS_20B_FREE = 'openai/gpt-oss-20b:free';
9
+ // Free tier models
10
+ exports.OPENROUTER_FREE_MODELS = [exports.MODEL_GPT_OSS_20B_FREE];
11
+ // Vision supported models on OpenRouter
12
+ exports.OPENROUTER_VISION_SUPPORTED_MODELS = [];
13
+ // Rate limits for free tier
14
+ exports.OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE = 20;
15
+ exports.OPENROUTER_FREE_DAILY_LIMIT_LOW_CREDITS = 50;
16
+ exports.OPENROUTER_FREE_DAILY_LIMIT_HIGH_CREDITS = 1000;
17
+ exports.OPENROUTER_CREDITS_THRESHOLD = 10;
18
+ /**
19
+ * Check if a model is a free tier model
20
+ * @param model Model name to check
21
+ * @returns True if the model is free tier
22
+ */
23
+ function isOpenRouterFreeModel(model) {
24
+ return exports.OPENROUTER_FREE_MODELS.some((freeModel) => model.includes(freeModel));
25
+ }
26
+ /**
27
+ * Check if a model supports vision on OpenRouter
28
+ * @param model Model name to check
29
+ * @returns True if the model supports vision
30
+ */
31
+ function isOpenRouterVisionModel(model) {
32
+ return exports.OPENROUTER_VISION_SUPPORTED_MODELS.some((visionModel) => model.includes(visionModel));
33
+ }
34
+ //# sourceMappingURL=openrouter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openrouter.js","sourceRoot":"","sources":["../../../src/constants/openrouter.ts"],"names":[],"mappings":";;;AAuBA,sDAEC;AAOD,0DAIC;AApCY,QAAA,uBAAuB,GAClC,+CAA+C,CAAC;AAElD,oBAAoB;AACP,QAAA,sBAAsB,GAAG,yBAAyB,CAAC;AAEhE,mBAAmB;AACN,QAAA,sBAAsB,GAAG,CAAC,8BAAsB,CAAC,CAAC;AAE/D,wCAAwC;AAC3B,QAAA,kCAAkC,GAAG,EAAE,CAAC;AAErD,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"}
@@ -12,6 +12,8 @@ export { GeminiChatService } from './services/providers/gemini/GeminiChatService
12
12
  export { GeminiChatServiceProvider } from './services/providers/gemini/GeminiChatServiceProvider';
13
13
  export { ClaudeChatService } from './services/providers/claude/ClaudeChatService';
14
14
  export { ClaudeChatServiceProvider } from './services/providers/claude/ClaudeChatServiceProvider';
15
+ export { OpenRouterChatService } from './services/providers/openrouter/OpenRouterChatService';
16
+ export { OpenRouterChatServiceProvider } from './services/providers/openrouter/OpenRouterChatServiceProvider';
15
17
  export * from './constants';
16
18
  export * from './utils';
17
19
  //# sourceMappingURL=index.d.ts.map
@@ -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,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,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,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,cAAc,aAAa,CAAC;AAG5B,cAAc,SAAS,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.ClaudeChatServiceProvider = exports.ClaudeChatService = exports.GeminiChatServiceProvider = exports.GeminiChatService = exports.OpenAIChatServiceProvider = exports.OpenAIChatService = exports.ChatServiceFactory = void 0;
21
+ 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");
@@ -38,6 +38,11 @@ var ClaudeChatService_1 = require("./services/providers/claude/ClaudeChatService
38
38
  Object.defineProperty(exports, "ClaudeChatService", { enumerable: true, get: function () { return ClaudeChatService_1.ClaudeChatService; } });
39
39
  var ClaudeChatServiceProvider_1 = require("./services/providers/claude/ClaudeChatServiceProvider");
40
40
  Object.defineProperty(exports, "ClaudeChatServiceProvider", { enumerable: true, get: function () { return ClaudeChatServiceProvider_1.ClaudeChatServiceProvider; } });
41
+ // OpenRouter provider exports
42
+ var OpenRouterChatService_1 = require("./services/providers/openrouter/OpenRouterChatService");
43
+ Object.defineProperty(exports, "OpenRouterChatService", { enumerable: true, get: function () { return OpenRouterChatService_1.OpenRouterChatService; } });
44
+ var OpenRouterChatServiceProvider_1 = require("./services/providers/openrouter/OpenRouterChatServiceProvider");
45
+ Object.defineProperty(exports, "OpenRouterChatServiceProvider", { enumerable: true, get: function () { return OpenRouterChatServiceProvider_1.OpenRouterChatServiceProvider; } });
41
46
  // Constants exports
42
47
  __exportStar(require("./constants"), exports);
43
48
  // Utility exports
@@ -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;AAQ3B,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,oBAAoB;AACpB,8CAA4B;AAE5B,kBAAkB;AAClB,0CAAwB"}
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;AAQ3B,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,oBAAoB;AACpB,8CAA4B;AAE5B,kBAAkB;AAClB,0CAAwB"}
@@ -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,EACL,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAKzC;;;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,CACtB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,kBAAkB,GAC1B,WAAW;IAQd;;;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
+ {"version":3,"file":"ChatServiceFactory.d.ts","sourceRoot":"","sources":["../../../src/services/ChatServiceFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAMzC;;;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,CACtB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,kBAAkB,GAC1B,WAAW;IAQd;;;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"}
@@ -4,6 +4,7 @@ exports.ChatServiceFactory = void 0;
4
4
  const OpenAIChatServiceProvider_1 = require("./providers/openai/OpenAIChatServiceProvider");
5
5
  const GeminiChatServiceProvider_1 = require("./providers/gemini/GeminiChatServiceProvider");
6
6
  const ClaudeChatServiceProvider_1 = require("./providers/claude/ClaudeChatServiceProvider");
7
+ const OpenRouterChatServiceProvider_1 = require("./providers/openrouter/OpenRouterChatServiceProvider");
7
8
  /**
8
9
  * Chat service factory
9
10
  * Manages and creates various AI providers
@@ -62,4 +63,6 @@ ChatServiceFactory.registerProvider(new OpenAIChatServiceProvider_1.OpenAIChatSe
62
63
  ChatServiceFactory.registerProvider(new GeminiChatServiceProvider_1.GeminiChatServiceProvider());
63
64
  // Register Claude as a provider
64
65
  ChatServiceFactory.registerProvider(new ClaudeChatServiceProvider_1.ClaudeChatServiceProvider());
66
+ // Register OpenRouter as a provider
67
+ ChatServiceFactory.registerProvider(new OpenRouterChatServiceProvider_1.OpenRouterChatServiceProvider());
65
68
  //# sourceMappingURL=ChatServiceFactory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatServiceFactory.js","sourceRoot":"","sources":["../../../src/services/ChatServiceFactory.ts"],"names":[],"mappings":";;;AAKA,4FAAyF;AACzF,4FAAyF;AACzF,4FAAyF;AAEzF;;;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;IAED;;;;;OAKG;IACH,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;;AArDH,gDAsDC;AArDC,kCAAkC;AACnB,4BAAS,GAAqC,IAAI,GAAG,EAAE,CAAC;AAsDzE,gCAAgC;AAChC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,qDAAyB,EAAE,CAAC,CAAC;AACrE,gCAAgC;AAChC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,qDAAyB,EAAE,CAAC,CAAC;AACrE,gCAAgC;AAChC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,qDAAyB,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"ChatServiceFactory.js","sourceRoot":"","sources":["../../../src/services/ChatServiceFactory.ts"],"names":[],"mappings":";;;AAKA,4FAAyF;AACzF,4FAAyF;AACzF,4FAAyF;AACzF,wGAAqG;AAErG;;;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;IAED;;;;;OAKG;IACH,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;;AArDH,gDAsDC;AArDC,kCAAkC;AACnB,4BAAS,GAAqC,IAAI,GAAG,EAAE,CAAC;AAsDzE,gCAAgC;AAChC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,qDAAyB,EAAE,CAAC,CAAC;AACrE,gCAAgC;AAChC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,qDAAyB,EAAE,CAAC,CAAC;AACrE,gCAAgC;AAChC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,qDAAyB,EAAE,CAAC,CAAC;AACrE,oCAAoC;AACpC,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,6DAA6B,EAAE,CAAC,CAAC"}
@@ -16,7 +16,7 @@ export interface ChatServiceOptions {
16
16
  responseLength?: ChatResponseLength;
17
17
  /** Verbosity level for GPT-5 models (OpenAI only) */
18
18
  verbosity?: 'low' | 'medium' | 'high';
19
- /** Reasoning effort level for GPT-5 models (OpenAI only) */
19
+ /** Reasoning effort level for GPT-5 models (OpenAI) and gpt-oss models (OpenRouter) */
20
20
  reasoning_effort?: 'minimal' | 'low' | 'medium' | 'high';
21
21
  /** GPT-5 usage preset (OpenAI only) - overrides individual reasoning/verbosity settings */
22
22
  gpt5Preset?: GPT5PresetKey;
@@ -24,6 +24,10 @@ export interface ChatServiceOptions {
24
24
  gpt5EndpointPreference?: 'chat' | 'responses' | 'auto';
25
25
  /** Enable reasoning summary for GPT-5 models (OpenAI only) - requires organization verification */
26
26
  enableReasoningSummary?: boolean;
27
+ /** Include reasoning in response (OpenRouter only) - default false to avoid empty responses */
28
+ includeReasoning?: boolean;
29
+ /** Maximum tokens allocated for reasoning (OpenRouter only) */
30
+ reasoningMaxTokens?: number;
27
31
  /** Additional provider-specific options */
28
32
  [key: string]: any;
29
33
  }
@@ -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;AAEzE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,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,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,qDAAqD;IACrD,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACzD,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,2CAA2C;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAAC;IAE5D;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC;IAE1B;;;OAGG;IACH,kBAAkB,IAAI,MAAM,EAAE,CAAC;IAE/B;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC;IAE1B;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC;CAC3B"}
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;AAEzE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,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,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,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,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACzD,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,2CAA2C;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAAC;IAE5D;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC;IAE1B;;;OAGG;IACH,kBAAkB,IAAI,MAAM,EAAE,CAAC;IAE/B;;;OAGG;IACH,eAAe,IAAI,MAAM,CAAC;IAE1B;;;OAGG;IACH,cAAc,IAAI,OAAO,CAAC;CAC3B"}
@@ -0,0 +1,108 @@
1
+ import { ChatService } from '../../ChatService';
2
+ import { Message, MessageWithVision } from '../../../types';
3
+ import { ToolDefinition, ToolChatCompletion } from '../../../types';
4
+ import { ChatResponseLength } from '../../../constants/chat';
5
+ /**
6
+ * OpenRouter implementation of ChatService
7
+ * OpenRouter provides access to multiple AI models through a unified API
8
+ */
9
+ export declare class OpenRouterChatService implements ChatService {
10
+ /** Provider name */
11
+ readonly provider: string;
12
+ private apiKey;
13
+ private model;
14
+ private visionModel;
15
+ private tools;
16
+ private endpoint;
17
+ private responseLength?;
18
+ private appName?;
19
+ private appUrl?;
20
+ private reasoning_effort?;
21
+ private includeReasoning?;
22
+ private reasoningMaxTokens?;
23
+ private lastRequestTime;
24
+ private requestCount;
25
+ /**
26
+ * Constructor
27
+ * @param apiKey OpenRouter API key
28
+ * @param model Name of the model to use
29
+ * @param visionModel Name of the vision model
30
+ * @param tools Tool definitions (optional)
31
+ * @param endpoint API endpoint (optional)
32
+ * @param responseLength Response length configuration (optional)
33
+ * @param appName Application name for OpenRouter analytics (optional)
34
+ * @param appUrl Application URL for OpenRouter analytics (optional)
35
+ * @param reasoning_effort Reasoning effort level (optional)
36
+ * @param includeReasoning Whether to include reasoning in response (optional)
37
+ * @param reasoningMaxTokens Maximum tokens for reasoning (optional)
38
+ */
39
+ constructor(apiKey: string, model?: string, visionModel?: string, tools?: ToolDefinition[], endpoint?: string, responseLength?: ChatResponseLength, appName?: string, appUrl?: string, reasoning_effort?: 'minimal' | 'low' | 'medium' | 'high', includeReasoning?: boolean, reasoningMaxTokens?: number);
40
+ /**
41
+ * Get the current model name
42
+ * @returns Model name
43
+ */
44
+ getModel(): string;
45
+ /**
46
+ * Get the current vision model name
47
+ * @returns Vision model name
48
+ */
49
+ getVisionModel(): string;
50
+ /**
51
+ * Apply rate limiting for free tier models
52
+ */
53
+ private applyRateLimiting;
54
+ /**
55
+ * Process chat messages
56
+ * @param messages Array of messages to send
57
+ * @param onPartialResponse Callback to receive each part of streaming response
58
+ * @param onCompleteResponse Callback to execute when response is complete
59
+ */
60
+ processChat(messages: Message[], onPartialResponse: (text: string) => void, onCompleteResponse: (text: string) => Promise<void>): Promise<void>;
61
+ /**
62
+ * Process chat messages with images
63
+ * @param messages Array of messages to send (including images)
64
+ * @param onPartialResponse Callback to receive each part of streaming response
65
+ * @param onCompleteResponse Callback to execute when response is complete
66
+ */
67
+ processVisionChat(messages: MessageWithVision[], onPartialResponse: (text: string) => void, onCompleteResponse: (text: string) => Promise<void>): Promise<void>;
68
+ /**
69
+ * Process chat messages with tools (text only)
70
+ * @param messages Array of messages to send
71
+ * @param stream Whether to use streaming
72
+ * @param onPartialResponse Callback for partial responses
73
+ * @param maxTokens Maximum tokens for response (optional)
74
+ * @returns Tool chat completion
75
+ */
76
+ chatOnce(messages: Message[], stream?: boolean, onPartialResponse?: (text: string) => void, maxTokens?: number): Promise<ToolChatCompletion>;
77
+ /**
78
+ * Process vision chat messages with tools
79
+ * @param messages Array of messages to send (including images)
80
+ * @param stream Whether to use streaming
81
+ * @param onPartialResponse Callback for partial responses
82
+ * @param maxTokens Maximum tokens for response (optional)
83
+ * @returns Tool chat completion
84
+ */
85
+ visionChatOnce(messages: MessageWithVision[], stream?: boolean, onPartialResponse?: (text: string) => void, maxTokens?: number): Promise<ToolChatCompletion>;
86
+ /**
87
+ * Call OpenRouter API
88
+ */
89
+ private callOpenRouter;
90
+ /**
91
+ * Build request body for OpenRouter API (OpenAI-compatible format)
92
+ */
93
+ private buildRequestBody;
94
+ /**
95
+ * Handle streaming response from OpenRouter
96
+ * OpenRouter uses SSE format with potential comment lines
97
+ */
98
+ private handleStream;
99
+ /**
100
+ * Parse streaming response with tool support
101
+ */
102
+ private parseStream;
103
+ /**
104
+ * Parse non-streaming response
105
+ */
106
+ private parseOneShot;
107
+ }
108
+ //# sourceMappingURL=OpenRouterChatService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenRouterChatService.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACL,cAAc,EAEd,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAQxB,OAAO,EACL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;AAIjC;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,WAAW;IACvD,oBAAoB;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAgB;IAEzC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,cAAc,CAAC,CAAqB;IAC5C,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,gBAAgB,CAAC,CAAwC;IACjE,OAAO,CAAC,gBAAgB,CAAC,CAAU;IACnC,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,YAAY,CAAa;IAEjC;;;;;;;;;;;;;OAaG;gBAED,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAA+B,EACtC,WAAW,GAAE,MAA+B,EAC5C,KAAK,CAAC,EAAE,cAAc,EAAE,EACxB,QAAQ,GAAE,MAAgC,EAC1C,cAAc,CAAC,EAAE,kBAAkB,EACnC,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,EACxD,gBAAgB,CAAC,EAAE,OAAO,EAC1B,kBAAkB,CAAC,EAAE,MAAM;IAkB7B;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;OAGG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;YACW,iBAAiB;IA6B/B;;;;;OAKG;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;IA8BhB;;;;;OAKG;IACG,iBAAiB,CACrB,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,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;IA8ChB;;;;;;;OAOG;IACG,QAAQ,CACZ,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,UAAO,EACb,iBAAiB,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAe,EACpD,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC;IAa9B;;;;;;;OAOG;IACG,cAAc,CAClB,QAAQ,EAAE,iBAAiB,EAAE,EAC7B,MAAM,GAAE,OAAe,EACvB,iBAAiB,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAe,EACpD,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,CAAC;IAoB9B;;OAEG;YACW,cAAc;IA0B5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuExB;;;OAGG;YACW,YAAY;IAgD1B;;OAEG;YACW,WAAW;IA+EzB;;OAEG;IACH,OAAO,CAAC,YAAY;CAsBrB"}