@aituber-onair/chat 0.43.0 → 0.45.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 +40 -9
- package/README.md +40 -9
- 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/xai.d.ts +9 -0
- package/dist/cjs/constants/xai.d.ts.map +1 -1
- package/dist/cjs/constants/xai.js +27 -2
- package/dist/cjs/constants/xai.js.map +1 -1
- package/dist/cjs/services/ChatServiceFactory.d.ts +9 -0
- package/dist/cjs/services/ChatServiceFactory.d.ts.map +1 -1
- package/dist/cjs/services/ChatServiceFactory.js +63 -0
- package/dist/cjs/services/ChatServiceFactory.js.map +1 -1
- package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js +1 -0
- package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/openai/OpenAIChatService.d.ts +5 -1
- package/dist/cjs/services/providers/openai/OpenAIChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/openai/OpenAIChatService.js +3 -1
- package/dist/cjs/services/providers/openai/OpenAIChatService.js.map +1 -1
- package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.js +17 -1
- package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/openai/openaiRequestBuilder.d.ts +4 -1
- package/dist/cjs/services/providers/openai/openaiRequestBuilder.d.ts.map +1 -1
- package/dist/cjs/services/providers/openai/openaiRequestBuilder.js +21 -1
- package/dist/cjs/services/providers/openai/openaiRequestBuilder.js.map +1 -1
- package/dist/cjs/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.js +18 -1
- package/dist/cjs/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/xai/XAIChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/xai/XAIChatService.js +1 -1
- package/dist/cjs/services/providers/xai/XAIChatService.js.map +1 -1
- package/dist/cjs/services/providers/xai/XAIChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/xai/XAIChatServiceProvider.js +2 -1
- package/dist/cjs/services/providers/xai/XAIChatServiceProvider.js.map +1 -1
- package/dist/cjs/types/capabilities.d.ts +15 -0
- package/dist/cjs/types/capabilities.d.ts.map +1 -0
- package/dist/cjs/types/capabilities.js +3 -0
- package/dist/cjs/types/capabilities.js.map +1 -0
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.d.ts.map +1 -1
- 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/xai.d.ts +9 -0
- package/dist/esm/constants/xai.d.ts.map +1 -1
- package/dist/esm/constants/xai.js +24 -1
- package/dist/esm/constants/xai.js.map +1 -1
- package/dist/esm/services/ChatServiceFactory.d.ts +9 -0
- package/dist/esm/services/ChatServiceFactory.d.ts.map +1 -1
- package/dist/esm/services/ChatServiceFactory.js +63 -0
- package/dist/esm/services/ChatServiceFactory.js.map +1 -1
- package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js +2 -1
- package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/openai/OpenAIChatService.d.ts +5 -1
- package/dist/esm/services/providers/openai/OpenAIChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/openai/OpenAIChatService.js +3 -1
- package/dist/esm/services/providers/openai/OpenAIChatService.js.map +1 -1
- package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.js +17 -1
- package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/openai/openaiRequestBuilder.d.ts +4 -1
- package/dist/esm/services/providers/openai/openaiRequestBuilder.d.ts.map +1 -1
- package/dist/esm/services/providers/openai/openaiRequestBuilder.js +21 -1
- package/dist/esm/services/providers/openai/openaiRequestBuilder.js.map +1 -1
- package/dist/esm/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.js +18 -1
- package/dist/esm/services/providers/openaiCompatible/OpenAICompatibleChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/xai/XAIChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/xai/XAIChatService.js +2 -2
- package/dist/esm/services/providers/xai/XAIChatService.js.map +1 -1
- package/dist/esm/services/providers/xai/XAIChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/xai/XAIChatServiceProvider.js +3 -2
- package/dist/esm/services/providers/xai/XAIChatServiceProvider.js.map +1 -1
- package/dist/esm/types/capabilities.d.ts +15 -0
- package/dist/esm/types/capabilities.d.ts.map +1 -0
- package/dist/esm/types/capabilities.js +2 -0
- package/dist/esm/types/capabilities.js.map +1 -0
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.d.ts.map +1 -1
- package/dist/umd/aituber-onair-chat.js +129 -9
- package/dist/umd/aituber-onair-chat.min.js +7 -7
- package/package.json +1 -1
package/README.ja.md
CHANGED
|
@@ -566,7 +566,7 @@ CI/ローカルで再現性を高める場合は
|
|
|
566
566
|
```typescript
|
|
567
567
|
const claudeService = ChatServiceFactory.createChatService('claude', {
|
|
568
568
|
apiKey: process.env.ANTHROPIC_API_KEY,
|
|
569
|
-
model: 'claude-
|
|
569
|
+
model: 'claude-sonnet-5'
|
|
570
570
|
});
|
|
571
571
|
```
|
|
572
572
|
|
|
@@ -675,17 +675,17 @@ const zaiService = ChatServiceFactory.createChatService('zai', {
|
|
|
675
675
|
```typescript
|
|
676
676
|
const xaiService = ChatServiceFactory.createChatService('xai', {
|
|
677
677
|
apiKey: process.env.XAI_API_KEY,
|
|
678
|
-
model: 'grok-4.
|
|
679
|
-
reasoning_effort: '
|
|
680
|
-
visionModel: 'grok-4.3', // 任意: xAI
|
|
678
|
+
model: 'grok-4.5',
|
|
679
|
+
reasoning_effort: 'low', // 任意(Grok 4.5): low, medium, high
|
|
680
|
+
visionModel: 'grok-4.3', // 任意: ビジョン対応の xAI モデルを指定
|
|
681
681
|
});
|
|
682
682
|
```
|
|
683
683
|
|
|
684
684
|
注意:
|
|
685
685
|
- xAIはOpenAI互換のChat Completionsを利用します。
|
|
686
|
-
- 対応モデル: `grok-4.3`, `grok-4.20-0309-reasoning`, `grok-4.20-0309-non-reasoning`, `grok-4-1-fast-reasoning`, `grok-4-1-fast-non-reasoning`
|
|
687
|
-
- `reasoning_effort` は
|
|
688
|
-
-
|
|
686
|
+
- 対応モデル: `grok-4.5`, `grok-4.3`, `grok-4.20-0309-reasoning`, `grok-4.20-0309-non-reasoning`, `grok-4-1-fast-reasoning`, `grok-4-1-fast-non-reasoning`
|
|
687
|
+
- `reasoning_effort` は対応モデルにのみ送信されます。`grok-4.5` は `low`, `medium`, `high` に対応し、チャット用途向けにデフォルトは `low` です。`grok-4.3` は `none`, `low`, `medium`, `high` に対応し、デフォルトは `none` です。
|
|
688
|
+
- 対応 xAI モデルではビジョンとツール・関数呼び出しを利用できます。Grok 4.5 も React basic サンプルで画像チャットを直接検証できるようにビジョン対応として有効化しています。
|
|
689
689
|
|
|
690
690
|
#### Kimi(Moonshot)
|
|
691
691
|
|
|
@@ -1092,6 +1092,37 @@ console.log(modelLevel); // 'unknown'
|
|
|
1092
1092
|
- `unsupported`: リクエスト送信前に非対応と分かっている
|
|
1093
1093
|
- `unknown`: 事前判定できないが、実際には成功する可能性がある
|
|
1094
1094
|
|
|
1095
|
+
### プロバイダー機能の事前判定
|
|
1096
|
+
|
|
1097
|
+
UI やエージェント実行環境は、チャットサービスを作成する前にプロバイダーの
|
|
1098
|
+
機能を確認できます。
|
|
1099
|
+
|
|
1100
|
+
```typescript
|
|
1101
|
+
const capabilities = ChatServiceFactory.getProviderCapabilities(
|
|
1102
|
+
'openai',
|
|
1103
|
+
'gpt-5.4-mini',
|
|
1104
|
+
);
|
|
1105
|
+
|
|
1106
|
+
if (capabilities?.jsonMode) {
|
|
1107
|
+
// JSON mode のトグル表示や responseFormat の指定が安全にできます。
|
|
1108
|
+
}
|
|
1109
|
+
|
|
1110
|
+
if (!capabilities?.mcp) {
|
|
1111
|
+
// このプロバイダーでは MCP server 設定を無効化できます。
|
|
1112
|
+
}
|
|
1113
|
+
```
|
|
1114
|
+
|
|
1115
|
+
`getProviderCapabilities(provider, model?)` は `models`, `defaultModel`,
|
|
1116
|
+
`vision`, `tools`, `mcp`, `jsonMode`, `responseLength`, 対応する
|
|
1117
|
+
`reasoningEffort` などの機械可読な metadata を返します。プロバイダー選択 UI
|
|
1118
|
+
やダッシュボードを作る場合は `getAllProviderCapabilities()` も利用できます。
|
|
1119
|
+
|
|
1120
|
+
capability object は実行前の判断に使う静的 metadata です。API key、endpoint、
|
|
1121
|
+
base URL、MCP server 定義、その他のユーザー設定は含みません。これにより、UI
|
|
1122
|
+
では非対応の設定を実行前に非表示/無効化でき、エージェント側では tools、MCP、
|
|
1123
|
+
vision、JSON mode、reasoning 設定を使うべきかを provider 固有ロジックの
|
|
1124
|
+
ベタ書きなしで判断できます。
|
|
1125
|
+
|
|
1095
1126
|
## 利用可能なプロバイダー
|
|
1096
1127
|
|
|
1097
1128
|
現在、以下のAIプロバイダーが組み込まれています:
|
|
@@ -1099,10 +1130,10 @@ console.log(modelLevel); // 'unknown'
|
|
|
1099
1130
|
- **OpenAI**: GPT-5.5、GPT-5.4 Pro、GPT-5.4、GPT-5.4 Mini、GPT-5.4 Nano、GPT-5.1、GPT-5(Nano/Mini/Standard)、GPT-4.1(miniとnanoを含む), GPT-4, GPT-4o-mini, O3-mini, o1, o1-miniのモデルをサポート
|
|
1100
1131
|
- **OpenAI-Compatible**: OpenAI互換 endpoint 経由で任意のローカル/セルフホスト model ID を利用できます。vision 対応可否は endpoint ごとに差があるため、原則 `unknown` 扱いです
|
|
1101
1132
|
- **Gemini**: Gemini 3.5 Flash、Gemini 3.1 Flash-Lite、Gemini 3.1 Pro Preview、Gemini 3 Flash Preview、Gemini 2.5 Pro、Gemini 2.5 Flash、Gemini 2.5 Flash Lite、Gemma 4 31B IT、Gemma 4 26B A4B IT などの推奨モデルをサポート。Gemini 3.5 Flash はチャット用途向けに minimal thinking を自動適用します。Gemini 3.1 Flash-Lite Preview、Gemini 3 Pro Preview、Gemini 2.5 Flash Lite Preview などの lifecycle 上 deprecated なモデルは明示指定用に export を残しています
|
|
1102
|
-
- **Claude**: Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Opus 4.5, Claude Sonnet 4.6, Claude Sonnet 4.5, Claude Haiku 4.5 に加え、まだ利用可能だが非推奨の Claude 4 Opus, Claude 4 Sonnet, Claude 3 Haiku をサポート
|
|
1133
|
+
- **Claude**: Claude Sonnet 5, Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Opus 4.5, Claude Sonnet 4.6, Claude Sonnet 4.5, Claude Haiku 4.5 に加え、まだ利用可能だが非推奨の Claude 4 Opus, Claude 4 Sonnet, Claude 3 Haiku をサポート
|
|
1103
1134
|
- **OpenRouter**: OpenRouterのキュレーション済みモデル一覧(OpenAI/Claude/Gemini/Z.ai/Kimi)をサポート。モデルIDはOpenRouter節を参照してください
|
|
1104
1135
|
- **Z.ai**: GLM-5.2/GLM-5/GLM-5-Turbo(テキスト)、GLM-4.7/4.6(テキスト)、GLM-4.6V系(ビジョン)をサポート
|
|
1105
|
-
- **xAI**: Grok 4.3、Grok 4.20 の Reasoning/Non-Reasoning、Grok 4-1 Fast の Reasoning/Non-Reasoning をサポートし、全モデルでビジョン対応
|
|
1136
|
+
- **xAI**: Grok 4.5 をチャット用途向けに `reasoning_effort: 'low'` デフォルトでサポート。加えて Grok 4.3、Grok 4.20 の Reasoning/Non-Reasoning、Grok 4-1 Fast の Reasoning/Non-Reasoning をサポートし、全モデルでビジョン対応
|
|
1106
1137
|
- **Kimi**: Kimi K2.7 Code(`kimi-k2.7-code`)、Kimi K2.7 Code HighSpeed(`kimi-k2.7-code-highspeed`)、Kimi K2.6(`kimi-k2.6`、デフォルト)、Kimi K2.5(`kimi-k2.5`、いずれもビジョン対応)をサポート
|
|
1107
1138
|
- **DeepSeek**: DeepSeek V4 Flash(`deepseek-v4-flash`)と DeepSeek V4 Pro(`deepseek-v4-pro`)をOpenAI互換Chat Completions経由でサポート。legacy alias の`deepseek-chat`と`deepseek-reasoner`はDeepSeek側で非推奨です
|
|
1108
1139
|
- **Mistral**: `mistral-small-latest`, `mistral-medium-3-5`, `mistral-large-latest`, `mistral-large-2512`, `mistral-small-2603`, `mistral-medium-2508`などの現行generalist modelをサポートし、streamingとvisionにも対応。adjustable `reasoning_effort`は対応モデルにだけ送信します
|
package/README.md
CHANGED
|
@@ -579,7 +579,7 @@ For CI/local deterministic runs, pair it with `examples/mock-openai-server`.
|
|
|
579
579
|
```typescript
|
|
580
580
|
const claudeService = ChatServiceFactory.createChatService('claude', {
|
|
581
581
|
apiKey: process.env.ANTHROPIC_API_KEY,
|
|
582
|
-
model: 'claude-
|
|
582
|
+
model: 'claude-sonnet-5'
|
|
583
583
|
});
|
|
584
584
|
```
|
|
585
585
|
|
|
@@ -687,17 +687,17 @@ Notes:
|
|
|
687
687
|
```typescript
|
|
688
688
|
const xaiService = ChatServiceFactory.createChatService('xai', {
|
|
689
689
|
apiKey: process.env.XAI_API_KEY,
|
|
690
|
-
model: 'grok-4.
|
|
691
|
-
reasoning_effort: '
|
|
692
|
-
visionModel: 'grok-4.3', // Optional:
|
|
690
|
+
model: 'grok-4.5',
|
|
691
|
+
reasoning_effort: 'low', // Optional for Grok 4.5: low, medium, high
|
|
692
|
+
visionModel: 'grok-4.3', // Optional: use a vision-capable xAI model
|
|
693
693
|
});
|
|
694
694
|
```
|
|
695
695
|
|
|
696
696
|
Notes:
|
|
697
697
|
- xAI uses OpenAI-compatible Chat Completions.
|
|
698
|
-
- Supported models: `grok-4.3`, `grok-4.20-0309-reasoning`, `grok-4.20-0309-non-reasoning`, `grok-4-1-fast-reasoning`, `grok-4-1-fast-non-reasoning`
|
|
699
|
-
- `reasoning_effort` is sent only for `grok-4.
|
|
700
|
-
-
|
|
698
|
+
- Supported models: `grok-4.5`, `grok-4.3`, `grok-4.20-0309-reasoning`, `grok-4.20-0309-non-reasoning`, `grok-4-1-fast-reasoning`, `grok-4-1-fast-non-reasoning`
|
|
699
|
+
- `reasoning_effort` is sent only for models that support it. `grok-4.5` supports `low`, `medium`, and `high` and defaults to `low` for chat-style responses. `grok-4.3` supports `none`, `low`, `medium`, and `high` and defaults to `none`.
|
|
700
|
+
- Supported xAI models can be used with vision and tool/function calling. Grok 4.5 vision support is enabled so image chat can be validated directly in the React basic sample.
|
|
701
701
|
|
|
702
702
|
#### Kimi (Moonshot)
|
|
703
703
|
|
|
@@ -1107,6 +1107,37 @@ Semantics:
|
|
|
1107
1107
|
- `unsupported`: Known to reject vision before sending the request
|
|
1108
1108
|
- `unknown`: Cannot be pre-validated, but vision requests may still succeed
|
|
1109
1109
|
|
|
1110
|
+
### Provider Capability Discovery
|
|
1111
|
+
|
|
1112
|
+
UI and agent runtimes can inspect provider features before creating a chat
|
|
1113
|
+
service:
|
|
1114
|
+
|
|
1115
|
+
```typescript
|
|
1116
|
+
const capabilities = ChatServiceFactory.getProviderCapabilities(
|
|
1117
|
+
'openai',
|
|
1118
|
+
'gpt-5.4-mini',
|
|
1119
|
+
);
|
|
1120
|
+
|
|
1121
|
+
if (capabilities?.jsonMode) {
|
|
1122
|
+
// Show a JSON mode toggle or pass responseFormat safely.
|
|
1123
|
+
}
|
|
1124
|
+
|
|
1125
|
+
if (!capabilities?.mcp) {
|
|
1126
|
+
// Disable MCP server settings for this provider.
|
|
1127
|
+
}
|
|
1128
|
+
```
|
|
1129
|
+
|
|
1130
|
+
`getProviderCapabilities(provider, model?)` returns machine-readable metadata
|
|
1131
|
+
such as `models`, `defaultModel`, `vision`, `tools`, `mcp`, `jsonMode`,
|
|
1132
|
+
`responseLength`, and supported `reasoningEffort` values. Use
|
|
1133
|
+
`getAllProviderCapabilities()` to populate provider pickers or dashboards.
|
|
1134
|
+
|
|
1135
|
+
The capability object is static planning metadata. It does not include API keys,
|
|
1136
|
+
endpoints, base URLs, MCP server definitions, or other user configuration. This
|
|
1137
|
+
helps UI surfaces hide unsupported controls before execution, and lets agents
|
|
1138
|
+
choose whether to use tools, MCP, vision, JSON mode, or reasoning settings
|
|
1139
|
+
without hard-coding provider-specific rules.
|
|
1140
|
+
|
|
1110
1141
|
## Available Providers
|
|
1111
1142
|
|
|
1112
1143
|
Currently, the following AI providers are built-in:
|
|
@@ -1114,10 +1145,10 @@ Currently, the following AI providers are built-in:
|
|
|
1114
1145
|
- **OpenAI**: Supports models like GPT-5.5, GPT-5.4 Pro, GPT-5.4, GPT-5.4 Mini, GPT-5.4 Nano, 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
|
|
1115
1146
|
- **OpenAI-Compatible**: Supports arbitrary local/self-hosted model IDs via OpenAI-compatible endpoints. Vision capability is treated as `unknown` unless your app knows the endpoint-specific model catalog.
|
|
1116
1147
|
- **Gemini**: Supports recommended models like Gemini 3.5 Flash, Gemini 3.1 Flash-Lite, Gemini 3.1 Pro Preview, Gemini 3 Flash Preview, Gemini 2.5 Pro, Gemini 2.5 Flash, Gemini 2.5 Flash Lite, Gemma 4 31B IT, and Gemma 4 26B A4B IT. Gemini 3.5 Flash automatically uses minimal thinking for chat-style responses. Deprecated lifecycle models such as Gemini 3.1 Flash-Lite Preview, Gemini 3 Pro Preview, and Gemini 2.5 Flash Lite Preview remain exported for explicit use.
|
|
1117
|
-
- **Claude**: Supports current Claude API model IDs including Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Opus 4.5, Claude Sonnet 4.6, Claude Sonnet 4.5, Claude Haiku 4.5, plus deprecated-but-still-available Claude 4 Opus, Claude 4 Sonnet, and Claude 3 Haiku
|
|
1148
|
+
- **Claude**: Supports current Claude API model IDs including Claude Sonnet 5, Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Opus 4.5, Claude Sonnet 4.6, Claude Sonnet 4.5, Claude Haiku 4.5, plus deprecated-but-still-available Claude 4 Opus, Claude 4 Sonnet, and Claude 3 Haiku
|
|
1118
1149
|
- **OpenRouter**: Supports a curated OpenRouter model list (OpenAI/Claude/Gemini/Z.ai/Kimi). See the OpenRouter section for model IDs.
|
|
1119
1150
|
- **Z.ai**: Supports GLM-5.2/GLM-5/GLM-5-Turbo (text), GLM-4.7/4.6 (text), and GLM-4.6V family (vision)
|
|
1120
|
-
- **xAI**: Supports Grok 4.3, Grok 4.20 Reasoning/Non-Reasoning, and Grok 4-1 Fast Reasoning/Non-Reasoning, all with vision support
|
|
1151
|
+
- **xAI**: Supports Grok 4.5 with `reasoning_effort: 'low'` by default for chat-style responses, plus Grok 4.3, Grok 4.20 Reasoning/Non-Reasoning, and Grok 4-1 Fast Reasoning/Non-Reasoning, all with vision support.
|
|
1121
1152
|
- **Kimi**: Supports Kimi K2.7 Code (`kimi-k2.7-code`), Kimi K2.7 Code HighSpeed (`kimi-k2.7-code-highspeed`), Kimi K2.6 (`kimi-k2.6`, default), and Kimi K2.5 (`kimi-k2.5`) with vision support
|
|
1122
1153
|
- **DeepSeek**: Supports DeepSeek V4 Flash (`deepseek-v4-flash`) and DeepSeek V4 Pro (`deepseek-v4-pro`) via OpenAI-compatible Chat Completions. Legacy aliases `deepseek-chat` and `deepseek-reasoner` are deprecated by DeepSeek.
|
|
1123
1154
|
- **Mistral**: Supports current Mistral generalist models including `mistral-small-latest`, `mistral-medium-3-5`, `mistral-large-latest`, `mistral-large-2512`, `mistral-small-2603`, and `mistral-medium-2508`, with streaming and vision support. Adjustable `reasoning_effort` is only sent for supported models.
|
|
@@ -12,5 +12,6 @@ export declare const MODEL_CLAUDE_4_6_SONNET = "claude-sonnet-4-6";
|
|
|
12
12
|
export declare const MODEL_CLAUDE_4_6_OPUS = "claude-opus-4-6";
|
|
13
13
|
export declare const MODEL_CLAUDE_4_7_OPUS = "claude-opus-4-7";
|
|
14
14
|
export declare const MODEL_CLAUDE_4_8_OPUS = "claude-opus-4-8";
|
|
15
|
+
export declare const MODEL_CLAUDE_5_SONNET = "claude-sonnet-5";
|
|
15
16
|
export declare const CLAUDE_VISION_SUPPORTED_MODELS: string[];
|
|
16
17
|
//# 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;AAChE,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD,eAAO,MAAM,8BAA8B,
|
|
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,uBAAuB,sBAAsB,CAAC;AAC3D,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AACvD,eAAO,MAAM,qBAAqB,oBAAoB,CAAC;AAEvD,eAAO,MAAM,8BAA8B,UAY1C,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_8_OPUS = exports.MODEL_CLAUDE_4_7_OPUS = exports.MODEL_CLAUDE_4_6_OPUS = exports.MODEL_CLAUDE_4_6_SONNET = 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_5_SONNET = exports.MODEL_CLAUDE_4_8_OPUS = exports.MODEL_CLAUDE_4_7_OPUS = exports.MODEL_CLAUDE_4_6_OPUS = exports.MODEL_CLAUDE_4_6_SONNET = 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';
|
|
@@ -16,6 +16,7 @@ exports.MODEL_CLAUDE_4_6_SONNET = 'claude-sonnet-4-6';
|
|
|
16
16
|
exports.MODEL_CLAUDE_4_6_OPUS = 'claude-opus-4-6';
|
|
17
17
|
exports.MODEL_CLAUDE_4_7_OPUS = 'claude-opus-4-7';
|
|
18
18
|
exports.MODEL_CLAUDE_4_8_OPUS = 'claude-opus-4-8';
|
|
19
|
+
exports.MODEL_CLAUDE_5_SONNET = 'claude-sonnet-5';
|
|
19
20
|
exports.CLAUDE_VISION_SUPPORTED_MODELS = [
|
|
20
21
|
exports.MODEL_CLAUDE_3_HAIKU,
|
|
21
22
|
exports.MODEL_CLAUDE_4_SONNET,
|
|
@@ -27,5 +28,6 @@ exports.CLAUDE_VISION_SUPPORTED_MODELS = [
|
|
|
27
28
|
exports.MODEL_CLAUDE_4_6_OPUS,
|
|
28
29
|
exports.MODEL_CLAUDE_4_7_OPUS,
|
|
29
30
|
exports.MODEL_CLAUDE_4_8_OPUS,
|
|
31
|
+
exports.MODEL_CLAUDE_5_SONNET,
|
|
30
32
|
];
|
|
31
33
|
//# 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;AACnD,QAAA,uBAAuB,GAAG,mBAAmB,CAAC;AAC9C,QAAA,qBAAqB,GAAG,iBAAiB,CAAC;AAC1C,QAAA,qBAAqB,GAAG,iBAAiB,CAAC;AAC1C,QAAA,qBAAqB,GAAG,iBAAiB,CAAC;AAE1C,QAAA,8BAA8B,GAAG;IAC5C,4BAAoB;IACpB,6BAAqB;IACrB,2BAAmB;IACnB,+BAAuB;IACvB,8BAAsB;IACtB,6BAAqB;IACrB,+BAAuB;IACvB,6BAAqB;IACrB,6BAAqB;IACrB,6BAAqB;CACtB,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,uBAAuB,GAAG,mBAAmB,CAAC;AAC9C,QAAA,qBAAqB,GAAG,iBAAiB,CAAC;AAC1C,QAAA,qBAAqB,GAAG,iBAAiB,CAAC;AAC1C,QAAA,qBAAqB,GAAG,iBAAiB,CAAC;AAC1C,QAAA,qBAAqB,GAAG,iBAAiB,CAAC;AAE1C,QAAA,8BAA8B,GAAG;IAC5C,4BAAoB;IACpB,6BAAqB;IACrB,2BAAmB;IACnB,+BAAuB;IACvB,8BAAsB;IACtB,6BAAqB;IACrB,+BAAuB;IACvB,6BAAqB;IACrB,6BAAqB;IACrB,6BAAqB;IACrB,6BAAqB;CACtB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const ENDPOINT_XAI_CHAT_COMPLETIONS_API = "https://api.x.ai/v1/chat/completions";
|
|
2
|
+
export declare const MODEL_GROK_4_5 = "grok-4.5";
|
|
2
3
|
export declare const MODEL_GROK_4_3 = "grok-4.3";
|
|
3
4
|
export declare const MODEL_GROK_4_20_REASONING = "grok-4.20-0309-reasoning";
|
|
4
5
|
export declare const MODEL_GROK_4_20_NON_REASONING = "grok-4.20-0309-non-reasoning";
|
|
@@ -14,8 +15,16 @@ export declare function isXaiVisionModel(model: string): boolean;
|
|
|
14
15
|
* Check if a model supports the xAI reasoning_effort parameter
|
|
15
16
|
*/
|
|
16
17
|
export declare function isXaiReasoningEffortModel(model: string): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Check if a model supports disabling reasoning with reasoning_effort none
|
|
20
|
+
*/
|
|
21
|
+
export declare function isXaiReasoningEffortNoneModel(model: string): boolean;
|
|
17
22
|
/**
|
|
18
23
|
* Get default reasoning effort for xAI models
|
|
19
24
|
*/
|
|
20
25
|
export declare function getDefaultXaiReasoningEffort(model: string): XaiReasoningEffort | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Normalize xAI reasoning_effort for each model's documented support
|
|
28
|
+
*/
|
|
29
|
+
export declare function normalizeXaiReasoningEffort(model: string, reasoningEffort?: XaiReasoningEffort): XaiReasoningEffort | undefined;
|
|
21
30
|
//# sourceMappingURL=xai.d.ts.map
|
|
@@ -1 +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,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,yBAAyB,6BAA6B,CAAC;AACpE,eAAO,MAAM,6BAA6B,iCAAiC,CAAC;AAC5E,eAAO,MAAM,6BAA6B,4BAA4B,CAAC;AACvE,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAE/E,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAGpE,eAAO,MAAM,2BAA2B,
|
|
1
|
+
{"version":3,"file":"xai.d.ts","sourceRoot":"","sources":["../../../src/constants/xai.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iCAAiC,yCACN,CAAC;AAGzC,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,yBAAyB,6BAA6B,CAAC;AACpE,eAAO,MAAM,6BAA6B,iCAAiC,CAAC;AAC5E,eAAO,MAAM,6BAA6B,4BAA4B,CAAC;AACvE,eAAO,MAAM,iCAAiC,gCAAgC,CAAC;AAE/E,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAGpE,eAAO,MAAM,2BAA2B,UAOvC,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,GACZ,kBAAkB,GAAG,SAAS,CAMhC;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,EACb,eAAe,CAAC,EAAE,kBAAkB,GACnC,kBAAkB,GAAG,SAAS,CAUhC"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
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.MODEL_GROK_4_3 = exports.ENDPOINT_XAI_CHAT_COMPLETIONS_API = void 0;
|
|
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.MODEL_GROK_4_3 = exports.MODEL_GROK_4_5 = exports.ENDPOINT_XAI_CHAT_COMPLETIONS_API = void 0;
|
|
4
4
|
exports.isXaiVisionModel = isXaiVisionModel;
|
|
5
5
|
exports.isXaiReasoningEffortModel = isXaiReasoningEffortModel;
|
|
6
|
+
exports.isXaiReasoningEffortNoneModel = isXaiReasoningEffortNoneModel;
|
|
6
7
|
exports.getDefaultXaiReasoningEffort = getDefaultXaiReasoningEffort;
|
|
8
|
+
exports.normalizeXaiReasoningEffort = normalizeXaiReasoningEffort;
|
|
7
9
|
exports.ENDPOINT_XAI_CHAT_COMPLETIONS_API = 'https://api.x.ai/v1/chat/completions';
|
|
8
10
|
// xAI Grok models
|
|
11
|
+
exports.MODEL_GROK_4_5 = 'grok-4.5';
|
|
9
12
|
exports.MODEL_GROK_4_3 = 'grok-4.3';
|
|
10
13
|
exports.MODEL_GROK_4_20_REASONING = 'grok-4.20-0309-reasoning';
|
|
11
14
|
exports.MODEL_GROK_4_20_NON_REASONING = 'grok-4.20-0309-non-reasoning';
|
|
@@ -13,6 +16,7 @@ exports.MODEL_GROK_4_1_FAST_REASONING = 'grok-4-1-fast-reasoning';
|
|
|
13
16
|
exports.MODEL_GROK_4_1_FAST_NON_REASONING = 'grok-4-1-fast-non-reasoning';
|
|
14
17
|
// Vision support for models
|
|
15
18
|
exports.XAI_VISION_SUPPORTED_MODELS = [
|
|
19
|
+
exports.MODEL_GROK_4_5,
|
|
16
20
|
exports.MODEL_GROK_4_3,
|
|
17
21
|
exports.MODEL_GROK_4_20_REASONING,
|
|
18
22
|
exports.MODEL_GROK_4_20_NON_REASONING,
|
|
@@ -29,12 +33,33 @@ function isXaiVisionModel(model) {
|
|
|
29
33
|
* Check if a model supports the xAI reasoning_effort parameter
|
|
30
34
|
*/
|
|
31
35
|
function isXaiReasoningEffortModel(model) {
|
|
36
|
+
return model === exports.MODEL_GROK_4_5 || model === exports.MODEL_GROK_4_3;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Check if a model supports disabling reasoning with reasoning_effort none
|
|
40
|
+
*/
|
|
41
|
+
function isXaiReasoningEffortNoneModel(model) {
|
|
32
42
|
return model === exports.MODEL_GROK_4_3;
|
|
33
43
|
}
|
|
34
44
|
/**
|
|
35
45
|
* Get default reasoning effort for xAI models
|
|
36
46
|
*/
|
|
37
47
|
function getDefaultXaiReasoningEffort(model) {
|
|
38
|
-
|
|
48
|
+
if (model === exports.MODEL_GROK_4_5) {
|
|
49
|
+
return 'low';
|
|
50
|
+
}
|
|
51
|
+
return isXaiReasoningEffortNoneModel(model) ? 'none' : undefined;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Normalize xAI reasoning_effort for each model's documented support
|
|
55
|
+
*/
|
|
56
|
+
function normalizeXaiReasoningEffort(model, reasoningEffort) {
|
|
57
|
+
if (!isXaiReasoningEffortModel(model)) {
|
|
58
|
+
return undefined;
|
|
59
|
+
}
|
|
60
|
+
if (reasoningEffort === 'none' && !isXaiReasoningEffortNoneModel(model)) {
|
|
61
|
+
return 'low';
|
|
62
|
+
}
|
|
63
|
+
return reasoningEffort ?? getDefaultXaiReasoningEffort(model);
|
|
39
64
|
}
|
|
40
65
|
//# sourceMappingURL=xai.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xai.js","sourceRoot":"","sources":["../../../src/constants/xai.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"xai.js","sourceRoot":"","sources":["../../../src/constants/xai.ts"],"names":[],"mappings":";;;AA0BA,4CAEC;AAKD,8DAEC;AAKD,sEAEC;AAKD,oEAQC;AAKD,kEAaC;AAzEY,QAAA,iCAAiC,GAC5C,sCAAsC,CAAC;AAEzC,kBAAkB;AACL,QAAA,cAAc,GAAG,UAAU,CAAC;AAC5B,QAAA,cAAc,GAAG,UAAU,CAAC;AAC5B,QAAA,yBAAyB,GAAG,0BAA0B,CAAC;AACvD,QAAA,6BAA6B,GAAG,8BAA8B,CAAC;AAC/D,QAAA,6BAA6B,GAAG,yBAAyB,CAAC;AAC1D,QAAA,iCAAiC,GAAG,6BAA6B,CAAC;AAI/E,4BAA4B;AACf,QAAA,2BAA2B,GAAG;IACzC,sBAAc;IACd,sBAAc;IACd,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;AAED;;GAEG;AACH,SAAgB,yBAAyB,CAAC,KAAa;IACrD,OAAO,KAAK,KAAK,sBAAc,IAAI,KAAK,KAAK,sBAAc,CAAC;AAC9D,CAAC;AAED;;GAEG;AACH,SAAgB,6BAA6B,CAAC,KAAa;IACzD,OAAO,KAAK,KAAK,sBAAc,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,SAAgB,4BAA4B,CAC1C,KAAa;IAEb,IAAI,KAAK,KAAK,sBAAc,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,6BAA6B,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,SAAgB,2BAA2B,CACzC,KAAa,EACb,eAAoC;IAEpC,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,eAAe,KAAK,MAAM,IAAI,CAAC,6BAA6B,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,eAAe,IAAI,4BAA4B,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ChatService } from './ChatService';
|
|
2
2
|
import { ChatServiceOptionsByProvider, ChatProviderName, ChatServiceProvider, VisionSupportLevel } from './providers/ChatServiceProvider';
|
|
3
|
+
import type { ChatProviderCapabilities } from '../types/capabilities';
|
|
3
4
|
/**
|
|
4
5
|
* Chat service factory
|
|
5
6
|
* Manages and creates various AI providers
|
|
@@ -35,6 +36,14 @@ export declare class ChatServiceFactory {
|
|
|
35
36
|
* @returns Array of supported models, empty array if provider doesn't exist
|
|
36
37
|
*/
|
|
37
38
|
static getSupportedModels(providerName: string): string[];
|
|
39
|
+
/**
|
|
40
|
+
* Get machine-readable provider capabilities for UI and agent planning.
|
|
41
|
+
*/
|
|
42
|
+
static getProviderCapabilities(providerName: string, model?: string): ChatProviderCapabilities | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Get machine-readable capabilities for all registered providers.
|
|
45
|
+
*/
|
|
46
|
+
static getAllProviderCapabilities(): ChatProviderCapabilities[];
|
|
38
47
|
/**
|
|
39
48
|
* Get provider-level vision support status.
|
|
40
49
|
*/
|
|
@@ -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,EAEL,4BAA4B,EAC5B,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;
|
|
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,EACnB,kBAAkB,EACnB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAkCtE;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,kCAAkC;IAClC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAoD;IAE5E;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,mBAAmB,CAAC,GAAG,CAAC,GAAG,IAAI;IAIjE;;;;;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,GAAG,CAAC,CAAC;IAI5D;;;OAGG;IACH,MAAM,CAAC,qBAAqB,IAAI,MAAM,EAAE;IAIxC;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE;IAKzD;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAC5B,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,GACb,wBAAwB,GAAG,SAAS;IA4BvC;;OAEG;IACH,MAAM,CAAC,0BAA0B,IAAI,wBAAwB,EAAE;IAS/D;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,kBAAkB;IAKtE;;OAEG;IACH,MAAM,CAAC,6BAA6B,CAClC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACZ,kBAAkB;CAkBtB"}
|
|
@@ -2,6 +2,34 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ChatServiceFactory = void 0;
|
|
4
4
|
const providers_1 = require("./providers");
|
|
5
|
+
const TOOL_SUPPORTED_PROVIDERS = new Set([
|
|
6
|
+
'openai',
|
|
7
|
+
'openai-compatible',
|
|
8
|
+
'openrouter',
|
|
9
|
+
'gemini',
|
|
10
|
+
'claude',
|
|
11
|
+
'zai',
|
|
12
|
+
'xai',
|
|
13
|
+
'kimi',
|
|
14
|
+
'deepseek',
|
|
15
|
+
'mistral',
|
|
16
|
+
'sakana',
|
|
17
|
+
'plamo',
|
|
18
|
+
]);
|
|
19
|
+
const MCP_SUPPORTED_PROVIDERS = new Set(['openai', 'gemini', 'claude']);
|
|
20
|
+
const JSON_MODE_SUPPORTED_PROVIDERS = new Set([
|
|
21
|
+
'openai',
|
|
22
|
+
'openai-compatible',
|
|
23
|
+
'zai',
|
|
24
|
+
'kimi',
|
|
25
|
+
]);
|
|
26
|
+
const REASONING_EFFORT_BY_PROVIDER = {
|
|
27
|
+
openai: ['none', 'minimal', 'low', 'medium', 'high', 'xhigh'],
|
|
28
|
+
openrouter: ['none', 'minimal', 'low', 'medium', 'high'],
|
|
29
|
+
mistral: ['low', 'medium', 'high'],
|
|
30
|
+
plamo: ['none', 'medium'],
|
|
31
|
+
xai: ['none', 'low', 'medium', 'high'],
|
|
32
|
+
};
|
|
5
33
|
/**
|
|
6
34
|
* Chat service factory
|
|
7
35
|
* Manages and creates various AI providers
|
|
@@ -44,6 +72,41 @@ class ChatServiceFactory {
|
|
|
44
72
|
const provider = this.providers.get(providerName);
|
|
45
73
|
return provider ? provider.getSupportedModels() : [];
|
|
46
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Get machine-readable provider capabilities for UI and agent planning.
|
|
77
|
+
*/
|
|
78
|
+
static getProviderCapabilities(providerName, model) {
|
|
79
|
+
const provider = this.providers.get(providerName);
|
|
80
|
+
if (!provider) {
|
|
81
|
+
return undefined;
|
|
82
|
+
}
|
|
83
|
+
const vision = model
|
|
84
|
+
? this.getVisionSupportLevelForModel(providerName, model)
|
|
85
|
+
: provider.getVisionSupportLevel();
|
|
86
|
+
return {
|
|
87
|
+
provider: providerName,
|
|
88
|
+
models: provider.getSupportedModels(),
|
|
89
|
+
defaultModel: typeof provider.getDefaultModel === 'function'
|
|
90
|
+
? provider.getDefaultModel()
|
|
91
|
+
: undefined,
|
|
92
|
+
text: true,
|
|
93
|
+
streaming: true,
|
|
94
|
+
vision,
|
|
95
|
+
tools: TOOL_SUPPORTED_PROVIDERS.has(providerName),
|
|
96
|
+
mcp: MCP_SUPPORTED_PROVIDERS.has(providerName),
|
|
97
|
+
jsonMode: JSON_MODE_SUPPORTED_PROVIDERS.has(providerName),
|
|
98
|
+
responseLength: true,
|
|
99
|
+
reasoningEffort: REASONING_EFFORT_BY_PROVIDER[providerName] ?? [],
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get machine-readable capabilities for all registered providers.
|
|
104
|
+
*/
|
|
105
|
+
static getAllProviderCapabilities() {
|
|
106
|
+
return this.getAvailableProviders()
|
|
107
|
+
.map((providerName) => this.getProviderCapabilities(providerName))
|
|
108
|
+
.filter((capabilities) => capabilities !== undefined);
|
|
109
|
+
}
|
|
47
110
|
/**
|
|
48
111
|
* Get provider-level vision support status.
|
|
49
112
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatServiceFactory.js","sourceRoot":"","sources":["../../../src/services/ChatServiceFactory.ts"],"names":[],"mappings":";;;AAQA,2CAA6D;
|
|
1
|
+
{"version":3,"file":"ChatServiceFactory.js","sourceRoot":"","sources":["../../../src/services/ChatServiceFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/claude/ClaudeChatServiceProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ClaudeChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/claude/ClaudeChatServiceProvider.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAGhC;;GAEG;AACH,qBAAa,yBACX,YAAW,mBAAmB,CAAC,wBAAwB,CAAC;IAExD;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW;IAqBjE;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAgB9B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,kBAAkB;IAI3C;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9C,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;CAGjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClaudeChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/claude/ClaudeChatServiceProvider.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"ClaudeChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/claude/ClaudeChatServiceProvider.ts"],"names":[],"mappings":";;;AAAA,kDAa4B;AAE5B,2DAAwD;AAOxD,0CAAoD;AAEpD;;GAEG;AACH,MAAa,yBAAyB;IAGpC;;;;OAIG;IACH,iBAAiB,CAAC,OAAiC;QACjD,gFAAgF;QAChF,MAAM,WAAW,GAAG,IAAA,0BAAkB,EAAC;YACrC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,kBAAkB,EAAE,IAAI,CAAC,eAAe,EAAE;YAC1C,sBAAsB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC;YACrE,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;QAEH,OAAO,IAAI,qCAAiB,CAC1B,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,EACvC,WAAW,EACX,OAAO,CAAC,KAAK,IAAI,EAAE,EACnB,OAAO,CAAC,UAAU,IAAI,EAAE,EACxB,OAAO,CAAC,cAAc,CACvB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,OAAO;YACL,iCAAqB;YACrB,+BAAmB;YACnB,mCAAuB;YACvB,kCAAsB;YACtB,iCAAqB;YACrB,mCAAuB;YACvB,iCAAqB;YACrB,iCAAqB;YACrB,iCAAqB;YACrB,iCAAqB;YACrB,gCAAoB;SACrB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,eAAe;QACb,OAAO,kCAAsB,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,qBAAqB,EAAE,KAAK,aAAa,CAAC;IACxD,CAAC;IAED,qBAAqB;QACnB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,KAAa;QAClC,OAAO,0CAA8B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,6BAA6B,CAAC,KAAa;QACzC,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;IAC1E,CAAC;CACF;AAzFD,8DAyFC"}
|
|
@@ -2,6 +2,8 @@ import { ChatService } from '../../ChatService';
|
|
|
2
2
|
import type { OpenAIReasoningEffort } from '../../../constants';
|
|
3
3
|
import type { ChatResponseLength } from '../../../constants/chat';
|
|
4
4
|
import type { MCPServerConfig, Message, MessageWithVision, ToolChatCompletion, ToolDefinition } from '../../../types';
|
|
5
|
+
import type { BaseChatServiceOptions } from '../ChatServiceProvider';
|
|
6
|
+
type OpenAIResponseFormat = NonNullable<BaseChatServiceOptions['responseFormat']>;
|
|
5
7
|
/**
|
|
6
8
|
* OpenAI implementation of ChatService
|
|
7
9
|
*/
|
|
@@ -18,13 +20,14 @@ export declare class OpenAIChatService implements ChatService {
|
|
|
18
20
|
private verbosity?;
|
|
19
21
|
private reasoning_effort?;
|
|
20
22
|
private enableReasoningSummary?;
|
|
23
|
+
private responseFormat?;
|
|
21
24
|
/**
|
|
22
25
|
* Constructor
|
|
23
26
|
* @param apiKey OpenAI API key
|
|
24
27
|
* @param model Name of the model to use
|
|
25
28
|
* @param visionModel Name of the vision model
|
|
26
29
|
*/
|
|
27
|
-
constructor(apiKey: string, model?: string, visionModel?: string, tools?: ToolDefinition[], endpoint?: string, mcpServers?: MCPServerConfig[], responseLength?: ChatResponseLength, verbosity?: 'low' | 'medium' | 'high', reasoning_effort?: OpenAIReasoningEffort, enableReasoningSummary?: boolean, provider?: string, validateVisionModel?: boolean);
|
|
30
|
+
constructor(apiKey: string, model?: string, visionModel?: string, tools?: ToolDefinition[], endpoint?: string, mcpServers?: MCPServerConfig[], responseLength?: ChatResponseLength, verbosity?: 'low' | 'medium' | 'high', reasoning_effort?: OpenAIReasoningEffort, enableReasoningSummary?: boolean, provider?: string, validateVisionModel?: boolean, responseFormat?: OpenAIResponseFormat);
|
|
28
31
|
/**
|
|
29
32
|
* Get the current model name
|
|
30
33
|
* @returns Model name
|
|
@@ -77,4 +80,5 @@ export declare class OpenAIChatService implements ChatService {
|
|
|
77
80
|
private parseStream;
|
|
78
81
|
private parseOneShot;
|
|
79
82
|
}
|
|
83
|
+
export {};
|
|
80
84
|
//# sourceMappingURL=OpenAIChatService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIChatService.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openai/OpenAIChatService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOhD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EACV,eAAe,EACf,OAAO,EACP,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACf,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"OpenAIChatService.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openai/OpenAIChatService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOhD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EACV,eAAe,EACf,OAAO,EACP,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAerE,KAAK,oBAAoB,GAAG,WAAW,CACrC,sBAAsB,CAAC,gBAAgB,CAAC,CACzC,CAAC;AAEF;;GAEG;AACH,qBAAa,iBAAkB,YAAW,WAAW;IACnD,oBAAoB;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,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,UAAU,CAAoB;IACtC,OAAO,CAAC,cAAc,CAAC,CAAqB;IAC5C,OAAO,CAAC,SAAS,CAAC,CAA4B;IAC9C,OAAO,CAAC,gBAAgB,CAAC,CAAwB;IACjD,OAAO,CAAC,sBAAsB,CAAC,CAAU;IACzC,OAAO,CAAC,cAAc,CAAC,CAAuB;IAE9C;;;;;OAKG;gBAED,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAA0B,EACjC,WAAW,GAAE,MAA0B,EACvC,KAAK,CAAC,EAAE,cAAc,EAAE,EACxB,QAAQ,GAAE,MAA6C,EACvD,UAAU,GAAE,eAAe,EAAO,EAClC,cAAc,CAAC,EAAE,kBAAkB,EACnC,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,EACrC,gBAAgB,CAAC,EAAE,qBAAqB,EACxC,sBAAsB,GAAE,OAAe,EACvC,QAAQ,GAAE,MAAiB,EAC3B,mBAAmB,GAAE,OAAc,EACnC,cAAc,CAAC,EAAE,oBAAoB;IA0BvC;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;OAGG;IACH,cAAc,IAAI,MAAM;IAIxB;;;;;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;IA6BhB;;;;;;OAMG;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;IAuChB;;;;;;;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;IAK9B;;;;;;;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;IAU9B;;OAEG;YACW,aAAa;YAkBb,UAAU;YAiCV,YAAY;YAIZ,WAAW;IASzB,OAAO,CAAC,YAAY;CAGrB"}
|
|
@@ -17,7 +17,7 @@ class OpenAIChatService {
|
|
|
17
17
|
* @param model Name of the model to use
|
|
18
18
|
* @param visionModel Name of the vision model
|
|
19
19
|
*/
|
|
20
|
-
constructor(apiKey, model = constants_1.MODEL_GPT_4O_MINI, visionModel = constants_1.MODEL_GPT_4O_MINI, tools, endpoint = constants_1.ENDPOINT_OPENAI_CHAT_COMPLETIONS_API, mcpServers = [], responseLength, verbosity, reasoning_effort, enableReasoningSummary = false, provider = 'openai', validateVisionModel = true) {
|
|
20
|
+
constructor(apiKey, model = constants_1.MODEL_GPT_4O_MINI, visionModel = constants_1.MODEL_GPT_4O_MINI, tools, endpoint = constants_1.ENDPOINT_OPENAI_CHAT_COMPLETIONS_API, mcpServers = [], responseLength, verbosity, reasoning_effort, enableReasoningSummary = false, provider = 'openai', validateVisionModel = true, responseFormat) {
|
|
21
21
|
this.provider = provider;
|
|
22
22
|
this.apiKey = apiKey;
|
|
23
23
|
this.model = model;
|
|
@@ -29,6 +29,7 @@ class OpenAIChatService {
|
|
|
29
29
|
this.verbosity = verbosity;
|
|
30
30
|
this.reasoning_effort = reasoning_effort;
|
|
31
31
|
this.enableReasoningSummary = enableReasoningSummary;
|
|
32
|
+
this.responseFormat = responseFormat;
|
|
32
33
|
// Official OpenAI validates vision model names strictly.
|
|
33
34
|
// Compatible providers can skip this to support arbitrary local IDs.
|
|
34
35
|
if (validateVisionModel && !constants_1.VISION_SUPPORTED_MODELS.includes(visionModel)) {
|
|
@@ -168,6 +169,7 @@ class OpenAIChatService {
|
|
|
168
169
|
verbosity: this.verbosity,
|
|
169
170
|
reasoning_effort: this.reasoning_effort,
|
|
170
171
|
enableReasoningSummary: this.enableReasoningSummary,
|
|
172
|
+
responseFormat: this.responseFormat,
|
|
171
173
|
maxTokens,
|
|
172
174
|
});
|
|
173
175
|
const headers = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIChatService.js","sourceRoot":"","sources":["../../../../../src/services/providers/openai/OpenAIChatService.ts"],"names":[],"mappings":";;;AACA,kDAK4B;
|
|
1
|
+
{"version":3,"file":"OpenAIChatService.js","sourceRoot":"","sources":["../../../../../src/services/providers/openai/OpenAIChatService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenAIChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openai/OpenAIChatServiceProvider.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAIhC;;GAEG;AACH,qBAAa,yBACX,YAAW,mBAAmB,CAAC,wBAAwB,CAAC;IAExD;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW;
|
|
1
|
+
{"version":3,"file":"OpenAIChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openai/OpenAIChatServiceProvider.ts"],"names":[],"mappings":"AA+BA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAIhC;;GAEG;AACH,qBAAa,yBACX,YAAW,mBAAmB,CAAC,wBAAwB,CAAC;IAExD;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,WAAW;IA8DjE;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAsB9B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,kBAAkB;IAI3C;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9C,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAIhE;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAoC3B;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;CA+BjC"}
|
|
@@ -50,7 +50,23 @@ class OpenAIChatServiceProvider {
|
|
|
50
50
|
(shouldUseResponsesAPI
|
|
51
51
|
? constants_1.ENDPOINT_OPENAI_RESPONSES_API
|
|
52
52
|
: constants_1.ENDPOINT_OPENAI_CHAT_COMPLETIONS_API);
|
|
53
|
-
|
|
53
|
+
const serviceArgs = [
|
|
54
|
+
optimizedOptions.apiKey,
|
|
55
|
+
modelName,
|
|
56
|
+
visionModel,
|
|
57
|
+
tools,
|
|
58
|
+
endpoint,
|
|
59
|
+
mcpServers,
|
|
60
|
+
optimizedOptions.responseLength,
|
|
61
|
+
optimizedOptions.verbosity,
|
|
62
|
+
optimizedOptions.reasoning_effort,
|
|
63
|
+
optimizedOptions.enableReasoningSummary,
|
|
64
|
+
this.getProviderName(),
|
|
65
|
+
];
|
|
66
|
+
if (optimizedOptions.responseFormat !== undefined) {
|
|
67
|
+
serviceArgs.push(true, optimizedOptions.responseFormat);
|
|
68
|
+
}
|
|
69
|
+
return new OpenAIChatService_1.OpenAIChatService(...serviceArgs);
|
|
54
70
|
}
|
|
55
71
|
/**
|
|
56
72
|
* Get the provider name
|