@aituber-onair/chat 0.54.0 → 0.56.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 +54 -10
- package/README.md +56 -11
- package/dist/cjs/constants/claude.d.ts +2 -0
- package/dist/cjs/constants/claude.d.ts.map +1 -1
- package/dist/cjs/constants/claude.js +6 -1
- package/dist/cjs/constants/claude.js.map +1 -1
- package/dist/cjs/constants/deepseek.d.ts +1 -0
- package/dist/cjs/constants/deepseek.d.ts.map +1 -1
- package/dist/cjs/constants/deepseek.js +5 -2
- package/dist/cjs/constants/deepseek.js.map +1 -1
- package/dist/cjs/constants/openai.d.ts +10 -3
- package/dist/cjs/constants/openai.d.ts.map +1 -1
- package/dist/cjs/constants/openai.js +40 -7
- package/dist/cjs/constants/openai.js.map +1 -1
- package/dist/cjs/constants/openrouter.d.ts +11 -0
- package/dist/cjs/constants/openrouter.d.ts.map +1 -1
- package/dist/cjs/constants/openrouter.js +93 -3
- package/dist/cjs/constants/openrouter.js.map +1 -1
- package/dist/cjs/constants/xai.d.ts +1 -0
- package/dist/cjs/constants/xai.d.ts.map +1 -1
- package/dist/cjs/constants/xai.js +7 -2
- package/dist/cjs/constants/xai.js.map +1 -1
- package/dist/cjs/services/ChatService.d.ts +2 -0
- package/dist/cjs/services/ChatService.d.ts.map +1 -1
- package/dist/cjs/services/ChatServiceFactory.d.ts.map +1 -1
- package/dist/cjs/services/ChatServiceFactory.js +23 -15
- package/dist/cjs/services/ChatServiceFactory.js.map +1 -1
- package/dist/cjs/services/providers/ChatServiceProvider.d.ts +2 -0
- package/dist/cjs/services/providers/ChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js +2 -0
- package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatService.d.ts +24 -3
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatService.js +211 -15
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatService.js.map +1 -1
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatServiceProvider.js +1 -0
- package/dist/cjs/services/providers/geminiNano/GeminiNanoChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/openai/OpenAIChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/openai/OpenAIChatService.js +6 -2
- 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 -4
- package/dist/cjs/services/providers/openai/OpenAIChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/openai/openaiRequestBuilder.d.ts.map +1 -1
- package/dist/cjs/services/providers/openai/openaiRequestBuilder.js +9 -3
- package/dist/cjs/services/providers/openai/openaiRequestBuilder.js.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js +8 -2
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js +11 -0
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/xai/XAIChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/xai/XAIChatServiceProvider.js +1 -0
- package/dist/cjs/services/providers/xai/XAIChatServiceProvider.js.map +1 -1
- package/dist/esm/constants/claude.d.ts +2 -0
- package/dist/esm/constants/claude.d.ts.map +1 -1
- package/dist/esm/constants/claude.js +5 -0
- package/dist/esm/constants/claude.js.map +1 -1
- package/dist/esm/constants/deepseek.d.ts +1 -0
- package/dist/esm/constants/deepseek.d.ts.map +1 -1
- package/dist/esm/constants/deepseek.js +4 -1
- package/dist/esm/constants/deepseek.js.map +1 -1
- package/dist/esm/constants/openai.d.ts +10 -3
- package/dist/esm/constants/openai.d.ts.map +1 -1
- package/dist/esm/constants/openai.js +37 -6
- package/dist/esm/constants/openai.js.map +1 -1
- package/dist/esm/constants/openrouter.d.ts +11 -0
- package/dist/esm/constants/openrouter.d.ts.map +1 -1
- package/dist/esm/constants/openrouter.js +91 -1
- package/dist/esm/constants/openrouter.js.map +1 -1
- package/dist/esm/constants/xai.d.ts +1 -0
- package/dist/esm/constants/xai.d.ts.map +1 -1
- package/dist/esm/constants/xai.js +6 -1
- package/dist/esm/constants/xai.js.map +1 -1
- package/dist/esm/services/ChatService.d.ts +2 -0
- package/dist/esm/services/ChatService.d.ts.map +1 -1
- package/dist/esm/services/ChatServiceFactory.d.ts.map +1 -1
- package/dist/esm/services/ChatServiceFactory.js +23 -15
- package/dist/esm/services/ChatServiceFactory.js.map +1 -1
- package/dist/esm/services/providers/ChatServiceProvider.d.ts +2 -0
- package/dist/esm/services/providers/ChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js +3 -1
- package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatService.d.ts +24 -3
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatService.js +211 -15
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatService.js.map +1 -1
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatServiceProvider.js +1 -0
- package/dist/esm/services/providers/geminiNano/GeminiNanoChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/openai/OpenAIChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/openai/OpenAIChatService.js +7 -3
- 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 +18 -5
- package/dist/esm/services/providers/openai/OpenAIChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/openai/openaiRequestBuilder.d.ts.map +1 -1
- package/dist/esm/services/providers/openai/openaiRequestBuilder.js +10 -4
- package/dist/esm/services/providers/openai/openaiRequestBuilder.js.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.js +9 -3
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.js.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js +12 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/xai/XAIChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/xai/XAIChatServiceProvider.js +2 -1
- package/dist/esm/services/providers/xai/XAIChatServiceProvider.js.map +1 -1
- package/dist/umd/aituber-onair-chat.js +457 -35
- package/dist/umd/aituber-onair-chat.min.js +8 -8
- package/package.json +1 -1
|
@@ -77,6 +77,7 @@ var AITuberOnAirChat = (() => {
|
|
|
77
77
|
MODEL_ANTHROPIC_CLAUDE_3_7_SONNET: () => MODEL_ANTHROPIC_CLAUDE_3_7_SONNET,
|
|
78
78
|
MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU: () => MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU,
|
|
79
79
|
MODEL_ANTHROPIC_CLAUDE_FABLE_5: () => MODEL_ANTHROPIC_CLAUDE_FABLE_5,
|
|
80
|
+
MODEL_ANTHROPIC_CLAUDE_FABLE_5_1: () => MODEL_ANTHROPIC_CLAUDE_FABLE_5_1,
|
|
80
81
|
MODEL_ANTHROPIC_CLAUDE_HAIKU_LATEST: () => MODEL_ANTHROPIC_CLAUDE_HAIKU_LATEST,
|
|
81
82
|
MODEL_ANTHROPIC_CLAUDE_OPUS_4: () => MODEL_ANTHROPIC_CLAUDE_OPUS_4,
|
|
82
83
|
MODEL_ANTHROPIC_CLAUDE_OPUS_4_8: () => MODEL_ANTHROPIC_CLAUDE_OPUS_4_8,
|
|
@@ -97,10 +98,13 @@ var AITuberOnAirChat = (() => {
|
|
|
97
98
|
MODEL_CLAUDE_4_8_OPUS: () => MODEL_CLAUDE_4_8_OPUS,
|
|
98
99
|
MODEL_CLAUDE_4_OPUS: () => MODEL_CLAUDE_4_OPUS,
|
|
99
100
|
MODEL_CLAUDE_4_SONNET: () => MODEL_CLAUDE_4_SONNET,
|
|
101
|
+
MODEL_CLAUDE_5_1_FABLE: () => MODEL_CLAUDE_5_1_FABLE,
|
|
102
|
+
MODEL_CLAUDE_5_5_OPUS: () => MODEL_CLAUDE_5_5_OPUS,
|
|
100
103
|
MODEL_CLAUDE_5_FABLE: () => MODEL_CLAUDE_5_FABLE,
|
|
101
104
|
MODEL_CLAUDE_5_OPUS: () => MODEL_CLAUDE_5_OPUS,
|
|
102
105
|
MODEL_CLAUDE_5_SONNET: () => MODEL_CLAUDE_5_SONNET,
|
|
103
106
|
MODEL_DEEPSEEK_CHAT: () => MODEL_DEEPSEEK_CHAT,
|
|
107
|
+
MODEL_DEEPSEEK_FLASH: () => MODEL_DEEPSEEK_FLASH,
|
|
104
108
|
MODEL_DEEPSEEK_REASONER: () => MODEL_DEEPSEEK_REASONER,
|
|
105
109
|
MODEL_DEEPSEEK_V4_FLASH: () => MODEL_DEEPSEEK_V4_FLASH,
|
|
106
110
|
MODEL_DEEPSEEK_V4_FLASH_VISION_EXP: () => MODEL_DEEPSEEK_V4_FLASH_VISION_EXP,
|
|
@@ -146,6 +150,7 @@ var AITuberOnAirChat = (() => {
|
|
|
146
150
|
MODEL_GOOGLE_GEMINI_3_5_FLASH_LITE: () => MODEL_GOOGLE_GEMINI_3_5_FLASH_LITE,
|
|
147
151
|
MODEL_GOOGLE_GEMINI_3_6_FLASH: () => MODEL_GOOGLE_GEMINI_3_6_FLASH,
|
|
148
152
|
MODEL_GOOGLE_GEMINI_3_7_FLASH: () => MODEL_GOOGLE_GEMINI_3_7_FLASH,
|
|
153
|
+
MODEL_GOOGLE_GEMINI_3_8_FLASH: () => MODEL_GOOGLE_GEMINI_3_8_FLASH,
|
|
149
154
|
MODEL_GOOGLE_GEMINI_FLASH_LATEST: () => MODEL_GOOGLE_GEMINI_FLASH_LATEST,
|
|
150
155
|
MODEL_GOOGLE_GEMINI_PRO_LATEST: () => MODEL_GOOGLE_GEMINI_PRO_LATEST,
|
|
151
156
|
MODEL_GPT_4O: () => MODEL_GPT_4O,
|
|
@@ -166,6 +171,9 @@ var AITuberOnAirChat = (() => {
|
|
|
166
171
|
MODEL_GPT_5_6_TERRA: () => MODEL_GPT_5_6_TERRA,
|
|
167
172
|
MODEL_GPT_5_MINI: () => MODEL_GPT_5_MINI,
|
|
168
173
|
MODEL_GPT_5_NANO: () => MODEL_GPT_5_NANO,
|
|
174
|
+
MODEL_GPT_6_ASTRA: () => MODEL_GPT_6_ASTRA,
|
|
175
|
+
MODEL_GPT_6_LUNA: () => MODEL_GPT_6_LUNA,
|
|
176
|
+
MODEL_GPT_6_SOL: () => MODEL_GPT_6_SOL,
|
|
169
177
|
MODEL_GPT_OSS_20B_FREE: () => MODEL_GPT_OSS_20B_FREE,
|
|
170
178
|
MODEL_GROK_4_1_FAST_NON_REASONING: () => MODEL_GROK_4_1_FAST_NON_REASONING,
|
|
171
179
|
MODEL_GROK_4_1_FAST_REASONING: () => MODEL_GROK_4_1_FAST_REASONING,
|
|
@@ -174,6 +182,9 @@ var AITuberOnAirChat = (() => {
|
|
|
174
182
|
MODEL_GROK_4_3: () => MODEL_GROK_4_3,
|
|
175
183
|
MODEL_GROK_4_5: () => MODEL_GROK_4_5,
|
|
176
184
|
MODEL_GROK_4_6: () => MODEL_GROK_4_6,
|
|
185
|
+
MODEL_GROK_4_7: () => MODEL_GROK_4_7,
|
|
186
|
+
MODEL_INCEPTION_MERCURY_2_5: () => MODEL_INCEPTION_MERCURY_2_5,
|
|
187
|
+
MODEL_INCLUSIONAI_LING_3_0_FLASH_VL_FREE: () => MODEL_INCLUSIONAI_LING_3_0_FLASH_VL_FREE,
|
|
177
188
|
MODEL_KIMI_K2_5: () => MODEL_KIMI_K2_5,
|
|
178
189
|
MODEL_KIMI_K2_6: () => MODEL_KIMI_K2_6,
|
|
179
190
|
MODEL_KIMI_K2_7_CODE: () => MODEL_KIMI_K2_7_CODE,
|
|
@@ -181,6 +192,7 @@ var AITuberOnAirChat = (() => {
|
|
|
181
192
|
MODEL_KIMI_K3: () => MODEL_KIMI_K3,
|
|
182
193
|
MODEL_KWAIPILOT_KAT_CODER_AIR_V2_5: () => MODEL_KWAIPILOT_KAT_CODER_AIR_V2_5,
|
|
183
194
|
MODEL_KWAIPILOT_KAT_CODER_PRO_V2_5: () => MODEL_KWAIPILOT_KAT_CODER_PRO_V2_5,
|
|
195
|
+
MODEL_META_MUSE_SPARK_1_3: () => MODEL_META_MUSE_SPARK_1_3,
|
|
184
196
|
MODEL_MINISTRAL_14B_2512: () => MODEL_MINISTRAL_14B_2512,
|
|
185
197
|
MODEL_MINISTRAL_3B_2512: () => MODEL_MINISTRAL_3B_2512,
|
|
186
198
|
MODEL_MINISTRAL_8B_2512: () => MODEL_MINISTRAL_8B_2512,
|
|
@@ -195,6 +207,8 @@ var AITuberOnAirChat = (() => {
|
|
|
195
207
|
MODEL_MOONSHOTAI_KIMI_K2_7_CODE: () => MODEL_MOONSHOTAI_KIMI_K2_7_CODE,
|
|
196
208
|
MODEL_MOONSHOTAI_KIMI_K3: () => MODEL_MOONSHOTAI_KIMI_K3,
|
|
197
209
|
MODEL_MOONSHOTAI_KIMI_LATEST: () => MODEL_MOONSHOTAI_KIMI_LATEST,
|
|
210
|
+
MODEL_NEX_AGI_NEX_N2_5_MINI_FREE: () => MODEL_NEX_AGI_NEX_N2_5_MINI_FREE,
|
|
211
|
+
MODEL_NEX_AGI_NEX_N2_5_PRO_FREE: () => MODEL_NEX_AGI_NEX_N2_5_PRO_FREE,
|
|
198
212
|
MODEL_O1: () => MODEL_O1,
|
|
199
213
|
MODEL_O1_MINI: () => MODEL_O1_MINI,
|
|
200
214
|
MODEL_O3_MINI: () => MODEL_O3_MINI,
|
|
@@ -210,10 +224,13 @@ var AITuberOnAirChat = (() => {
|
|
|
210
224
|
MODEL_OPENAI_GPT_5_6_TERRA: () => MODEL_OPENAI_GPT_5_6_TERRA,
|
|
211
225
|
MODEL_OPENAI_GPT_5_MINI: () => MODEL_OPENAI_GPT_5_MINI,
|
|
212
226
|
MODEL_OPENAI_GPT_5_NANO: () => MODEL_OPENAI_GPT_5_NANO,
|
|
227
|
+
MODEL_OPENAI_GPT_6_ASTRA: () => MODEL_OPENAI_GPT_6_ASTRA,
|
|
228
|
+
MODEL_OPENAI_GPT_6_ASTRA_PRO: () => MODEL_OPENAI_GPT_6_ASTRA_PRO,
|
|
213
229
|
MODEL_OPENAI_GPT_LATEST: () => MODEL_OPENAI_GPT_LATEST,
|
|
214
230
|
MODEL_OPENAI_GPT_MINI_LATEST: () => MODEL_OPENAI_GPT_MINI_LATEST,
|
|
215
231
|
MODEL_OPENROUTER_AUTO: () => MODEL_OPENROUTER_AUTO,
|
|
216
232
|
MODEL_OPENROUTER_AUTO_BETA: () => MODEL_OPENROUTER_AUTO_BETA,
|
|
233
|
+
MODEL_OPENROUTER_DEEPSEEK_V4_1_FLASH: () => MODEL_OPENROUTER_DEEPSEEK_V4_1_FLASH,
|
|
217
234
|
MODEL_OPENROUTER_DEEPSEEK_V4_FLASH: () => MODEL_OPENROUTER_DEEPSEEK_V4_FLASH,
|
|
218
235
|
MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_0731: () => MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_0731,
|
|
219
236
|
MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_VISION_EXP: () => MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_VISION_EXP,
|
|
@@ -222,6 +239,7 @@ var AITuberOnAirChat = (() => {
|
|
|
222
239
|
MODEL_PLAMO_2_2_PRIME: () => MODEL_PLAMO_2_2_PRIME,
|
|
223
240
|
MODEL_PLAMO_3_0_PRIME: () => MODEL_PLAMO_3_0_PRIME,
|
|
224
241
|
MODEL_QWEN_QWEN_3_8_FLASH: () => MODEL_QWEN_QWEN_3_8_FLASH,
|
|
242
|
+
MODEL_QWEN_QWEN_3_8_MAX_0902: () => MODEL_QWEN_QWEN_3_8_MAX_0902,
|
|
225
243
|
MODEL_SAKANA_NAMAZU: () => MODEL_SAKANA_NAMAZU,
|
|
226
244
|
MODEL_XAI_GROK_4_5: () => MODEL_XAI_GROK_4_5,
|
|
227
245
|
MODEL_XAI_GROK_4_6: () => MODEL_XAI_GROK_4_6,
|
|
@@ -282,6 +300,7 @@ var AITuberOnAirChat = (() => {
|
|
|
282
300
|
getDefaultKimiReasoningEffort: () => getDefaultKimiReasoningEffort,
|
|
283
301
|
getDefaultOpenRouterReasoningEffort: () => getDefaultOpenRouterReasoningEffort,
|
|
284
302
|
getDefaultReasoningEffortForGPT5Model: () => getDefaultReasoningEffortForGPT5Model,
|
|
303
|
+
getDefaultReasoningEffortForOpenAIModel: () => getDefaultReasoningEffortForOpenAIModel,
|
|
285
304
|
getDefaultXaiReasoningEffort: () => getDefaultXaiReasoningEffort,
|
|
286
305
|
getDefaultZaiReasoningEffort: () => getDefaultZaiReasoningEffort,
|
|
287
306
|
getGeminiSupportedReasoningEfforts: () => getGeminiSupportedReasoningEfforts,
|
|
@@ -302,6 +321,7 @@ var AITuberOnAirChat = (() => {
|
|
|
302
321
|
isMistralReasoningEffort: () => isMistralReasoningEffort,
|
|
303
322
|
isMistralReasoningEffortModel: () => isMistralReasoningEffortModel,
|
|
304
323
|
isMistralVisionModel: () => isMistralVisionModel,
|
|
324
|
+
isOpenAIReasoningModel: () => isOpenAIReasoningModel,
|
|
305
325
|
isOpenRouterFreeModel: () => isOpenRouterFreeModel,
|
|
306
326
|
isOpenRouterVisionModel: () => isOpenRouterVisionModel,
|
|
307
327
|
isResponsesOnlyGPT5Model: () => isResponsesOnlyGPT5Model,
|
|
@@ -336,6 +356,9 @@ var AITuberOnAirChat = (() => {
|
|
|
336
356
|
// src/constants/openai.ts
|
|
337
357
|
var ENDPOINT_OPENAI_CHAT_COMPLETIONS_API = "https://api.openai.com/v1/chat/completions";
|
|
338
358
|
var ENDPOINT_OPENAI_RESPONSES_API = "https://api.openai.com/v1/responses";
|
|
359
|
+
var MODEL_GPT_6_ASTRA = "gpt-6-astra";
|
|
360
|
+
var MODEL_GPT_6_SOL = "gpt-6-sol";
|
|
361
|
+
var MODEL_GPT_6_LUNA = "gpt-6-luna";
|
|
339
362
|
var MODEL_GPT_5_NANO = "gpt-5-nano";
|
|
340
363
|
var MODEL_GPT_5_MINI = "gpt-5-mini";
|
|
341
364
|
var MODEL_GPT_5 = "gpt-5";
|
|
@@ -358,6 +381,9 @@ var AITuberOnAirChat = (() => {
|
|
|
358
381
|
var MODEL_O1_MINI = "o1-mini";
|
|
359
382
|
var MODEL_O1 = "o1";
|
|
360
383
|
var VISION_SUPPORTED_MODELS = [
|
|
384
|
+
MODEL_GPT_6_ASTRA,
|
|
385
|
+
MODEL_GPT_6_SOL,
|
|
386
|
+
MODEL_GPT_6_LUNA,
|
|
361
387
|
MODEL_GPT_5_NANO,
|
|
362
388
|
MODEL_GPT_5_MINI,
|
|
363
389
|
MODEL_GPT_5,
|
|
@@ -397,17 +423,20 @@ var AITuberOnAirChat = (() => {
|
|
|
397
423
|
function isGPT5Model(model) {
|
|
398
424
|
return GPT_5_MODELS.includes(model);
|
|
399
425
|
}
|
|
426
|
+
function isOpenAIReasoningModel(model) {
|
|
427
|
+
return model === MODEL_GPT_6_ASTRA || model === MODEL_GPT_6_SOL || model === MODEL_GPT_6_LUNA || isGPT5Model(model);
|
|
428
|
+
}
|
|
400
429
|
function isResponsesOnlyGPT5Model(model) {
|
|
401
430
|
return model === MODEL_GPT_5_4_PRO;
|
|
402
431
|
}
|
|
403
432
|
function allowsReasoningXHigh(model) {
|
|
404
|
-
return model === MODEL_GPT_5_6 || model === MODEL_GPT_5_6_SOL || model === MODEL_GPT_5_6_TERRA || model === MODEL_GPT_5_6_LUNA || model === MODEL_GPT_5_5 || model === MODEL_GPT_5_4 || model === MODEL_GPT_5_4_MINI || model === MODEL_GPT_5_4_NANO || model === MODEL_GPT_5_4_PRO;
|
|
433
|
+
return model === MODEL_GPT_6_ASTRA || model === MODEL_GPT_6_SOL || model === MODEL_GPT_6_LUNA || model === MODEL_GPT_5_6 || model === MODEL_GPT_5_6_SOL || model === MODEL_GPT_5_6_TERRA || model === MODEL_GPT_5_6_LUNA || model === MODEL_GPT_5_5 || model === MODEL_GPT_5_4 || model === MODEL_GPT_5_4_MINI || model === MODEL_GPT_5_4_NANO || model === MODEL_GPT_5_4_PRO;
|
|
405
434
|
}
|
|
406
435
|
function allowsReasoningMax(model) {
|
|
407
|
-
return model === MODEL_GPT_5_6 || model === MODEL_GPT_5_6_SOL || model === MODEL_GPT_5_6_TERRA || model === MODEL_GPT_5_6_LUNA;
|
|
436
|
+
return model === MODEL_GPT_6_ASTRA || model === MODEL_GPT_6_SOL || model === MODEL_GPT_6_LUNA || model === MODEL_GPT_5_6 || model === MODEL_GPT_5_6_SOL || model === MODEL_GPT_5_6_TERRA || model === MODEL_GPT_5_6_LUNA;
|
|
408
437
|
}
|
|
409
438
|
function allowsReasoningNone(model) {
|
|
410
|
-
return model === MODEL_GPT_5_6 || model === MODEL_GPT_5_6_SOL || model === MODEL_GPT_5_6_TERRA || model === MODEL_GPT_5_6_LUNA || model === MODEL_GPT_5_1 || model === MODEL_GPT_5_4 || model === MODEL_GPT_5_5 || model === MODEL_GPT_5_4_MINI || model === MODEL_GPT_5_4_NANO;
|
|
439
|
+
return model === MODEL_GPT_6_SOL || model === MODEL_GPT_6_LUNA || model === MODEL_GPT_5_6 || model === MODEL_GPT_5_6_SOL || model === MODEL_GPT_5_6_TERRA || model === MODEL_GPT_5_6_LUNA || model === MODEL_GPT_5_1 || model === MODEL_GPT_5_4 || model === MODEL_GPT_5_5 || model === MODEL_GPT_5_4_MINI || model === MODEL_GPT_5_4_NANO;
|
|
411
440
|
}
|
|
412
441
|
function allowsReasoningMinimal(model) {
|
|
413
442
|
return model === MODEL_GPT_5_NANO || model === MODEL_GPT_5_MINI || model === MODEL_GPT_5;
|
|
@@ -424,6 +453,9 @@ var AITuberOnAirChat = (() => {
|
|
|
424
453
|
}
|
|
425
454
|
return "medium";
|
|
426
455
|
}
|
|
456
|
+
function getDefaultReasoningEffortForOpenAIModel(model) {
|
|
457
|
+
return model === MODEL_GPT_6_ASTRA ? "low" : model === MODEL_GPT_6_SOL ? "medium" : model === MODEL_GPT_6_LUNA ? "low" : getDefaultReasoningEffortForGPT5Model(model);
|
|
458
|
+
}
|
|
427
459
|
|
|
428
460
|
// src/constants/gemini.ts
|
|
429
461
|
var ENDPOINT_GEMINI_API = "https://generativelanguage.googleapis.com";
|
|
@@ -520,6 +552,7 @@ var AITuberOnAirChat = (() => {
|
|
|
520
552
|
|
|
521
553
|
// src/constants/claude.ts
|
|
522
554
|
var ENDPOINT_CLAUDE_API = "https://api.anthropic.com/v1/messages";
|
|
555
|
+
var MODEL_CLAUDE_5_1_FABLE = "claude-fable-5-1";
|
|
523
556
|
var MODEL_CLAUDE_3_HAIKU = "claude-3-haiku-20240307";
|
|
524
557
|
var MODEL_CLAUDE_3_5_HAIKU = "claude-3-5-haiku-20241022";
|
|
525
558
|
var MODEL_CLAUDE_3_5_SONNET = "claude-3-5-sonnet-20241022";
|
|
@@ -536,6 +569,7 @@ var AITuberOnAirChat = (() => {
|
|
|
536
569
|
var MODEL_CLAUDE_5_FABLE = "claude-fable-5";
|
|
537
570
|
var MODEL_CLAUDE_5_SONNET = "claude-sonnet-5";
|
|
538
571
|
var MODEL_CLAUDE_5_OPUS = "claude-opus-5";
|
|
572
|
+
var MODEL_CLAUDE_5_5_OPUS = "claude-opus-5-5";
|
|
539
573
|
var CLAUDE_DEPRECATED_MODELS = [
|
|
540
574
|
MODEL_CLAUDE_3_HAIKU,
|
|
541
575
|
MODEL_CLAUDE_3_5_HAIKU,
|
|
@@ -564,11 +598,13 @@ var AITuberOnAirChat = (() => {
|
|
|
564
598
|
[MODEL_CLAUDE_4_6_OPUS]: CLAUDE_MAX_REASONING_EFFORTS,
|
|
565
599
|
[MODEL_CLAUDE_4_7_OPUS]: CLAUDE_XHIGH_REASONING_EFFORTS,
|
|
566
600
|
[MODEL_CLAUDE_4_8_OPUS]: CLAUDE_XHIGH_REASONING_EFFORTS,
|
|
601
|
+
[MODEL_CLAUDE_5_1_FABLE]: CLAUDE_XHIGH_REASONING_EFFORTS,
|
|
567
602
|
[MODEL_CLAUDE_5_FABLE]: CLAUDE_XHIGH_REASONING_EFFORTS,
|
|
568
603
|
[MODEL_CLAUDE_5_SONNET]: CLAUDE_XHIGH_REASONING_EFFORTS,
|
|
569
604
|
[MODEL_CLAUDE_5_OPUS]: CLAUDE_XHIGH_REASONING_EFFORTS
|
|
570
605
|
};
|
|
571
606
|
var CLAUDE_VISION_SUPPORTED_MODELS = [
|
|
607
|
+
MODEL_CLAUDE_5_1_FABLE,
|
|
572
608
|
MODEL_CLAUDE_4_5_SONNET,
|
|
573
609
|
MODEL_CLAUDE_4_5_HAIKU,
|
|
574
610
|
MODEL_CLAUDE_4_5_OPUS,
|
|
@@ -578,7 +614,8 @@ var AITuberOnAirChat = (() => {
|
|
|
578
614
|
MODEL_CLAUDE_4_8_OPUS,
|
|
579
615
|
MODEL_CLAUDE_5_FABLE,
|
|
580
616
|
MODEL_CLAUDE_5_SONNET,
|
|
581
|
-
MODEL_CLAUDE_5_OPUS
|
|
617
|
+
MODEL_CLAUDE_5_OPUS,
|
|
618
|
+
MODEL_CLAUDE_5_5_OPUS
|
|
582
619
|
];
|
|
583
620
|
function getClaudeSupportedReasoningEfforts(model) {
|
|
584
621
|
return CLAUDE_REASONING_EFFORTS_BY_MODEL[model] ?? [];
|
|
@@ -605,6 +642,17 @@ var AITuberOnAirChat = (() => {
|
|
|
605
642
|
|
|
606
643
|
// src/constants/openrouter.ts
|
|
607
644
|
var ENDPOINT_OPENROUTER_API = "https://openrouter.ai/api/v1/chat/completions";
|
|
645
|
+
var MODEL_OPENAI_GPT_6_ASTRA = "openai/gpt-6-astra";
|
|
646
|
+
var MODEL_OPENAI_GPT_6_ASTRA_PRO = "openai/gpt-6-astra-pro";
|
|
647
|
+
var MODEL_ANTHROPIC_CLAUDE_FABLE_5_1 = "anthropic/claude-fable-5.1";
|
|
648
|
+
var MODEL_OPENROUTER_DEEPSEEK_V4_1_FLASH = "deepseek/deepseek-v4.1-flash";
|
|
649
|
+
var MODEL_GOOGLE_GEMINI_3_8_FLASH = "google/gemini-3.8-flash";
|
|
650
|
+
var MODEL_INCLUSIONAI_LING_3_0_FLASH_VL_FREE = "inclusionai/ling-3.0-flash-vl:free";
|
|
651
|
+
var MODEL_INCEPTION_MERCURY_2_5 = "inception/mercury-2.5";
|
|
652
|
+
var MODEL_NEX_AGI_NEX_N2_5_MINI_FREE = "nex-agi/nex-n2.5-mini:free";
|
|
653
|
+
var MODEL_NEX_AGI_NEX_N2_5_PRO_FREE = "nex-agi/nex-n2.5-pro:free";
|
|
654
|
+
var MODEL_QWEN_QWEN_3_8_MAX_0902 = "qwen/qwen3.8-max-0902";
|
|
655
|
+
var MODEL_META_MUSE_SPARK_1_3 = "meta/muse-spark-1.3";
|
|
608
656
|
var MODEL_OPENROUTER_AUTO = "openrouter/auto";
|
|
609
657
|
var MODEL_OPENROUTER_AUTO_BETA = "openrouter/auto-beta";
|
|
610
658
|
var MODEL_OPENROUTER_FUSION = "openrouter/fusion";
|
|
@@ -711,8 +759,69 @@ var AITuberOnAirChat = (() => {
|
|
|
711
759
|
"xhigh",
|
|
712
760
|
"max"
|
|
713
761
|
];
|
|
714
|
-
var
|
|
762
|
+
var OPENROUTER_MODEL_REASONING = {
|
|
763
|
+
[MODEL_OPENAI_GPT_6_ASTRA]: {
|
|
764
|
+
efforts: ["max", "xhigh", "high", "medium", "low"],
|
|
765
|
+
defaultEffort: "medium"
|
|
766
|
+
},
|
|
767
|
+
[MODEL_OPENAI_GPT_6_ASTRA_PRO]: {
|
|
768
|
+
efforts: ["max", "xhigh", "high", "medium", "low"],
|
|
769
|
+
defaultEffort: "medium"
|
|
770
|
+
},
|
|
771
|
+
[MODEL_ANTHROPIC_CLAUDE_FABLE_5_1]: {
|
|
772
|
+
efforts: ["max", "xhigh", "high", "medium", "low"],
|
|
773
|
+
defaultEffort: "high"
|
|
774
|
+
},
|
|
775
|
+
[MODEL_OPENROUTER_DEEPSEEK_V4_1_FLASH]: {
|
|
776
|
+
efforts: ["max", "high", "low", "none"],
|
|
777
|
+
defaultEffort: "none"
|
|
778
|
+
},
|
|
779
|
+
[MODEL_GOOGLE_GEMINI_3_8_FLASH]: {
|
|
780
|
+
efforts: ["high", "medium", "low"],
|
|
781
|
+
defaultEffort: "medium"
|
|
782
|
+
},
|
|
783
|
+
[MODEL_INCLUSIONAI_LING_3_0_FLASH_VL_FREE]: {
|
|
784
|
+
efforts: [],
|
|
785
|
+
defaultEffort: void 0
|
|
786
|
+
},
|
|
787
|
+
[MODEL_INCEPTION_MERCURY_2_5]: {
|
|
788
|
+
efforts: ["high", "medium", "low", "none"],
|
|
789
|
+
defaultEffort: "none"
|
|
790
|
+
},
|
|
791
|
+
[MODEL_NEX_AGI_NEX_N2_5_MINI_FREE]: {
|
|
792
|
+
efforts: ["high", "medium", "none"],
|
|
793
|
+
defaultEffort: "none"
|
|
794
|
+
},
|
|
795
|
+
[MODEL_NEX_AGI_NEX_N2_5_PRO_FREE]: {
|
|
796
|
+
efforts: ["high", "medium", "none"],
|
|
797
|
+
defaultEffort: "none"
|
|
798
|
+
},
|
|
799
|
+
[MODEL_QWEN_QWEN_3_8_MAX_0902]: {
|
|
800
|
+
efforts: ["xhigh", "high", "medium", "low", "minimal"],
|
|
801
|
+
defaultEffort: "xhigh"
|
|
802
|
+
},
|
|
803
|
+
[MODEL_META_MUSE_SPARK_1_3]: {
|
|
804
|
+
efforts: ["max", "xhigh", "high", "medium", "low", "minimal"],
|
|
805
|
+
defaultEffort: "medium"
|
|
806
|
+
}
|
|
807
|
+
};
|
|
808
|
+
var OPENROUTER_FREE_MODELS = [
|
|
809
|
+
MODEL_GPT_OSS_20B_FREE,
|
|
810
|
+
MODEL_INCLUSIONAI_LING_3_0_FLASH_VL_FREE,
|
|
811
|
+
MODEL_NEX_AGI_NEX_N2_5_MINI_FREE,
|
|
812
|
+
MODEL_NEX_AGI_NEX_N2_5_PRO_FREE
|
|
813
|
+
];
|
|
715
814
|
var OPENROUTER_VISION_SUPPORTED_MODELS = [
|
|
815
|
+
MODEL_OPENAI_GPT_6_ASTRA,
|
|
816
|
+
MODEL_OPENAI_GPT_6_ASTRA_PRO,
|
|
817
|
+
MODEL_ANTHROPIC_CLAUDE_FABLE_5_1,
|
|
818
|
+
MODEL_OPENROUTER_DEEPSEEK_V4_1_FLASH,
|
|
819
|
+
MODEL_GOOGLE_GEMINI_3_8_FLASH,
|
|
820
|
+
MODEL_INCLUSIONAI_LING_3_0_FLASH_VL_FREE,
|
|
821
|
+
MODEL_NEX_AGI_NEX_N2_5_MINI_FREE,
|
|
822
|
+
MODEL_NEX_AGI_NEX_N2_5_PRO_FREE,
|
|
823
|
+
MODEL_QWEN_QWEN_3_8_MAX_0902,
|
|
824
|
+
MODEL_META_MUSE_SPARK_1_3,
|
|
716
825
|
MODEL_OPENROUTER_AUTO_BETA,
|
|
717
826
|
MODEL_MOONSHOTAI_KIMI_K3,
|
|
718
827
|
MODEL_MOONSHOTAI_KIMI_K2_6,
|
|
@@ -770,6 +879,11 @@ var AITuberOnAirChat = (() => {
|
|
|
770
879
|
}
|
|
771
880
|
function getOpenRouterSupportedReasoningEfforts(model) {
|
|
772
881
|
const normalizedModel = model.trim();
|
|
882
|
+
const profile = Object.prototype.hasOwnProperty.call(
|
|
883
|
+
OPENROUTER_MODEL_REASONING,
|
|
884
|
+
normalizedModel
|
|
885
|
+
) ? OPENROUTER_MODEL_REASONING[normalizedModel] : void 0;
|
|
886
|
+
if (profile) return profile.efforts;
|
|
773
887
|
if (normalizedModel === MODEL_ZAI_GLM_5_3 || normalizedModel === MODEL_ZAI_GLM_5_3_FLASH) {
|
|
774
888
|
return OPENROUTER_ALWAYS_THINKING_REASONING_EFFORTS;
|
|
775
889
|
}
|
|
@@ -792,6 +906,11 @@ var AITuberOnAirChat = (() => {
|
|
|
792
906
|
}
|
|
793
907
|
function getDefaultOpenRouterReasoningEffort(model) {
|
|
794
908
|
const normalizedModel = model.trim();
|
|
909
|
+
const profile = Object.prototype.hasOwnProperty.call(
|
|
910
|
+
OPENROUTER_MODEL_REASONING,
|
|
911
|
+
normalizedModel
|
|
912
|
+
) ? OPENROUTER_MODEL_REASONING[normalizedModel] : void 0;
|
|
913
|
+
if (profile) return profile.defaultEffort;
|
|
795
914
|
if (normalizedModel === MODEL_ZAI_GLM_5_3 || normalizedModel === MODEL_ZAI_GLM_5_3_FLASH) {
|
|
796
915
|
return "low";
|
|
797
916
|
}
|
|
@@ -799,7 +918,15 @@ var AITuberOnAirChat = (() => {
|
|
|
799
918
|
}
|
|
800
919
|
function normalizeOpenRouterReasoningEffort(model, effort) {
|
|
801
920
|
const normalizedModel = model.trim();
|
|
921
|
+
const profile = Object.prototype.hasOwnProperty.call(
|
|
922
|
+
OPENROUTER_MODEL_REASONING,
|
|
923
|
+
normalizedModel
|
|
924
|
+
) ? OPENROUTER_MODEL_REASONING[normalizedModel] : void 0;
|
|
802
925
|
const requested = effort ?? getDefaultOpenRouterReasoningEffort(model);
|
|
926
|
+
if (profile) {
|
|
927
|
+
if (requested && profile.efforts.includes(requested)) return requested;
|
|
928
|
+
return profile.defaultEffort;
|
|
929
|
+
}
|
|
803
930
|
if (!requested) {
|
|
804
931
|
return void 0;
|
|
805
932
|
}
|
|
@@ -937,6 +1064,7 @@ var AITuberOnAirChat = (() => {
|
|
|
937
1064
|
// src/constants/xai.ts
|
|
938
1065
|
var ENDPOINT_XAI_CHAT_COMPLETIONS_API = "https://api.x.ai/v1/chat/completions";
|
|
939
1066
|
var MODEL_GROK_4_6 = "grok-4.6";
|
|
1067
|
+
var MODEL_GROK_4_7 = "grok-4.7";
|
|
940
1068
|
var MODEL_GROK_4_5 = "grok-4.5";
|
|
941
1069
|
var MODEL_GROK_4_3 = "grok-4.3";
|
|
942
1070
|
var MODEL_GROK_4_20_REASONING = "grok-4.20-0309-reasoning";
|
|
@@ -949,6 +1077,7 @@ var AITuberOnAirChat = (() => {
|
|
|
949
1077
|
];
|
|
950
1078
|
var XAI_VISION_SUPPORTED_MODELS = [
|
|
951
1079
|
MODEL_GROK_4_6,
|
|
1080
|
+
MODEL_GROK_4_7,
|
|
952
1081
|
MODEL_GROK_4_5,
|
|
953
1082
|
MODEL_GROK_4_3,
|
|
954
1083
|
MODEL_GROK_4_20_REASONING,
|
|
@@ -961,7 +1090,7 @@ var AITuberOnAirChat = (() => {
|
|
|
961
1090
|
return getXaiSupportedReasoningEfforts(model).length > 0;
|
|
962
1091
|
}
|
|
963
1092
|
function getXaiSupportedReasoningEfforts(model) {
|
|
964
|
-
if (model === MODEL_GROK_4_6) {
|
|
1093
|
+
if (model === MODEL_GROK_4_6 || model === MODEL_GROK_4_7) {
|
|
965
1094
|
return ["low", "medium", "high", "xhigh"];
|
|
966
1095
|
}
|
|
967
1096
|
if (model === MODEL_GROK_4_5) {
|
|
@@ -976,6 +1105,9 @@ var AITuberOnAirChat = (() => {
|
|
|
976
1105
|
return getXaiSupportedReasoningEfforts(model).includes("none");
|
|
977
1106
|
}
|
|
978
1107
|
function getDefaultXaiReasoningEffort(model) {
|
|
1108
|
+
if (model === MODEL_GROK_4_7) {
|
|
1109
|
+
return "low";
|
|
1110
|
+
}
|
|
979
1111
|
if (model === MODEL_GROK_4_6 || model === MODEL_GROK_4_5) {
|
|
980
1112
|
return "low";
|
|
981
1113
|
}
|
|
@@ -1035,6 +1167,7 @@ var AITuberOnAirChat = (() => {
|
|
|
1035
1167
|
// src/constants/deepseek.ts
|
|
1036
1168
|
var DEEPSEEK_API_BASE_URL = "https://api.deepseek.com";
|
|
1037
1169
|
var ENDPOINT_DEEPSEEK_CHAT_COMPLETIONS_API = `${DEEPSEEK_API_BASE_URL}/chat/completions`;
|
|
1170
|
+
var MODEL_DEEPSEEK_FLASH = "deepseek-flash";
|
|
1038
1171
|
var MODEL_DEEPSEEK_V4_FLASH = "deepseek-v4-flash";
|
|
1039
1172
|
var MODEL_DEEPSEEK_V4_PRO = "deepseek-v4-pro";
|
|
1040
1173
|
var MODEL_DEEPSEEK_V4_FLASH_VISION_EXP = "deepseek-v4-flash-vision-exp";
|
|
@@ -1052,11 +1185,13 @@ var AITuberOnAirChat = (() => {
|
|
|
1052
1185
|
var MODEL_DEEPSEEK_CHAT = "deepseek-chat";
|
|
1053
1186
|
var MODEL_DEEPSEEK_REASONER = "deepseek-reasoner";
|
|
1054
1187
|
var DEEPSEEK_SUPPORTED_MODELS = [
|
|
1188
|
+
MODEL_DEEPSEEK_FLASH,
|
|
1055
1189
|
MODEL_DEEPSEEK_V4_FLASH,
|
|
1056
1190
|
MODEL_DEEPSEEK_V4_PRO,
|
|
1057
1191
|
MODEL_DEEPSEEK_V4_FLASH_VISION_EXP
|
|
1058
1192
|
];
|
|
1059
1193
|
var DEEPSEEK_VISION_SUPPORTED_MODELS = [
|
|
1194
|
+
MODEL_DEEPSEEK_FLASH,
|
|
1060
1195
|
MODEL_DEEPSEEK_V4_FLASH_VISION_EXP
|
|
1061
1196
|
];
|
|
1062
1197
|
var DEEPSEEK_DEPRECATED_MODELS = [
|
|
@@ -1064,7 +1199,7 @@ var AITuberOnAirChat = (() => {
|
|
|
1064
1199
|
MODEL_DEEPSEEK_REASONER
|
|
1065
1200
|
];
|
|
1066
1201
|
function getDeepSeekSupportedReasoningEfforts(model) {
|
|
1067
|
-
if (model === MODEL_DEEPSEEK_V4_FLASH) {
|
|
1202
|
+
if (model === MODEL_DEEPSEEK_FLASH || model === MODEL_DEEPSEEK_V4_FLASH) {
|
|
1068
1203
|
return DEEPSEEK_V4_FLASH_REASONING_EFFORTS;
|
|
1069
1204
|
}
|
|
1070
1205
|
if (model === MODEL_DEEPSEEK_V4_FLASH_VISION_EXP) {
|
|
@@ -2505,9 +2640,11 @@ If it's in another language, summarize in that language.
|
|
|
2505
2640
|
MODEL_CLAUDE_4_6_OPUS,
|
|
2506
2641
|
MODEL_CLAUDE_4_7_OPUS,
|
|
2507
2642
|
MODEL_CLAUDE_4_8_OPUS,
|
|
2643
|
+
MODEL_CLAUDE_5_1_FABLE,
|
|
2508
2644
|
MODEL_CLAUDE_5_FABLE,
|
|
2509
2645
|
MODEL_CLAUDE_5_SONNET,
|
|
2510
|
-
MODEL_CLAUDE_5_OPUS
|
|
2646
|
+
MODEL_CLAUDE_5_OPUS,
|
|
2647
|
+
MODEL_CLAUDE_5_5_OPUS
|
|
2511
2648
|
];
|
|
2512
2649
|
}
|
|
2513
2650
|
/**
|
|
@@ -2852,6 +2989,9 @@ If it's in another language, summarize in that language.
|
|
|
2852
2989
|
chatTemplateThinking,
|
|
2853
2990
|
maxTokens
|
|
2854
2991
|
}) {
|
|
2992
|
+
if (model === MODEL_GPT_6_ASTRA && (!reasoning_effort || reasoning_effort === "none" || reasoning_effort === "minimal")) {
|
|
2993
|
+
reasoning_effort = "low";
|
|
2994
|
+
}
|
|
2855
2995
|
const isResponsesAPI = endpoint === ENDPOINT_OPENAI_RESPONSES_API;
|
|
2856
2996
|
validateMCPCompatibility(endpoint, mcpServers);
|
|
2857
2997
|
const body = {
|
|
@@ -2883,7 +3023,7 @@ If it's in another language, summarize in that language.
|
|
|
2883
3023
|
} else {
|
|
2884
3024
|
body.messages = provider === "mistral" ? cleanMessagesForMistralChatCompletions(messages) : messages;
|
|
2885
3025
|
}
|
|
2886
|
-
if (
|
|
3026
|
+
if (isOpenAIReasoningModel(model)) {
|
|
2887
3027
|
if (isResponsesAPI) {
|
|
2888
3028
|
if (reasoning_effort) {
|
|
2889
3029
|
body.reasoning = {
|
|
@@ -2961,10 +3101,10 @@ If it's in another language, summarize in that language.
|
|
|
2961
3101
|
return maxTokens;
|
|
2962
3102
|
}
|
|
2963
3103
|
const baseTokenLimit = usesCompatibleChatCompletions(provider) ? responseLength !== void 0 ? getMaxTokensForResponseLength(responseLength) : void 0 : getMaxTokensForResponseLength(responseLength);
|
|
2964
|
-
if (provider !== "openai" || !
|
|
3104
|
+
if (provider !== "openai" || !isOpenAIReasoningModel(model) || responseLength === void 0) {
|
|
2965
3105
|
return baseTokenLimit;
|
|
2966
3106
|
}
|
|
2967
|
-
const effectiveReasoningEffort = reasoning_effort ??
|
|
3107
|
+
const effectiveReasoningEffort = reasoning_effort ?? getDefaultReasoningEffortForOpenAIModel(model);
|
|
2968
3108
|
return Math.max(
|
|
2969
3109
|
baseTokenLimit ?? 0,
|
|
2970
3110
|
GPT5_RESPONSE_LENGTH_MIN_TOKENS[responseLength],
|
|
@@ -3069,7 +3209,7 @@ If it's in another language, summarize in that language.
|
|
|
3069
3209
|
this.apiKey = apiKey;
|
|
3070
3210
|
this.model = model;
|
|
3071
3211
|
this.tools = tools || [];
|
|
3072
|
-
this.endpoint = endpoint;
|
|
3212
|
+
this.endpoint = (model === MODEL_GPT_6_ASTRA || visionModel === MODEL_GPT_6_ASTRA) && endpoint === ENDPOINT_OPENAI_CHAT_COMPLETIONS_API ? ENDPOINT_OPENAI_RESPONSES_API : endpoint;
|
|
3073
3213
|
this.mcpServers = mcpServers;
|
|
3074
3214
|
this.responseLength = responseLength;
|
|
3075
3215
|
this.verbosity = verbosity;
|
|
@@ -4211,6 +4351,7 @@ If it's in another language, summarize in that language.
|
|
|
4211
4351
|
var GeminiNanoChatService = class {
|
|
4212
4352
|
constructor(options = {}) {
|
|
4213
4353
|
this.provider = "gemini-nano";
|
|
4354
|
+
this.consumedTranscript = [];
|
|
4214
4355
|
this.expectedInputLanguages = options.expectedInputLanguages ?? [
|
|
4215
4356
|
"ja",
|
|
4216
4357
|
"en"
|
|
@@ -4220,6 +4361,7 @@ If it's in another language, summarize in that language.
|
|
|
4220
4361
|
...prompt
|
|
4221
4362
|
}));
|
|
4222
4363
|
this._responseLength = options.responseLength;
|
|
4364
|
+
this.sessionMode = options.sessionMode ?? "stateless";
|
|
4223
4365
|
}
|
|
4224
4366
|
getModel() {
|
|
4225
4367
|
return MODEL_GEMINI_NANO;
|
|
@@ -4227,23 +4369,33 @@ If it's in another language, summarize in that language.
|
|
|
4227
4369
|
getVisionModel() {
|
|
4228
4370
|
return MODEL_GEMINI_NANO;
|
|
4229
4371
|
}
|
|
4372
|
+
/** Destroy any persistent Prompt API sessions held by this service. */
|
|
4373
|
+
dispose() {
|
|
4374
|
+
this.destroyPersistentSessions();
|
|
4375
|
+
}
|
|
4230
4376
|
/**
|
|
4231
4377
|
* Process chat messages using Gemini Nano.
|
|
4232
|
-
*
|
|
4233
|
-
*
|
|
4378
|
+
* Streams response deltas when Chrome exposes promptStreaming(), then calls
|
|
4379
|
+
* onCompleteResponse with the complete response.
|
|
4234
4380
|
*/
|
|
4235
4381
|
async processChat(messages, onPartialResponse, onCompleteResponse) {
|
|
4236
|
-
const response = await this.generateResponse(
|
|
4237
|
-
|
|
4382
|
+
const response = await this.generateResponse(
|
|
4383
|
+
messages,
|
|
4384
|
+
true,
|
|
4385
|
+
onPartialResponse
|
|
4386
|
+
);
|
|
4238
4387
|
await onCompleteResponse(response);
|
|
4239
4388
|
}
|
|
4240
4389
|
async processVisionChat(_messages, _onPartialResponse, _onCompleteResponse) {
|
|
4241
4390
|
throw new Error("Gemini Nano does not support vision capabilities.");
|
|
4242
4391
|
}
|
|
4243
|
-
async chatOnce(messages,
|
|
4392
|
+
async chatOnce(messages, stream = false, onPartialResponse = () => {
|
|
4244
4393
|
}, _maxTokens) {
|
|
4245
|
-
const response = await this.generateResponse(
|
|
4246
|
-
|
|
4394
|
+
const response = await this.generateResponse(
|
|
4395
|
+
messages,
|
|
4396
|
+
stream,
|
|
4397
|
+
onPartialResponse
|
|
4398
|
+
);
|
|
4247
4399
|
return {
|
|
4248
4400
|
blocks: [{ type: "text", text: response }],
|
|
4249
4401
|
stop_reason: "end"
|
|
@@ -4256,7 +4408,7 @@ If it's in another language, summarize in that language.
|
|
|
4256
4408
|
/**
|
|
4257
4409
|
* Core logic: extract system prompt, manage session, call prompt().
|
|
4258
4410
|
*/
|
|
4259
|
-
async generateResponse(messages) {
|
|
4411
|
+
async generateResponse(messages, stream, onPartialResponse) {
|
|
4260
4412
|
const api = getLanguageModelAPI();
|
|
4261
4413
|
if (!api) {
|
|
4262
4414
|
throw new Error(
|
|
@@ -4264,11 +4416,8 @@ If it's in another language, summarize in that language.
|
|
|
4264
4416
|
);
|
|
4265
4417
|
}
|
|
4266
4418
|
const modelOptions = this.getModelOptions();
|
|
4267
|
-
|
|
4268
|
-
|
|
4269
|
-
throw new Error(
|
|
4270
|
-
`Gemini Nano Prompt API is not ready in this environment. LanguageModel.availability() returned "${availability}". Expected "available" or "downloadable".`
|
|
4271
|
-
);
|
|
4419
|
+
if (this.sessionMode === "stateless") {
|
|
4420
|
+
await this.ensureAvailability(api, modelOptions);
|
|
4272
4421
|
}
|
|
4273
4422
|
const systemMessages = messages.filter((m) => m.role === "system");
|
|
4274
4423
|
const systemPrompt = systemMessages.map((m) => m.content).join("\n");
|
|
@@ -4278,14 +4427,31 @@ If it's in another language, summarize in that language.
|
|
|
4278
4427
|
throw new Error("No user message found in the provided messages.");
|
|
4279
4428
|
}
|
|
4280
4429
|
const lastUserMessage = conversationMessages[lastUserMessageIndex];
|
|
4430
|
+
const contextHistory = conversationMessages.slice(0, lastUserMessageIndex);
|
|
4431
|
+
if (this.sessionMode === "persistent") {
|
|
4432
|
+
return this.generatePersistentResponse(
|
|
4433
|
+
api,
|
|
4434
|
+
systemPrompt,
|
|
4435
|
+
contextHistory,
|
|
4436
|
+
lastUserMessage.content,
|
|
4437
|
+
modelOptions,
|
|
4438
|
+
stream,
|
|
4439
|
+
onPartialResponse
|
|
4440
|
+
);
|
|
4441
|
+
}
|
|
4281
4442
|
const session = await this.createSession(
|
|
4282
4443
|
api,
|
|
4283
4444
|
systemPrompt,
|
|
4284
|
-
|
|
4445
|
+
contextHistory,
|
|
4285
4446
|
modelOptions
|
|
4286
4447
|
);
|
|
4287
4448
|
try {
|
|
4288
|
-
return await
|
|
4449
|
+
return await this.promptSession(
|
|
4450
|
+
session,
|
|
4451
|
+
lastUserMessage.content,
|
|
4452
|
+
stream,
|
|
4453
|
+
onPartialResponse
|
|
4454
|
+
);
|
|
4289
4455
|
} finally {
|
|
4290
4456
|
try {
|
|
4291
4457
|
session.destroy();
|
|
@@ -4293,6 +4459,241 @@ If it's in another language, summarize in that language.
|
|
|
4293
4459
|
}
|
|
4294
4460
|
}
|
|
4295
4461
|
}
|
|
4462
|
+
async generatePersistentResponse(api, systemPrompt, contextHistory, userPrompt, modelOptions, stream, onPartialResponse) {
|
|
4463
|
+
const sessionKey = this.getPersistentSessionKey(systemPrompt, modelOptions);
|
|
4464
|
+
if (this.persistentSessionKey !== sessionKey) {
|
|
4465
|
+
this.destroyPersistentSessions();
|
|
4466
|
+
}
|
|
4467
|
+
if (!this.baseSession && !this.liveSession) {
|
|
4468
|
+
await this.ensureAvailability(api, modelOptions);
|
|
4469
|
+
await this.createPersistentBaseSession(
|
|
4470
|
+
api,
|
|
4471
|
+
systemPrompt,
|
|
4472
|
+
contextHistory,
|
|
4473
|
+
modelOptions
|
|
4474
|
+
);
|
|
4475
|
+
this.persistentSessionKey = sessionKey;
|
|
4476
|
+
}
|
|
4477
|
+
let session = await this.getPersistentLiveSession(
|
|
4478
|
+
api,
|
|
4479
|
+
systemPrompt,
|
|
4480
|
+
contextHistory,
|
|
4481
|
+
modelOptions
|
|
4482
|
+
);
|
|
4483
|
+
const reusedLiveSession = session === this.liveSession && this.isHistoryCompatible(contextHistory, this.consumedTranscript);
|
|
4484
|
+
this.persistentSessionKey = sessionKey;
|
|
4485
|
+
try {
|
|
4486
|
+
const response = await this.promptSession(
|
|
4487
|
+
session,
|
|
4488
|
+
userPrompt,
|
|
4489
|
+
stream,
|
|
4490
|
+
onPartialResponse
|
|
4491
|
+
);
|
|
4492
|
+
this.recordConsumedTranscript(
|
|
4493
|
+
contextHistory,
|
|
4494
|
+
userPrompt,
|
|
4495
|
+
response,
|
|
4496
|
+
reusedLiveSession
|
|
4497
|
+
);
|
|
4498
|
+
return response;
|
|
4499
|
+
} catch (error) {
|
|
4500
|
+
if (!this.isQuotaExceededError(error)) {
|
|
4501
|
+
this.destroyPersistentLiveSession();
|
|
4502
|
+
throw error;
|
|
4503
|
+
}
|
|
4504
|
+
this.destroyPersistentLiveSession();
|
|
4505
|
+
session = await this.getPersistentLiveSession(
|
|
4506
|
+
api,
|
|
4507
|
+
systemPrompt,
|
|
4508
|
+
[],
|
|
4509
|
+
modelOptions
|
|
4510
|
+
);
|
|
4511
|
+
this.persistentSessionKey = sessionKey;
|
|
4512
|
+
try {
|
|
4513
|
+
const response = await this.promptSession(
|
|
4514
|
+
session,
|
|
4515
|
+
userPrompt,
|
|
4516
|
+
stream,
|
|
4517
|
+
onPartialResponse
|
|
4518
|
+
);
|
|
4519
|
+
this.recordConsumedTranscript([], userPrompt, response, false);
|
|
4520
|
+
return response;
|
|
4521
|
+
} catch (retryError) {
|
|
4522
|
+
this.destroyPersistentLiveSession();
|
|
4523
|
+
throw retryError;
|
|
4524
|
+
}
|
|
4525
|
+
}
|
|
4526
|
+
}
|
|
4527
|
+
async ensureAvailability(api, modelOptions) {
|
|
4528
|
+
const availability = await api.availability(modelOptions);
|
|
4529
|
+
if (availability !== "available" && availability !== "downloadable") {
|
|
4530
|
+
throw new Error(
|
|
4531
|
+
`Gemini Nano Prompt API is not ready in this environment. LanguageModel.availability() returned "${availability}". Expected "available" or "downloadable".`
|
|
4532
|
+
);
|
|
4533
|
+
}
|
|
4534
|
+
}
|
|
4535
|
+
async createPersistentBaseSession(api, systemPrompt, contextHistory, modelOptions) {
|
|
4536
|
+
this.baseSession = await this.createSession(
|
|
4537
|
+
api,
|
|
4538
|
+
systemPrompt,
|
|
4539
|
+
[],
|
|
4540
|
+
modelOptions
|
|
4541
|
+
);
|
|
4542
|
+
if (contextHistory.length > 0) {
|
|
4543
|
+
this.liveSession = await this.createSession(
|
|
4544
|
+
api,
|
|
4545
|
+
systemPrompt,
|
|
4546
|
+
contextHistory,
|
|
4547
|
+
modelOptions
|
|
4548
|
+
);
|
|
4549
|
+
this.consumedTranscript = contextHistory.map((message) => ({
|
|
4550
|
+
...message
|
|
4551
|
+
}));
|
|
4552
|
+
} else if (typeof this.baseSession.clone === "function") {
|
|
4553
|
+
this.liveSession = await this.baseSession.clone();
|
|
4554
|
+
} else {
|
|
4555
|
+
this.liveSession = this.baseSession;
|
|
4556
|
+
}
|
|
4557
|
+
}
|
|
4558
|
+
async getPersistentLiveSession(api, systemPrompt, contextHistory, modelOptions) {
|
|
4559
|
+
if (this.liveSession && this.isHistoryCompatible(contextHistory, this.consumedTranscript)) {
|
|
4560
|
+
return this.liveSession;
|
|
4561
|
+
}
|
|
4562
|
+
if (this.liveSession && this.liveSession !== this.baseSession) {
|
|
4563
|
+
this.destroyPersistentLiveSession();
|
|
4564
|
+
}
|
|
4565
|
+
if (contextHistory.length === 0 && this.baseSession) {
|
|
4566
|
+
if (typeof this.baseSession.clone === "function") {
|
|
4567
|
+
this.liveSession = await this.baseSession.clone();
|
|
4568
|
+
} else {
|
|
4569
|
+
if (this.consumedTranscript.length > 0) {
|
|
4570
|
+
this.destroyPersistentSessions();
|
|
4571
|
+
await this.createPersistentBaseSession(
|
|
4572
|
+
api,
|
|
4573
|
+
systemPrompt,
|
|
4574
|
+
[],
|
|
4575
|
+
modelOptions
|
|
4576
|
+
);
|
|
4577
|
+
return this.liveSession;
|
|
4578
|
+
}
|
|
4579
|
+
this.liveSession = this.baseSession;
|
|
4580
|
+
}
|
|
4581
|
+
return this.liveSession;
|
|
4582
|
+
}
|
|
4583
|
+
if (this.baseSession && typeof this.baseSession.clone === "function") {
|
|
4584
|
+
this.liveSession = await this.createSession(
|
|
4585
|
+
api,
|
|
4586
|
+
systemPrompt,
|
|
4587
|
+
contextHistory,
|
|
4588
|
+
modelOptions
|
|
4589
|
+
);
|
|
4590
|
+
return this.liveSession;
|
|
4591
|
+
}
|
|
4592
|
+
this.destroyPersistentSessions();
|
|
4593
|
+
await this.ensureAvailability(api, modelOptions);
|
|
4594
|
+
await this.createPersistentBaseSessionWithHistory(
|
|
4595
|
+
api,
|
|
4596
|
+
systemPrompt,
|
|
4597
|
+
contextHistory,
|
|
4598
|
+
modelOptions
|
|
4599
|
+
);
|
|
4600
|
+
return this.liveSession;
|
|
4601
|
+
}
|
|
4602
|
+
async createPersistentBaseSessionWithHistory(api, systemPrompt, contextHistory, modelOptions) {
|
|
4603
|
+
this.baseSession = await this.createSession(
|
|
4604
|
+
api,
|
|
4605
|
+
systemPrompt,
|
|
4606
|
+
contextHistory,
|
|
4607
|
+
modelOptions
|
|
4608
|
+
);
|
|
4609
|
+
this.liveSession = this.baseSession;
|
|
4610
|
+
this.consumedTranscript = contextHistory.map((message) => ({
|
|
4611
|
+
...message
|
|
4612
|
+
}));
|
|
4613
|
+
}
|
|
4614
|
+
recordConsumedTranscript(contextHistory, userPrompt, response, reusedLiveSession) {
|
|
4615
|
+
const priorTranscript = reusedLiveSession ? this.consumedTranscript : contextHistory;
|
|
4616
|
+
this.consumedTranscript = [
|
|
4617
|
+
...priorTranscript,
|
|
4618
|
+
{ role: "user", content: userPrompt },
|
|
4619
|
+
{ role: "assistant", content: response }
|
|
4620
|
+
];
|
|
4621
|
+
}
|
|
4622
|
+
getPersistentSessionKey(systemPrompt, modelOptions) {
|
|
4623
|
+
return JSON.stringify({
|
|
4624
|
+
systemPrompt,
|
|
4625
|
+
modelOptions,
|
|
4626
|
+
initialPrompts: this.initialPrompts,
|
|
4627
|
+
responseLength: this._responseLength
|
|
4628
|
+
});
|
|
4629
|
+
}
|
|
4630
|
+
isHistoryCompatible(left, right) {
|
|
4631
|
+
if (left.length === 0 || right.length === 0) {
|
|
4632
|
+
return left.length === 0 && right.length === 0;
|
|
4633
|
+
}
|
|
4634
|
+
return this.isSuffix(left, right) || this.isSuffix(right, left);
|
|
4635
|
+
}
|
|
4636
|
+
isSuffix(candidate, full) {
|
|
4637
|
+
if (candidate.length > full.length) return false;
|
|
4638
|
+
const offset = full.length - candidate.length;
|
|
4639
|
+
return candidate.every(
|
|
4640
|
+
(message, index) => message.role === full[offset + index].role && message.content === full[offset + index].content
|
|
4641
|
+
);
|
|
4642
|
+
}
|
|
4643
|
+
isQuotaExceededError(error) {
|
|
4644
|
+
return typeof error === "object" && error !== null && "name" in error && error.name === "QuotaExceededError";
|
|
4645
|
+
}
|
|
4646
|
+
destroyPersistentLiveSession() {
|
|
4647
|
+
if (this.liveSession) {
|
|
4648
|
+
this.destroySession(this.liveSession);
|
|
4649
|
+
if (this.liveSession === this.baseSession) {
|
|
4650
|
+
this.baseSession = void 0;
|
|
4651
|
+
}
|
|
4652
|
+
}
|
|
4653
|
+
this.liveSession = void 0;
|
|
4654
|
+
this.consumedTranscript = [];
|
|
4655
|
+
}
|
|
4656
|
+
destroyPersistentSessions() {
|
|
4657
|
+
if (this.liveSession && this.liveSession !== this.baseSession) {
|
|
4658
|
+
this.destroySession(this.liveSession);
|
|
4659
|
+
}
|
|
4660
|
+
if (this.baseSession) {
|
|
4661
|
+
this.destroySession(this.baseSession);
|
|
4662
|
+
}
|
|
4663
|
+
this.baseSession = void 0;
|
|
4664
|
+
this.liveSession = void 0;
|
|
4665
|
+
this.persistentSessionKey = void 0;
|
|
4666
|
+
this.consumedTranscript = [];
|
|
4667
|
+
}
|
|
4668
|
+
destroySession(session) {
|
|
4669
|
+
try {
|
|
4670
|
+
session.destroy();
|
|
4671
|
+
} catch {
|
|
4672
|
+
}
|
|
4673
|
+
}
|
|
4674
|
+
async promptSession(session, prompt, stream, onPartialResponse) {
|
|
4675
|
+
if (stream && typeof session.promptStreaming === "function") {
|
|
4676
|
+
const reader = session.promptStreaming(prompt).getReader();
|
|
4677
|
+
let response2 = "";
|
|
4678
|
+
let streamMode = "unknown";
|
|
4679
|
+
while (true) {
|
|
4680
|
+
const { done, value } = await reader.read();
|
|
4681
|
+
if (done) break;
|
|
4682
|
+
const chunk = String(value ?? "");
|
|
4683
|
+
if (streamMode === "unknown" && response2 !== "") {
|
|
4684
|
+
streamMode = chunk.startsWith(response2) ? "cumulative" : "delta";
|
|
4685
|
+
}
|
|
4686
|
+
const isCumulative = streamMode === "cumulative";
|
|
4687
|
+
const delta = isCumulative ? chunk.slice(response2.length) : chunk;
|
|
4688
|
+
response2 = isCumulative ? chunk : response2 + chunk;
|
|
4689
|
+
if (delta) onPartialResponse(delta);
|
|
4690
|
+
}
|
|
4691
|
+
return response2;
|
|
4692
|
+
}
|
|
4693
|
+
const response = await session.prompt(prompt);
|
|
4694
|
+
onPartialResponse(response);
|
|
4695
|
+
return response;
|
|
4696
|
+
}
|
|
4296
4697
|
/**
|
|
4297
4698
|
* Create a new LanguageModel session with structured initial prompts.
|
|
4298
4699
|
* System instructions, few-shot examples, and conversation history retain
|
|
@@ -4387,7 +4788,8 @@ If it's in another language, summarize in that language.
|
|
|
4387
4788
|
expectedInputLanguages: options.expectedInputLanguages,
|
|
4388
4789
|
expectedOutputLanguages: options.expectedOutputLanguages,
|
|
4389
4790
|
initialPrompts: options.initialPrompts,
|
|
4390
|
-
responseLength: options.responseLength
|
|
4791
|
+
responseLength: options.responseLength,
|
|
4792
|
+
sessionMode: options.sessionMode
|
|
4391
4793
|
});
|
|
4392
4794
|
}
|
|
4393
4795
|
getProviderName() {
|
|
@@ -4935,11 +5337,14 @@ If it's in another language, summarize in that language.
|
|
|
4935
5337
|
const mcpServers = optimizedOptions.mcpServers ?? [];
|
|
4936
5338
|
const modelName = optimizedOptions.model || this.getDefaultModel();
|
|
4937
5339
|
let shouldUseResponsesAPI = false;
|
|
4938
|
-
if (mcpServers.length > 0) {
|
|
5340
|
+
if (mcpServers.length > 0 || modelName === MODEL_GPT_6_ASTRA || visionModel === MODEL_GPT_6_ASTRA) {
|
|
4939
5341
|
shouldUseResponsesAPI = true;
|
|
5342
|
+
} else if (modelName === MODEL_GPT_6_SOL || visionModel === MODEL_GPT_6_SOL || modelName === MODEL_GPT_6_LUNA || visionModel === MODEL_GPT_6_LUNA) {
|
|
5343
|
+
const preference = optimizedOptions.gpt5EndpointPreference || "responses";
|
|
5344
|
+
shouldUseResponsesAPI = preference !== "chat" || optimizedOptions.reasoning_effort !== "none";
|
|
4940
5345
|
} else if (isResponsesOnlyGPT5Model(modelName)) {
|
|
4941
5346
|
shouldUseResponsesAPI = true;
|
|
4942
|
-
} else if (
|
|
5347
|
+
} else if (isOpenAIReasoningModel(modelName)) {
|
|
4943
5348
|
const preference = optimizedOptions.gpt5EndpointPreference || "chat";
|
|
4944
5349
|
shouldUseResponsesAPI = preference === "responses";
|
|
4945
5350
|
}
|
|
@@ -4982,6 +5387,9 @@ If it's in another language, summarize in that language.
|
|
|
4982
5387
|
MODEL_GPT_5_4,
|
|
4983
5388
|
MODEL_GPT_5_5,
|
|
4984
5389
|
MODEL_GPT_5_6,
|
|
5390
|
+
MODEL_GPT_6_ASTRA,
|
|
5391
|
+
MODEL_GPT_6_SOL,
|
|
5392
|
+
MODEL_GPT_6_LUNA,
|
|
4985
5393
|
MODEL_GPT_5_6_SOL,
|
|
4986
5394
|
MODEL_GPT_5_6_TERRA,
|
|
4987
5395
|
MODEL_GPT_5_6_LUNA,
|
|
@@ -5033,7 +5441,7 @@ If it's in another language, summarize in that language.
|
|
|
5033
5441
|
*/
|
|
5034
5442
|
optimizeGPT5Options(options) {
|
|
5035
5443
|
const modelName = options.model || this.getDefaultModel();
|
|
5036
|
-
if (!
|
|
5444
|
+
if (!isOpenAIReasoningModel(modelName)) {
|
|
5037
5445
|
return options;
|
|
5038
5446
|
}
|
|
5039
5447
|
const optimized = { ...options };
|
|
@@ -5043,7 +5451,7 @@ If it's in another language, summarize in that language.
|
|
|
5043
5451
|
optimized.verbosity = preset.verbosity;
|
|
5044
5452
|
} else {
|
|
5045
5453
|
if (!options.reasoning_effort) {
|
|
5046
|
-
optimized.reasoning_effort =
|
|
5454
|
+
optimized.reasoning_effort = getDefaultReasoningEffortForOpenAIModel(modelName);
|
|
5047
5455
|
}
|
|
5048
5456
|
}
|
|
5049
5457
|
optimized.reasoning_effort = this.normalizeReasoningEffort(
|
|
@@ -5314,7 +5722,7 @@ If it's in another language, summarize in that language.
|
|
|
5314
5722
|
if (reasoningEffort !== void 0 || this.includeReasoning !== void 0 || this.reasoningMaxTokens || defaultReasoningEffort) {
|
|
5315
5723
|
body.reasoning = {};
|
|
5316
5724
|
if (reasoningEffort) {
|
|
5317
|
-
const effort = reasoningEffort === "minimal" ? "low" : reasoningEffort;
|
|
5725
|
+
const effort = reasoningEffort === "minimal" && model !== MODEL_QWEN_QWEN_3_8_MAX_0902 && model !== MODEL_META_MUSE_SPARK_1_3 ? "low" : reasoningEffort;
|
|
5318
5726
|
body.reasoning.effort = effort;
|
|
5319
5727
|
} else if (defaultReasoningEffort) {
|
|
5320
5728
|
body.reasoning.effort = defaultReasoningEffort;
|
|
@@ -5330,7 +5738,9 @@ If it's in another language, summarize in that language.
|
|
|
5330
5738
|
}
|
|
5331
5739
|
if (this.tools.length > 0) {
|
|
5332
5740
|
body.tools = buildOpenAICompatibleTools(this.tools, "chat-completions");
|
|
5333
|
-
|
|
5741
|
+
if (model !== MODEL_ANTHROPIC_CLAUDE_FABLE_5_1) {
|
|
5742
|
+
body.tool_choice = "auto";
|
|
5743
|
+
}
|
|
5334
5744
|
}
|
|
5335
5745
|
return body;
|
|
5336
5746
|
}
|
|
@@ -5416,6 +5826,17 @@ If it's in another language, summarize in that language.
|
|
|
5416
5826
|
*/
|
|
5417
5827
|
getSupportedModels() {
|
|
5418
5828
|
return [
|
|
5829
|
+
MODEL_OPENAI_GPT_6_ASTRA,
|
|
5830
|
+
MODEL_OPENAI_GPT_6_ASTRA_PRO,
|
|
5831
|
+
MODEL_ANTHROPIC_CLAUDE_FABLE_5_1,
|
|
5832
|
+
MODEL_OPENROUTER_DEEPSEEK_V4_1_FLASH,
|
|
5833
|
+
MODEL_GOOGLE_GEMINI_3_8_FLASH,
|
|
5834
|
+
MODEL_INCLUSIONAI_LING_3_0_FLASH_VL_FREE,
|
|
5835
|
+
MODEL_INCEPTION_MERCURY_2_5,
|
|
5836
|
+
MODEL_NEX_AGI_NEX_N2_5_MINI_FREE,
|
|
5837
|
+
MODEL_NEX_AGI_NEX_N2_5_PRO_FREE,
|
|
5838
|
+
MODEL_QWEN_QWEN_3_8_MAX_0902,
|
|
5839
|
+
MODEL_META_MUSE_SPARK_1_3,
|
|
5419
5840
|
// OpenRouter routing
|
|
5420
5841
|
MODEL_OPENROUTER_AUTO,
|
|
5421
5842
|
MODEL_OPENROUTER_AUTO_BETA,
|
|
@@ -5897,6 +6318,7 @@ If it's in another language, summarize in that language.
|
|
|
5897
6318
|
getSupportedModels() {
|
|
5898
6319
|
return [
|
|
5899
6320
|
MODEL_GROK_4_6,
|
|
6321
|
+
MODEL_GROK_4_7,
|
|
5900
6322
|
MODEL_GROK_4_5,
|
|
5901
6323
|
MODEL_GROK_4_3,
|
|
5902
6324
|
MODEL_GROK_4_20_REASONING,
|
|
@@ -6415,7 +6837,7 @@ If it's in another language, summarize in that language.
|
|
|
6415
6837
|
mcp: MCP_SUPPORTED_PROVIDERS.has(providerName),
|
|
6416
6838
|
jsonMode: JSON_MODE_SUPPORTED_PROVIDERS.has(providerName),
|
|
6417
6839
|
responseLength: true,
|
|
6418
|
-
reasoningEffort: providerName === "claude" && model ? [...getClaudeSupportedReasoningEfforts(model)] : providerName === "gemini" && model ? [...getGeminiSupportedReasoningEfforts(model)] : providerName === "kimi" && model ? [...getKimiSupportedReasoningEfforts(model)] : providerName === "deepseek" && model ? [...getDeepSeekSupportedReasoningEfforts(model)] : providerName === "openrouter" && model ? [...getOpenRouterSupportedReasoningEfforts(model)] : providerName === "xai" && model ? [...getXaiSupportedReasoningEfforts(model)] : providerName === "zai" && model ? [...getZaiSupportedReasoningEfforts(model)] : REASONING_EFFORT_BY_PROVIDER[providerName] ?? []
|
|
6840
|
+
reasoningEffort: providerName === "openai" && model === MODEL_GPT_6_ASTRA ? ["low", "medium", "high", "xhigh", "max"] : providerName === "openai" && model === MODEL_GPT_6_SOL ? ["none", "low", "medium", "high", "xhigh", "max"] : providerName === "openai" && model === MODEL_GPT_6_LUNA ? ["none", "low", "medium", "high", "xhigh", "max"] : providerName === "claude" && model ? [...getClaudeSupportedReasoningEfforts(model)] : providerName === "gemini" && model ? [...getGeminiSupportedReasoningEfforts(model)] : providerName === "kimi" && model ? [...getKimiSupportedReasoningEfforts(model)] : providerName === "deepseek" && model ? [...getDeepSeekSupportedReasoningEfforts(model)] : providerName === "openrouter" && model ? [...getOpenRouterSupportedReasoningEfforts(model)] : providerName === "xai" && model ? [...getXaiSupportedReasoningEfforts(model)] : providerName === "zai" && model ? [...getZaiSupportedReasoningEfforts(model)] : REASONING_EFFORT_BY_PROVIDER[providerName] ?? []
|
|
6419
6841
|
};
|
|
6420
6842
|
}
|
|
6421
6843
|
/**
|