@aituber-onair/chat 0.59.0 → 0.61.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 +46 -8
- package/README.md +44 -8
- package/dist/cjs/constants/mistral.d.ts +1 -0
- package/dist/cjs/constants/mistral.d.ts.map +1 -1
- package/dist/cjs/constants/mistral.js +4 -1
- package/dist/cjs/constants/mistral.js.map +1 -1
- package/dist/cjs/constants/openai.d.ts +1 -0
- package/dist/cjs/constants/openai.d.ts.map +1 -1
- package/dist/cjs/constants/openai.js +10 -5
- 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 +64 -5
- package/dist/cjs/constants/openrouter.js.map +1 -1
- package/dist/cjs/constants/zai.d.ts +1 -0
- package/dist/cjs/constants/zai.d.ts.map +1 -1
- package/dist/cjs/constants/zai.js +6 -2
- package/dist/cjs/constants/zai.js.map +1 -1
- package/dist/cjs/services/ChatServiceFactory.d.ts.map +1 -1
- package/dist/cjs/services/ChatServiceFactory.js +2 -1
- package/dist/cjs/services/ChatServiceFactory.js.map +1 -1
- package/dist/cjs/services/providers/openai/OpenAIChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/openai/OpenAIChatService.js +13 -4
- 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 +7 -0
- 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 +10 -1
- package/dist/cjs/services/providers/openai/openaiRequestBuilder.js.map +1 -1
- package/dist/cjs/services/providers/openai/responsesParser.d.ts.map +1 -1
- package/dist/cjs/services/providers/openai/responsesParser.js +36 -14
- package/dist/cjs/services/providers/openai/responsesParser.js.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js +9 -6
- 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 +10 -0
- package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
- package/dist/cjs/services/providers/zai/ZAIChatService.d.ts.map +1 -1
- package/dist/cjs/services/providers/zai/ZAIChatService.js +14 -3
- package/dist/cjs/services/providers/zai/ZAIChatService.js.map +1 -1
- package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.d.ts.map +1 -1
- package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.js +1 -0
- package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.js.map +1 -1
- package/dist/esm/constants/mistral.d.ts +1 -0
- package/dist/esm/constants/mistral.d.ts.map +1 -1
- package/dist/esm/constants/mistral.js +3 -0
- package/dist/esm/constants/mistral.js.map +1 -1
- package/dist/esm/constants/openai.d.ts +1 -0
- package/dist/esm/constants/openai.d.ts.map +1 -1
- package/dist/esm/constants/openai.js +9 -4
- 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 +62 -3
- package/dist/esm/constants/openrouter.js.map +1 -1
- package/dist/esm/constants/zai.d.ts +1 -0
- package/dist/esm/constants/zai.d.ts.map +1 -1
- package/dist/esm/constants/zai.js +5 -1
- package/dist/esm/constants/zai.js.map +1 -1
- package/dist/esm/services/ChatServiceFactory.d.ts.map +1 -1
- package/dist/esm/services/ChatServiceFactory.js +3 -2
- package/dist/esm/services/ChatServiceFactory.js.map +1 -1
- package/dist/esm/services/providers/openai/OpenAIChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/openai/OpenAIChatService.js +14 -5
- 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 +8 -1
- 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 +11 -2
- package/dist/esm/services/providers/openai/openaiRequestBuilder.js.map +1 -1
- package/dist/esm/services/providers/openai/responsesParser.d.ts.map +1 -1
- package/dist/esm/services/providers/openai/responsesParser.js +36 -14
- package/dist/esm/services/providers/openai/responsesParser.js.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatService.js +10 -7
- 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 +11 -1
- package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
- package/dist/esm/services/providers/zai/ZAIChatService.d.ts.map +1 -1
- package/dist/esm/services/providers/zai/ZAIChatService.js +15 -4
- package/dist/esm/services/providers/zai/ZAIChatService.js.map +1 -1
- package/dist/esm/services/providers/zai/ZAIChatServiceProvider.d.ts.map +1 -1
- package/dist/esm/services/providers/zai/ZAIChatServiceProvider.js +2 -1
- package/dist/esm/services/providers/zai/ZAIChatServiceProvider.js.map +1 -1
- package/dist/umd/aituber-onair-chat.js +172 -46
- package/dist/umd/aituber-onair-chat.min.js +8 -8
- package/package.json +2 -1
|
@@ -82,8 +82,10 @@ var AITuberOnAirChat = (() => {
|
|
|
82
82
|
MODEL_ANTHROPIC_CLAUDE_OPUS_4: () => MODEL_ANTHROPIC_CLAUDE_OPUS_4,
|
|
83
83
|
MODEL_ANTHROPIC_CLAUDE_OPUS_4_8: () => MODEL_ANTHROPIC_CLAUDE_OPUS_4_8,
|
|
84
84
|
MODEL_ANTHROPIC_CLAUDE_OPUS_5: () => MODEL_ANTHROPIC_CLAUDE_OPUS_5,
|
|
85
|
+
MODEL_ANTHROPIC_CLAUDE_OPUS_5_5: () => MODEL_ANTHROPIC_CLAUDE_OPUS_5_5,
|
|
85
86
|
MODEL_ANTHROPIC_CLAUDE_SONNET_4: () => MODEL_ANTHROPIC_CLAUDE_SONNET_4,
|
|
86
87
|
MODEL_ANTHROPIC_CLAUDE_SONNET_5: () => MODEL_ANTHROPIC_CLAUDE_SONNET_5,
|
|
88
|
+
MODEL_ANTHROPIC_CLAUDE_SONNET_5_5: () => MODEL_ANTHROPIC_CLAUDE_SONNET_5_5,
|
|
87
89
|
MODEL_ANTHROPIC_CLAUDE_SONNET_LATEST: () => MODEL_ANTHROPIC_CLAUDE_SONNET_LATEST,
|
|
88
90
|
MODEL_CLAUDE_3_5_HAIKU: () => MODEL_CLAUDE_3_5_HAIKU,
|
|
89
91
|
MODEL_CLAUDE_3_5_SONNET: () => MODEL_CLAUDE_3_5_SONNET,
|
|
@@ -144,6 +146,7 @@ var AITuberOnAirChat = (() => {
|
|
|
144
146
|
MODEL_GLM_5_2: () => MODEL_GLM_5_2,
|
|
145
147
|
MODEL_GLM_5_3: () => MODEL_GLM_5_3,
|
|
146
148
|
MODEL_GLM_5_3_FLASH: () => MODEL_GLM_5_3_FLASH,
|
|
149
|
+
MODEL_GLM_5_3_FLASHX: () => MODEL_GLM_5_3_FLASHX,
|
|
147
150
|
MODEL_GLM_5_TURBO: () => MODEL_GLM_5_TURBO,
|
|
148
151
|
MODEL_GOOGLE_GEMINI_2_5_FLASH: () => MODEL_GOOGLE_GEMINI_2_5_FLASH,
|
|
149
152
|
MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025: () => MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025,
|
|
@@ -172,6 +175,7 @@ var AITuberOnAirChat = (() => {
|
|
|
172
175
|
MODEL_GPT_5_6_TERRA: () => MODEL_GPT_5_6_TERRA,
|
|
173
176
|
MODEL_GPT_5_MINI: () => MODEL_GPT_5_MINI,
|
|
174
177
|
MODEL_GPT_5_NANO: () => MODEL_GPT_5_NANO,
|
|
178
|
+
MODEL_GPT_6_1_SOL: () => MODEL_GPT_6_1_SOL,
|
|
175
179
|
MODEL_GPT_6_ASTRA: () => MODEL_GPT_6_ASTRA,
|
|
176
180
|
MODEL_GPT_6_LUNA: () => MODEL_GPT_6_LUNA,
|
|
177
181
|
MODEL_GPT_6_SOL: () => MODEL_GPT_6_SOL,
|
|
@@ -203,6 +207,7 @@ var AITuberOnAirChat = (() => {
|
|
|
203
207
|
MODEL_MISTRAL_MEDIUM_3_5: () => MODEL_MISTRAL_MEDIUM_3_5,
|
|
204
208
|
MODEL_MISTRAL_SMALL_2603: () => MODEL_MISTRAL_SMALL_2603,
|
|
205
209
|
MODEL_MISTRAL_SMALL_LATEST: () => MODEL_MISTRAL_SMALL_LATEST,
|
|
210
|
+
MODEL_MISTRAL_ZAI_GLM_5_3: () => MODEL_MISTRAL_ZAI_GLM_5_3,
|
|
206
211
|
MODEL_MOONSHOTAI_KIMI_K2_5: () => MODEL_MOONSHOTAI_KIMI_K2_5,
|
|
207
212
|
MODEL_MOONSHOTAI_KIMI_K2_6: () => MODEL_MOONSHOTAI_KIMI_K2_6,
|
|
208
213
|
MODEL_MOONSHOTAI_KIMI_K2_7_CODE: () => MODEL_MOONSHOTAI_KIMI_K2_7_CODE,
|
|
@@ -210,6 +215,7 @@ var AITuberOnAirChat = (() => {
|
|
|
210
215
|
MODEL_MOONSHOTAI_KIMI_LATEST: () => MODEL_MOONSHOTAI_KIMI_LATEST,
|
|
211
216
|
MODEL_NEX_AGI_NEX_N2_5_MINI_FREE: () => MODEL_NEX_AGI_NEX_N2_5_MINI_FREE,
|
|
212
217
|
MODEL_NEX_AGI_NEX_N2_5_PRO_FREE: () => MODEL_NEX_AGI_NEX_N2_5_PRO_FREE,
|
|
218
|
+
MODEL_NVIDIA_NEMOTRON_3_5_LIGHTNING: () => MODEL_NVIDIA_NEMOTRON_3_5_LIGHTNING,
|
|
213
219
|
MODEL_O1: () => MODEL_O1,
|
|
214
220
|
MODEL_O1_MINI: () => MODEL_O1_MINI,
|
|
215
221
|
MODEL_O3_MINI: () => MODEL_O3_MINI,
|
|
@@ -225,8 +231,11 @@ var AITuberOnAirChat = (() => {
|
|
|
225
231
|
MODEL_OPENAI_GPT_5_6_TERRA: () => MODEL_OPENAI_GPT_5_6_TERRA,
|
|
226
232
|
MODEL_OPENAI_GPT_5_MINI: () => MODEL_OPENAI_GPT_5_MINI,
|
|
227
233
|
MODEL_OPENAI_GPT_5_NANO: () => MODEL_OPENAI_GPT_5_NANO,
|
|
234
|
+
MODEL_OPENAI_GPT_6_1_SOL: () => MODEL_OPENAI_GPT_6_1_SOL,
|
|
228
235
|
MODEL_OPENAI_GPT_6_ASTRA: () => MODEL_OPENAI_GPT_6_ASTRA,
|
|
229
236
|
MODEL_OPENAI_GPT_6_ASTRA_PRO: () => MODEL_OPENAI_GPT_6_ASTRA_PRO,
|
|
237
|
+
MODEL_OPENAI_GPT_6_LUNA: () => MODEL_OPENAI_GPT_6_LUNA,
|
|
238
|
+
MODEL_OPENAI_GPT_6_SOL: () => MODEL_OPENAI_GPT_6_SOL,
|
|
230
239
|
MODEL_OPENAI_GPT_LATEST: () => MODEL_OPENAI_GPT_LATEST,
|
|
231
240
|
MODEL_OPENAI_GPT_MINI_LATEST: () => MODEL_OPENAI_GPT_MINI_LATEST,
|
|
232
241
|
MODEL_OPENROUTER_AUTO: () => MODEL_OPENROUTER_AUTO,
|
|
@@ -239,11 +248,14 @@ var AITuberOnAirChat = (() => {
|
|
|
239
248
|
MODEL_OPENROUTER_FUSION: () => MODEL_OPENROUTER_FUSION,
|
|
240
249
|
MODEL_PLAMO_2_2_PRIME: () => MODEL_PLAMO_2_2_PRIME,
|
|
241
250
|
MODEL_PLAMO_3_0_PRIME: () => MODEL_PLAMO_3_0_PRIME,
|
|
251
|
+
MODEL_QWEN_QWEN_3_8_27B: () => MODEL_QWEN_QWEN_3_8_27B,
|
|
242
252
|
MODEL_QWEN_QWEN_3_8_FLASH: () => MODEL_QWEN_QWEN_3_8_FLASH,
|
|
243
253
|
MODEL_QWEN_QWEN_3_8_MAX_0902: () => MODEL_QWEN_QWEN_3_8_MAX_0902,
|
|
254
|
+
MODEL_QWEN_QWEN_3_8_OMNI_FLASH: () => MODEL_QWEN_QWEN_3_8_OMNI_FLASH,
|
|
244
255
|
MODEL_SAKANA_NAMAZU: () => MODEL_SAKANA_NAMAZU,
|
|
245
256
|
MODEL_XAI_GROK_4_5: () => MODEL_XAI_GROK_4_5,
|
|
246
257
|
MODEL_XAI_GROK_4_6: () => MODEL_XAI_GROK_4_6,
|
|
258
|
+
MODEL_XAI_GROK_4_7: () => MODEL_XAI_GROK_4_7,
|
|
247
259
|
MODEL_XAI_GROK_LATEST: () => MODEL_XAI_GROK_LATEST,
|
|
248
260
|
MODEL_ZAI_GLM_4_5_AIR: () => MODEL_ZAI_GLM_4_5_AIR,
|
|
249
261
|
MODEL_ZAI_GLM_4_5_AIR_FREE: () => MODEL_ZAI_GLM_4_5_AIR_FREE,
|
|
@@ -251,6 +263,7 @@ var AITuberOnAirChat = (() => {
|
|
|
251
263
|
MODEL_ZAI_GLM_5_2: () => MODEL_ZAI_GLM_5_2,
|
|
252
264
|
MODEL_ZAI_GLM_5_3: () => MODEL_ZAI_GLM_5_3,
|
|
253
265
|
MODEL_ZAI_GLM_5_3_FLASH: () => MODEL_ZAI_GLM_5_3_FLASH,
|
|
266
|
+
MODEL_ZAI_GLM_5_3_FLASHX: () => MODEL_ZAI_GLM_5_3_FLASHX,
|
|
254
267
|
MistralChatService: () => MistralChatService,
|
|
255
268
|
MistralChatServiceProvider: () => MistralChatServiceProvider,
|
|
256
269
|
OPENAI_COMPATIBLE_LOCAL_PRESETS: () => OPENAI_COMPATIBLE_LOCAL_PRESETS,
|
|
@@ -260,6 +273,7 @@ var AITuberOnAirChat = (() => {
|
|
|
260
273
|
OPENROUTER_FREE_DAILY_LIMIT_LOW_CREDITS: () => OPENROUTER_FREE_DAILY_LIMIT_LOW_CREDITS,
|
|
261
274
|
OPENROUTER_FREE_MODELS: () => OPENROUTER_FREE_MODELS,
|
|
262
275
|
OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE: () => OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE,
|
|
276
|
+
OPENROUTER_MODELS_WITHOUT_REASONING_BUDGET: () => OPENROUTER_MODELS_WITHOUT_REASONING_BUDGET,
|
|
263
277
|
OPENROUTER_VISION_SUPPORTED_MODELS: () => OPENROUTER_VISION_SUPPORTED_MODELS,
|
|
264
278
|
OpenAIChatService: () => OpenAIChatService,
|
|
265
279
|
OpenAIChatServiceProvider: () => OpenAIChatServiceProvider,
|
|
@@ -362,6 +376,7 @@ var AITuberOnAirChat = (() => {
|
|
|
362
376
|
// src/constants/openai.ts
|
|
363
377
|
var ENDPOINT_OPENAI_CHAT_COMPLETIONS_API = "https://api.openai.com/v1/chat/completions";
|
|
364
378
|
var ENDPOINT_OPENAI_RESPONSES_API = "https://api.openai.com/v1/responses";
|
|
379
|
+
var MODEL_GPT_6_1_SOL = "gpt-6.1-sol";
|
|
365
380
|
var MODEL_GPT_6_ASTRA = "gpt-6-astra";
|
|
366
381
|
var MODEL_GPT_6_SOL = "gpt-6-sol";
|
|
367
382
|
var MODEL_GPT_6_LUNA = "gpt-6-luna";
|
|
@@ -387,6 +402,7 @@ var AITuberOnAirChat = (() => {
|
|
|
387
402
|
var MODEL_O1_MINI = "o1-mini";
|
|
388
403
|
var MODEL_O1 = "o1";
|
|
389
404
|
var VISION_SUPPORTED_MODELS = [
|
|
405
|
+
MODEL_GPT_6_1_SOL,
|
|
390
406
|
MODEL_GPT_6_ASTRA,
|
|
391
407
|
MODEL_GPT_6_SOL,
|
|
392
408
|
MODEL_GPT_6_LUNA,
|
|
@@ -430,16 +446,16 @@ var AITuberOnAirChat = (() => {
|
|
|
430
446
|
return GPT_5_MODELS.includes(model);
|
|
431
447
|
}
|
|
432
448
|
function isOpenAIReasoningModel(model) {
|
|
433
|
-
return model === MODEL_GPT_6_ASTRA || model === MODEL_GPT_6_SOL || model === MODEL_GPT_6_LUNA || isGPT5Model(model);
|
|
449
|
+
return model === MODEL_GPT_6_1_SOL || model === MODEL_GPT_6_ASTRA || model === MODEL_GPT_6_SOL || model === MODEL_GPT_6_LUNA || isGPT5Model(model);
|
|
434
450
|
}
|
|
435
451
|
function isResponsesOnlyGPT5Model(model) {
|
|
436
452
|
return model === MODEL_GPT_5_4_PRO;
|
|
437
453
|
}
|
|
438
454
|
function allowsReasoningXHigh(model) {
|
|
439
|
-
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;
|
|
455
|
+
return model === MODEL_GPT_6_1_SOL || 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;
|
|
440
456
|
}
|
|
441
457
|
function allowsReasoningMax(model) {
|
|
442
|
-
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;
|
|
458
|
+
return model === MODEL_GPT_6_1_SOL || 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;
|
|
443
459
|
}
|
|
444
460
|
function allowsReasoningNone(model) {
|
|
445
461
|
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;
|
|
@@ -460,7 +476,7 @@ var AITuberOnAirChat = (() => {
|
|
|
460
476
|
return "medium";
|
|
461
477
|
}
|
|
462
478
|
function getDefaultReasoningEffortForOpenAIModel(model) {
|
|
463
|
-
return model === MODEL_GPT_6_ASTRA ? "low" : model === MODEL_GPT_6_SOL ? "medium" : model === MODEL_GPT_6_LUNA ? "low" : getDefaultReasoningEffortForGPT5Model(model);
|
|
479
|
+
return model === MODEL_GPT_6_1_SOL || model === MODEL_GPT_6_ASTRA ? "low" : model === MODEL_GPT_6_SOL ? "medium" : model === MODEL_GPT_6_LUNA ? "low" : getDefaultReasoningEffortForGPT5Model(model);
|
|
464
480
|
}
|
|
465
481
|
|
|
466
482
|
// src/constants/gemini.ts
|
|
@@ -651,6 +667,12 @@ var AITuberOnAirChat = (() => {
|
|
|
651
667
|
|
|
652
668
|
// src/constants/openrouter.ts
|
|
653
669
|
var ENDPOINT_OPENROUTER_API = "https://openrouter.ai/api/v1/chat/completions";
|
|
670
|
+
var MODEL_OPENAI_GPT_6_1_SOL = "openai/gpt-6.1-sol";
|
|
671
|
+
var MODEL_OPENAI_GPT_6_SOL = "openai/gpt-6-sol";
|
|
672
|
+
var MODEL_OPENAI_GPT_6_LUNA = "openai/gpt-6-luna";
|
|
673
|
+
var MODEL_ANTHROPIC_CLAUDE_SONNET_5_5 = "anthropic/claude-sonnet-5.5";
|
|
674
|
+
var MODEL_ANTHROPIC_CLAUDE_OPUS_5_5 = "anthropic/claude-opus-5.5";
|
|
675
|
+
var MODEL_XAI_GROK_4_7 = "x-ai/grok-4.7";
|
|
654
676
|
var MODEL_OPENAI_GPT_6_ASTRA = "openai/gpt-6-astra";
|
|
655
677
|
var MODEL_OPENAI_GPT_6_ASTRA_PRO = "openai/gpt-6-astra-pro";
|
|
656
678
|
var MODEL_ANTHROPIC_CLAUDE_FABLE_5_1 = "anthropic/claude-fable-5.1";
|
|
@@ -662,6 +684,14 @@ var AITuberOnAirChat = (() => {
|
|
|
662
684
|
var MODEL_NEX_AGI_NEX_N2_5_PRO_FREE = "nex-agi/nex-n2.5-pro:free";
|
|
663
685
|
var MODEL_QWEN_QWEN_3_8_MAX_0902 = "qwen/qwen3.8-max-0902";
|
|
664
686
|
var MODEL_META_MUSE_SPARK_1_3 = "meta/muse-spark-1.3";
|
|
687
|
+
var MODEL_NVIDIA_NEMOTRON_3_5_LIGHTNING = "nvidia/nemotron-3.5-lightning";
|
|
688
|
+
var MODEL_QWEN_QWEN_3_8_27B = "qwen/qwen3.8-27b";
|
|
689
|
+
var MODEL_QWEN_QWEN_3_8_OMNI_FLASH = "qwen/qwen3.8-omni-flash";
|
|
690
|
+
var OPENROUTER_MODELS_WITHOUT_REASONING_BUDGET = [
|
|
691
|
+
MODEL_NVIDIA_NEMOTRON_3_5_LIGHTNING,
|
|
692
|
+
MODEL_QWEN_QWEN_3_8_27B,
|
|
693
|
+
MODEL_QWEN_QWEN_3_8_OMNI_FLASH
|
|
694
|
+
];
|
|
665
695
|
var MODEL_OPENROUTER_AUTO = "openrouter/auto";
|
|
666
696
|
var MODEL_OPENROUTER_AUTO_BETA = "openrouter/auto-beta";
|
|
667
697
|
var MODEL_OPENROUTER_FUSION = "openrouter/fusion";
|
|
@@ -707,6 +737,7 @@ var AITuberOnAirChat = (() => {
|
|
|
707
737
|
var MODEL_ZAI_GLM_5_2 = "z-ai/glm-5.2";
|
|
708
738
|
var MODEL_ZAI_GLM_5_3 = "z-ai/glm-5.3";
|
|
709
739
|
var MODEL_ZAI_GLM_5_3_FLASH = "z-ai/glm-5.3-flash";
|
|
740
|
+
var MODEL_ZAI_GLM_5_3_FLASHX = "z-ai/glm-5.3-flashx";
|
|
710
741
|
var MODEL_ZAI_GLM_4_7_FLASH = "z-ai/glm-4.7-flash";
|
|
711
742
|
var MODEL_ZAI_GLM_4_5_AIR = "z-ai/glm-4.5-air";
|
|
712
743
|
var MODEL_ZAI_GLM_4_5_AIR_FREE = "z-ai/glm-4.5-air:free";
|
|
@@ -769,6 +800,37 @@ var AITuberOnAirChat = (() => {
|
|
|
769
800
|
"max"
|
|
770
801
|
];
|
|
771
802
|
var OPENROUTER_MODEL_REASONING = {
|
|
803
|
+
[MODEL_NVIDIA_NEMOTRON_3_5_LIGHTNING]: {
|
|
804
|
+
efforts: [],
|
|
805
|
+
defaultEffort: void 0
|
|
806
|
+
},
|
|
807
|
+
[MODEL_QWEN_QWEN_3_8_27B]: { efforts: [], defaultEffort: void 0 },
|
|
808
|
+
[MODEL_QWEN_QWEN_3_8_OMNI_FLASH]: { efforts: [], defaultEffort: void 0 },
|
|
809
|
+
// Chat-oriented defaults avoid disabling mandatory reasoning and favor latency.
|
|
810
|
+
[MODEL_OPENAI_GPT_6_1_SOL]: {
|
|
811
|
+
efforts: ["low", "medium", "high", "xhigh", "max"],
|
|
812
|
+
defaultEffort: "low"
|
|
813
|
+
},
|
|
814
|
+
[MODEL_OPENAI_GPT_6_SOL]: {
|
|
815
|
+
efforts: ["none", "low", "medium", "high", "xhigh", "max"],
|
|
816
|
+
defaultEffort: "none"
|
|
817
|
+
},
|
|
818
|
+
[MODEL_OPENAI_GPT_6_LUNA]: {
|
|
819
|
+
efforts: ["none", "low", "medium", "high", "xhigh", "max"],
|
|
820
|
+
defaultEffort: "none"
|
|
821
|
+
},
|
|
822
|
+
[MODEL_ANTHROPIC_CLAUDE_SONNET_5_5]: {
|
|
823
|
+
efforts: ["low", "medium", "high", "xhigh", "max"],
|
|
824
|
+
defaultEffort: "low"
|
|
825
|
+
},
|
|
826
|
+
[MODEL_ANTHROPIC_CLAUDE_OPUS_5_5]: {
|
|
827
|
+
efforts: ["low", "medium", "high", "xhigh", "max"],
|
|
828
|
+
defaultEffort: "low"
|
|
829
|
+
},
|
|
830
|
+
[MODEL_XAI_GROK_4_7]: {
|
|
831
|
+
efforts: ["low", "medium", "high", "xhigh"],
|
|
832
|
+
defaultEffort: "low"
|
|
833
|
+
},
|
|
772
834
|
[MODEL_OPENAI_GPT_6_ASTRA]: {
|
|
773
835
|
efforts: ["max", "xhigh", "high", "medium", "low"],
|
|
774
836
|
defaultEffort: "medium"
|
|
@@ -821,6 +883,14 @@ var AITuberOnAirChat = (() => {
|
|
|
821
883
|
MODEL_NEX_AGI_NEX_N2_5_PRO_FREE
|
|
822
884
|
];
|
|
823
885
|
var OPENROUTER_VISION_SUPPORTED_MODELS = [
|
|
886
|
+
MODEL_QWEN_QWEN_3_8_27B,
|
|
887
|
+
MODEL_QWEN_QWEN_3_8_OMNI_FLASH,
|
|
888
|
+
MODEL_OPENAI_GPT_6_1_SOL,
|
|
889
|
+
MODEL_OPENAI_GPT_6_SOL,
|
|
890
|
+
MODEL_OPENAI_GPT_6_LUNA,
|
|
891
|
+
MODEL_ANTHROPIC_CLAUDE_SONNET_5_5,
|
|
892
|
+
MODEL_ANTHROPIC_CLAUDE_OPUS_5_5,
|
|
893
|
+
MODEL_XAI_GROK_4_7,
|
|
824
894
|
MODEL_OPENAI_GPT_6_ASTRA,
|
|
825
895
|
MODEL_OPENAI_GPT_6_ASTRA_PRO,
|
|
826
896
|
MODEL_ANTHROPIC_CLAUDE_FABLE_5_1,
|
|
@@ -866,6 +936,7 @@ var AITuberOnAirChat = (() => {
|
|
|
866
936
|
MODEL_GOOGLE_GEMINI_2_5_FLASH,
|
|
867
937
|
MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025,
|
|
868
938
|
MODEL_ZAI_GLM_5_3_FLASH,
|
|
939
|
+
MODEL_ZAI_GLM_5_3_FLASHX,
|
|
869
940
|
MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_VISION_EXP,
|
|
870
941
|
MODEL_QWEN_QWEN_3_8_FLASH,
|
|
871
942
|
MODEL_MOONSHOTAI_KIMI_K2_7_CODE,
|
|
@@ -893,7 +964,7 @@ var AITuberOnAirChat = (() => {
|
|
|
893
964
|
normalizedModel
|
|
894
965
|
) ? OPENROUTER_MODEL_REASONING[normalizedModel] : void 0;
|
|
895
966
|
if (profile) return profile.efforts;
|
|
896
|
-
if (normalizedModel === MODEL_ZAI_GLM_5_3 || normalizedModel === MODEL_ZAI_GLM_5_3_FLASH) {
|
|
967
|
+
if (normalizedModel === MODEL_ZAI_GLM_5_3 || normalizedModel === MODEL_ZAI_GLM_5_3_FLASH || normalizedModel === MODEL_ZAI_GLM_5_3_FLASHX) {
|
|
897
968
|
return OPENROUTER_ALWAYS_THINKING_REASONING_EFFORTS;
|
|
898
969
|
}
|
|
899
970
|
if (normalizedModel === MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_VISION_EXP) {
|
|
@@ -920,7 +991,7 @@ var AITuberOnAirChat = (() => {
|
|
|
920
991
|
normalizedModel
|
|
921
992
|
) ? OPENROUTER_MODEL_REASONING[normalizedModel] : void 0;
|
|
922
993
|
if (profile) return profile.defaultEffort;
|
|
923
|
-
if (normalizedModel === MODEL_ZAI_GLM_5_3 || normalizedModel === MODEL_ZAI_GLM_5_3_FLASH) {
|
|
994
|
+
if (normalizedModel === MODEL_ZAI_GLM_5_3 || normalizedModel === MODEL_ZAI_GLM_5_3_FLASH || normalizedModel === MODEL_ZAI_GLM_5_3_FLASHX) {
|
|
924
995
|
return "low";
|
|
925
996
|
}
|
|
926
997
|
return normalizedModel === MODEL_ZAI_GLM_5_2 || normalizedModel === MODEL_QWEN_QWEN_3_8_FLASH || normalizedModel === MODEL_MOONSHOTAI_KIMI_K2_6 || normalizedModel === MODEL_ANTHROPIC_CLAUDE_SONNET_5 || normalizedModel === MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_VISION_EXP || normalizedModel === MODEL_OPENROUTER_DEEPSEEK_V4_FLASH || normalizedModel === MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_0731 || normalizedModel === MODEL_OPENROUTER_DEEPSEEK_V4_PRO_0813 ? "none" : void 0;
|
|
@@ -939,7 +1010,7 @@ var AITuberOnAirChat = (() => {
|
|
|
939
1010
|
if (!requested) {
|
|
940
1011
|
return void 0;
|
|
941
1012
|
}
|
|
942
|
-
if (normalizedModel === MODEL_ZAI_GLM_5_3 || normalizedModel === MODEL_ZAI_GLM_5_3_FLASH) {
|
|
1013
|
+
if (normalizedModel === MODEL_ZAI_GLM_5_3 || normalizedModel === MODEL_ZAI_GLM_5_3_FLASH || normalizedModel === MODEL_ZAI_GLM_5_3_FLASHX) {
|
|
943
1014
|
if (requested === "high") {
|
|
944
1015
|
return "high";
|
|
945
1016
|
}
|
|
@@ -989,6 +1060,7 @@ var AITuberOnAirChat = (() => {
|
|
|
989
1060
|
var ENDPOINT_ZAI_CHAT_COMPLETIONS_API = "https://api.z.ai/api/paas/v4/chat/completions";
|
|
990
1061
|
var MODEL_GLM_5_3 = "glm-5.3";
|
|
991
1062
|
var MODEL_GLM_5_3_FLASH = "glm-5.3-flash";
|
|
1063
|
+
var MODEL_GLM_5_3_FLASHX = "glm-5.3-flashx";
|
|
992
1064
|
var MODEL_GLM_5_2 = "glm-5.2";
|
|
993
1065
|
var MODEL_GLM_5_1 = "glm-5.1";
|
|
994
1066
|
var MODEL_GLM_5 = "glm-5";
|
|
@@ -1016,7 +1088,7 @@ var AITuberOnAirChat = (() => {
|
|
|
1016
1088
|
"max"
|
|
1017
1089
|
];
|
|
1018
1090
|
function isZaiAlwaysThinkingModel(model) {
|
|
1019
|
-
return model === MODEL_GLM_5_3 || model === MODEL_GLM_5_3_FLASH;
|
|
1091
|
+
return model === MODEL_GLM_5_3 || model === MODEL_GLM_5_3_FLASH || model === MODEL_GLM_5_3_FLASHX;
|
|
1020
1092
|
}
|
|
1021
1093
|
function getZaiSupportedReasoningEfforts(model) {
|
|
1022
1094
|
if (isZaiAlwaysThinkingModel(model)) {
|
|
@@ -1056,6 +1128,7 @@ var AITuberOnAirChat = (() => {
|
|
|
1056
1128
|
return "max";
|
|
1057
1129
|
}
|
|
1058
1130
|
var ZAI_VISION_SUPPORTED_MODELS = [
|
|
1131
|
+
MODEL_GLM_5_3_FLASHX,
|
|
1059
1132
|
MODEL_GLM_5_3_FLASH,
|
|
1060
1133
|
MODEL_GLM_5V_TURBO,
|
|
1061
1134
|
MODEL_GLM_4_6V,
|
|
@@ -1255,6 +1328,7 @@ var AITuberOnAirChat = (() => {
|
|
|
1255
1328
|
var MODEL_MISTRAL_MEDIUM_2508 = "mistral-medium-2508";
|
|
1256
1329
|
var MODEL_MISTRAL_LARGE_LATEST = "mistral-large-latest";
|
|
1257
1330
|
var MODEL_MISTRAL_LARGE_2512 = "mistral-large-2512";
|
|
1331
|
+
var MODEL_MISTRAL_ZAI_GLM_5_3 = "zai-glm-5-3";
|
|
1258
1332
|
var MISTRAL_SUPPORTED_MODELS = [
|
|
1259
1333
|
MODEL_MISTRAL_SMALL_LATEST,
|
|
1260
1334
|
MODEL_MINISTRAL_3B_2512,
|
|
@@ -1263,7 +1337,8 @@ var AITuberOnAirChat = (() => {
|
|
|
1263
1337
|
MODEL_MISTRAL_MEDIUM_3_5,
|
|
1264
1338
|
MODEL_MISTRAL_LARGE_LATEST,
|
|
1265
1339
|
MODEL_MISTRAL_LARGE_2512,
|
|
1266
|
-
MODEL_MISTRAL_SMALL_2603
|
|
1340
|
+
MODEL_MISTRAL_SMALL_2603,
|
|
1341
|
+
MODEL_MISTRAL_ZAI_GLM_5_3
|
|
1267
1342
|
];
|
|
1268
1343
|
var MISTRAL_DEPRECATED_MODELS = [MODEL_MISTRAL_MEDIUM_2508];
|
|
1269
1344
|
var MISTRAL_REASONING_EFFORT_SUPPORTED_MODELS = [
|
|
@@ -2874,6 +2949,15 @@ If it's in another language, summarize in that language.
|
|
|
2874
2949
|
};
|
|
2875
2950
|
|
|
2876
2951
|
// src/services/providers/openai/responsesParser.ts
|
|
2952
|
+
function throwIfResponsesError(data, eventType) {
|
|
2953
|
+
const response = data?.response ?? data;
|
|
2954
|
+
const error = response?.error;
|
|
2955
|
+
if (!error && response?.status !== "failed" && eventType !== "error" && eventType !== "response.failed") {
|
|
2956
|
+
return;
|
|
2957
|
+
}
|
|
2958
|
+
const message = typeof error === "string" ? error : error?.message ?? data?.message ?? "The provider response failed.";
|
|
2959
|
+
throw new Error(`Provider response error: ${message}`);
|
|
2960
|
+
}
|
|
2877
2961
|
async function parseOpenAIResponsesStream(res, onPartial, options = {}) {
|
|
2878
2962
|
const reader = res.body.getReader();
|
|
2879
2963
|
const dec = new TextDecoder();
|
|
@@ -2884,12 +2968,12 @@ If it's in another language, summarize in that language.
|
|
|
2884
2968
|
let incompleteDetails;
|
|
2885
2969
|
let usage;
|
|
2886
2970
|
let buf = "";
|
|
2971
|
+
let eventType = "";
|
|
2972
|
+
let eventData = "";
|
|
2887
2973
|
while (true) {
|
|
2888
2974
|
const { done, value } = await reader.read();
|
|
2889
2975
|
if (done) break;
|
|
2890
2976
|
buf += dec.decode(value, { stream: true });
|
|
2891
|
-
let eventType = "";
|
|
2892
|
-
let eventData = "";
|
|
2893
2977
|
const lines = buf.split("\n");
|
|
2894
2978
|
buf = lines.pop() || "";
|
|
2895
2979
|
for (let i = 0; i < lines.length; i++) {
|
|
@@ -2899,31 +2983,36 @@ If it's in another language, summarize in that language.
|
|
|
2899
2983
|
} else if (line.startsWith("data:")) {
|
|
2900
2984
|
eventData = line.slice(5).trim();
|
|
2901
2985
|
} else if (line === "" && eventType && eventData) {
|
|
2986
|
+
let json;
|
|
2902
2987
|
try {
|
|
2903
|
-
|
|
2904
|
-
handleResponsesSSEEvent(
|
|
2905
|
-
eventType,
|
|
2906
|
-
json,
|
|
2907
|
-
onPartial,
|
|
2908
|
-
textBlocks,
|
|
2909
|
-
toolCallsMap,
|
|
2910
|
-
providerItems,
|
|
2911
|
-
(metadata) => {
|
|
2912
|
-
if (metadata.responseStatus !== void 0) {
|
|
2913
|
-
responseStatus = metadata.responseStatus;
|
|
2914
|
-
}
|
|
2915
|
-
if (metadata.incompleteDetails !== void 0) {
|
|
2916
|
-
incompleteDetails = metadata.incompleteDetails;
|
|
2917
|
-
}
|
|
2918
|
-
if (metadata.usage !== void 0) {
|
|
2919
|
-
usage = metadata.usage;
|
|
2920
|
-
}
|
|
2921
|
-
}
|
|
2922
|
-
);
|
|
2988
|
+
json = JSON.parse(eventData);
|
|
2923
2989
|
} catch (error) {
|
|
2924
2990
|
options.onJsonError?.(eventData, error);
|
|
2925
2991
|
console.warn("Failed to parse SSE data:", eventData);
|
|
2992
|
+
eventType = "";
|
|
2993
|
+
eventData = "";
|
|
2994
|
+
continue;
|
|
2926
2995
|
}
|
|
2996
|
+
throwIfResponsesError(json, eventType);
|
|
2997
|
+
handleResponsesSSEEvent(
|
|
2998
|
+
eventType,
|
|
2999
|
+
json,
|
|
3000
|
+
onPartial,
|
|
3001
|
+
textBlocks,
|
|
3002
|
+
toolCallsMap,
|
|
3003
|
+
providerItems,
|
|
3004
|
+
(metadata) => {
|
|
3005
|
+
if (metadata.responseStatus !== void 0) {
|
|
3006
|
+
responseStatus = metadata.responseStatus;
|
|
3007
|
+
}
|
|
3008
|
+
if (metadata.incompleteDetails !== void 0) {
|
|
3009
|
+
incompleteDetails = metadata.incompleteDetails;
|
|
3010
|
+
}
|
|
3011
|
+
if (metadata.usage !== void 0) {
|
|
3012
|
+
usage = metadata.usage;
|
|
3013
|
+
}
|
|
3014
|
+
}
|
|
3015
|
+
);
|
|
2927
3016
|
eventType = "";
|
|
2928
3017
|
eventData = "";
|
|
2929
3018
|
}
|
|
@@ -3051,6 +3140,7 @@ If it's in another language, summarize in that language.
|
|
|
3051
3140
|
};
|
|
3052
3141
|
}
|
|
3053
3142
|
function parseOpenAIResponsesOneShot(data, options = {}) {
|
|
3143
|
+
throwIfResponsesError(data);
|
|
3054
3144
|
const blocks = [];
|
|
3055
3145
|
if (data.output && Array.isArray(data.output)) {
|
|
3056
3146
|
data.output.forEach((outputItem) => {
|
|
@@ -3185,10 +3275,15 @@ If it's in another language, summarize in that language.
|
|
|
3185
3275
|
chatTemplateThinking,
|
|
3186
3276
|
maxTokens
|
|
3187
3277
|
}) {
|
|
3188
|
-
if (model === MODEL_GPT_6_ASTRA && (!reasoning_effort || reasoning_effort === "none" || reasoning_effort === "minimal")) {
|
|
3278
|
+
if ((model === MODEL_GPT_6_ASTRA || provider === "openai" && model === MODEL_GPT_6_1_SOL) && (!reasoning_effort || reasoning_effort === "none" || reasoning_effort === "minimal")) {
|
|
3189
3279
|
reasoning_effort = "low";
|
|
3190
3280
|
}
|
|
3191
3281
|
const isResponsesAPI = endpoint === ENDPOINT_OPENAI_RESPONSES_API;
|
|
3282
|
+
if (provider === "openai" && model === MODEL_GPT_6_1_SOL && (tools.length > 0 || mcpServers.length > 0) && !isResponsesAPI) {
|
|
3283
|
+
throw new Error(
|
|
3284
|
+
"GPT-6.1 Sol tool calling requires the OpenAI Responses API endpoint: " + ENDPOINT_OPENAI_RESPONSES_API + ". Custom endpoints use Chat Completions and cannot be used with this model's tools."
|
|
3285
|
+
);
|
|
3286
|
+
}
|
|
3192
3287
|
validateMCPCompatibility(endpoint, mcpServers);
|
|
3193
3288
|
const body = {
|
|
3194
3289
|
model,
|
|
@@ -3405,7 +3500,8 @@ If it's in another language, summarize in that language.
|
|
|
3405
3500
|
this.apiKey = apiKey;
|
|
3406
3501
|
this.model = model;
|
|
3407
3502
|
this.tools = tools || [];
|
|
3408
|
-
|
|
3503
|
+
const solToolsRequireResponses = provider === "openai" && (model === MODEL_GPT_6_1_SOL || visionModel === MODEL_GPT_6_1_SOL) && (this.tools.length > 0 || mcpServers.length > 0);
|
|
3504
|
+
this.endpoint = (model === MODEL_GPT_6_ASTRA || visionModel === MODEL_GPT_6_ASTRA || solToolsRequireResponses) && endpoint === ENDPOINT_OPENAI_CHAT_COMPLETIONS_API ? ENDPOINT_OPENAI_RESPONSES_API : endpoint;
|
|
3409
3505
|
this.mcpServers = mcpServers;
|
|
3410
3506
|
this.responseLength = responseLength;
|
|
3411
3507
|
this.verbosity = verbosity;
|
|
@@ -3572,15 +3668,18 @@ If it's in another language, summarize in that language.
|
|
|
3572
3668
|
return res;
|
|
3573
3669
|
}
|
|
3574
3670
|
async handleStream(res, onPartial) {
|
|
3575
|
-
return parseOpenAICompatibleTextStream(res, onPartial
|
|
3671
|
+
return parseOpenAICompatibleTextStream(res, onPartial, {
|
|
3672
|
+
throwOnApiError: true
|
|
3673
|
+
});
|
|
3576
3674
|
}
|
|
3577
3675
|
async parseStream(res, onPartial) {
|
|
3578
3676
|
return parseOpenAICompatibleToolStream(res, onPartial, {
|
|
3579
|
-
appendTextBlock: StreamTextAccumulator.addTextBlock
|
|
3677
|
+
appendTextBlock: StreamTextAccumulator.addTextBlock,
|
|
3678
|
+
throwOnApiError: true
|
|
3580
3679
|
});
|
|
3581
3680
|
}
|
|
3582
3681
|
parseOneShot(data) {
|
|
3583
|
-
return parseOpenAICompatibleOneShot(data);
|
|
3682
|
+
return parseOpenAICompatibleOneShot(data, { throwOnApiError: true });
|
|
3584
3683
|
}
|
|
3585
3684
|
};
|
|
3586
3685
|
|
|
@@ -5540,6 +5639,9 @@ If it's in another language, summarize in that language.
|
|
|
5540
5639
|
shouldUseResponsesAPI = preference !== "chat" || optimizedOptions.reasoning_effort !== "none";
|
|
5541
5640
|
} else if (isResponsesOnlyGPT5Model(modelName)) {
|
|
5542
5641
|
shouldUseResponsesAPI = true;
|
|
5642
|
+
} else if (modelName === MODEL_GPT_6_1_SOL || visionModel === MODEL_GPT_6_1_SOL) {
|
|
5643
|
+
const preference = optimizedOptions.gpt5EndpointPreference || "responses";
|
|
5644
|
+
shouldUseResponsesAPI = (tools?.length ?? 0) > 0 || preference !== "chat";
|
|
5543
5645
|
} else if (isOpenAIReasoningModel(modelName)) {
|
|
5544
5646
|
const preference = optimizedOptions.gpt5EndpointPreference || "chat";
|
|
5545
5647
|
shouldUseResponsesAPI = preference === "responses";
|
|
@@ -5583,6 +5685,7 @@ If it's in another language, summarize in that language.
|
|
|
5583
5685
|
MODEL_GPT_5_4,
|
|
5584
5686
|
MODEL_GPT_5_5,
|
|
5585
5687
|
MODEL_GPT_5_6,
|
|
5688
|
+
MODEL_GPT_6_1_SOL,
|
|
5586
5689
|
MODEL_GPT_6_ASTRA,
|
|
5587
5690
|
MODEL_GPT_6_SOL,
|
|
5588
5691
|
MODEL_GPT_6_LUNA,
|
|
@@ -5910,12 +6013,13 @@ If it's in another language, summarize in that language.
|
|
|
5910
6013
|
} else if (tokenLimit) {
|
|
5911
6014
|
body.max_tokens = tokenLimit;
|
|
5912
6015
|
}
|
|
6016
|
+
const reasoningMaxTokens = OPENROUTER_MODELS_WITHOUT_REASONING_BUDGET.includes(model.trim()) ? void 0 : this.reasoningMaxTokens;
|
|
5913
6017
|
const defaultReasoningEffort = getDefaultOpenRouterReasoningEffort(model);
|
|
5914
6018
|
const reasoningEffort = normalizeOpenRouterReasoningEffort(
|
|
5915
6019
|
model,
|
|
5916
6020
|
this.reasoning_effort
|
|
5917
6021
|
);
|
|
5918
|
-
if (reasoningEffort !== void 0 || this.includeReasoning !== void 0 ||
|
|
6022
|
+
if (reasoningEffort !== void 0 || this.includeReasoning !== void 0 || reasoningMaxTokens || defaultReasoningEffort) {
|
|
5919
6023
|
body.reasoning = {};
|
|
5920
6024
|
if (reasoningEffort) {
|
|
5921
6025
|
const effort = reasoningEffort === "minimal" && model !== MODEL_QWEN_QWEN_3_8_MAX_0902 && model !== MODEL_META_MUSE_SPARK_1_3 ? "low" : reasoningEffort;
|
|
@@ -5926,8 +6030,8 @@ If it's in another language, summarize in that language.
|
|
|
5926
6030
|
if (reasoningEffort === "none" || this.includeReasoning !== true) {
|
|
5927
6031
|
body.reasoning.exclude = true;
|
|
5928
6032
|
}
|
|
5929
|
-
if (
|
|
5930
|
-
body.reasoning.max_tokens =
|
|
6033
|
+
if (reasoningMaxTokens) {
|
|
6034
|
+
body.reasoning.max_tokens = reasoningMaxTokens;
|
|
5931
6035
|
}
|
|
5932
6036
|
} else {
|
|
5933
6037
|
body.reasoning = { exclude: true };
|
|
@@ -5947,7 +6051,7 @@ If it's in another language, summarize in that language.
|
|
|
5947
6051
|
async handleStream(res, onPartial, model) {
|
|
5948
6052
|
const text = await parseOpenAICompatibleTextStream(res, onPartial, {
|
|
5949
6053
|
onJsonError: (payload) => console.debug("Failed to parse SSE data:", payload),
|
|
5950
|
-
throwOnApiError:
|
|
6054
|
+
throwOnApiError: true
|
|
5951
6055
|
});
|
|
5952
6056
|
ensureAutoRouterOutput(model, text.trim().length > 0);
|
|
5953
6057
|
return text;
|
|
@@ -5958,7 +6062,7 @@ If it's in another language, summarize in that language.
|
|
|
5958
6062
|
async parseStream(res, onPartial, model) {
|
|
5959
6063
|
const completion = await parseOpenAICompatibleToolStream(res, onPartial, {
|
|
5960
6064
|
onJsonError: (payload) => console.debug("Failed to parse SSE data:", payload),
|
|
5961
|
-
throwOnApiError:
|
|
6065
|
+
throwOnApiError: true
|
|
5962
6066
|
});
|
|
5963
6067
|
ensureAutoRouterOutput(model, hasUsableCompletionOutput(completion));
|
|
5964
6068
|
return completion;
|
|
@@ -5968,7 +6072,7 @@ If it's in another language, summarize in that language.
|
|
|
5968
6072
|
*/
|
|
5969
6073
|
parseOneShot(data, model) {
|
|
5970
6074
|
const completion = parseOpenAICompatibleOneShot(data, {
|
|
5971
|
-
throwOnApiError:
|
|
6075
|
+
throwOnApiError: true
|
|
5972
6076
|
});
|
|
5973
6077
|
ensureAutoRouterOutput(model, hasUsableCompletionOutput(completion));
|
|
5974
6078
|
return completion;
|
|
@@ -6022,6 +6126,12 @@ If it's in another language, summarize in that language.
|
|
|
6022
6126
|
*/
|
|
6023
6127
|
getSupportedModels() {
|
|
6024
6128
|
return [
|
|
6129
|
+
MODEL_OPENAI_GPT_6_1_SOL,
|
|
6130
|
+
MODEL_OPENAI_GPT_6_SOL,
|
|
6131
|
+
MODEL_OPENAI_GPT_6_LUNA,
|
|
6132
|
+
MODEL_ANTHROPIC_CLAUDE_SONNET_5_5,
|
|
6133
|
+
MODEL_ANTHROPIC_CLAUDE_OPUS_5_5,
|
|
6134
|
+
MODEL_XAI_GROK_4_7,
|
|
6025
6135
|
MODEL_OPENAI_GPT_6_ASTRA,
|
|
6026
6136
|
MODEL_OPENAI_GPT_6_ASTRA_PRO,
|
|
6027
6137
|
MODEL_ANTHROPIC_CLAUDE_FABLE_5_1,
|
|
@@ -6033,6 +6143,9 @@ If it's in another language, summarize in that language.
|
|
|
6033
6143
|
MODEL_NEX_AGI_NEX_N2_5_PRO_FREE,
|
|
6034
6144
|
MODEL_QWEN_QWEN_3_8_MAX_0902,
|
|
6035
6145
|
MODEL_META_MUSE_SPARK_1_3,
|
|
6146
|
+
MODEL_NVIDIA_NEMOTRON_3_5_LIGHTNING,
|
|
6147
|
+
MODEL_QWEN_QWEN_3_8_27B,
|
|
6148
|
+
MODEL_QWEN_QWEN_3_8_OMNI_FLASH,
|
|
6036
6149
|
// OpenRouter routing
|
|
6037
6150
|
MODEL_OPENROUTER_AUTO,
|
|
6038
6151
|
MODEL_OPENROUTER_AUTO_BETA,
|
|
@@ -6075,6 +6188,7 @@ If it's in another language, summarize in that language.
|
|
|
6075
6188
|
// Z.ai models
|
|
6076
6189
|
MODEL_ZAI_GLM_5_3,
|
|
6077
6190
|
MODEL_ZAI_GLM_5_3_FLASH,
|
|
6191
|
+
MODEL_ZAI_GLM_5_3_FLASHX,
|
|
6078
6192
|
MODEL_ZAI_GLM_5_2,
|
|
6079
6193
|
MODEL_ZAI_GLM_4_7_FLASH,
|
|
6080
6194
|
MODEL_ZAI_GLM_4_5_AIR,
|
|
@@ -6673,10 +6787,19 @@ If it's in another language, summarize in that language.
|
|
|
6673
6787
|
if (this.responseFormat) {
|
|
6674
6788
|
body.response_format = this.responseFormat;
|
|
6675
6789
|
}
|
|
6676
|
-
if (
|
|
6790
|
+
if (model === MODEL_GLM_5_3_FLASHX) {
|
|
6791
|
+
body.thinking = {
|
|
6792
|
+
type: "enabled",
|
|
6793
|
+
clear_thinking: this.thinking?.clear_thinking ?? true
|
|
6794
|
+
};
|
|
6795
|
+
body.reasoning_effort = normalizeZaiReasoningEffort(
|
|
6796
|
+
model,
|
|
6797
|
+
this.reasoningEffort
|
|
6798
|
+
);
|
|
6799
|
+
} else if (this.thinking) {
|
|
6677
6800
|
body.thinking = this.thinking;
|
|
6678
6801
|
}
|
|
6679
|
-
if (isZaiReasoningEffortModel(model) && this.reasoningEffort) {
|
|
6802
|
+
if (model !== MODEL_GLM_5_3_FLASHX && isZaiReasoningEffortModel(model) && this.reasoningEffort) {
|
|
6680
6803
|
body.reasoning_effort = this.reasoningEffort;
|
|
6681
6804
|
}
|
|
6682
6805
|
const tools = this.buildToolsDefinition();
|
|
@@ -6694,6 +6817,7 @@ If it's in another language, summarize in that language.
|
|
|
6694
6817
|
}
|
|
6695
6818
|
async handleStream(res, onPartial) {
|
|
6696
6819
|
return parseOpenAICompatibleTextStream(res, onPartial, {
|
|
6820
|
+
throwOnApiError: true,
|
|
6697
6821
|
onJsonError: (payload) => console.debug("Failed to parse SSE data:", payload)
|
|
6698
6822
|
});
|
|
6699
6823
|
}
|
|
@@ -6702,6 +6826,7 @@ If it's in another language, summarize in that language.
|
|
|
6702
6826
|
*/
|
|
6703
6827
|
async parseStream(res, onPartial) {
|
|
6704
6828
|
return parseOpenAICompatibleToolStream(res, onPartial, {
|
|
6829
|
+
throwOnApiError: true,
|
|
6705
6830
|
onJsonError: (payload) => console.debug("Failed to parse SSE data:", payload)
|
|
6706
6831
|
});
|
|
6707
6832
|
}
|
|
@@ -6709,7 +6834,7 @@ If it's in another language, summarize in that language.
|
|
|
6709
6834
|
* Parse non-streaming response
|
|
6710
6835
|
*/
|
|
6711
6836
|
parseOneShot(data) {
|
|
6712
|
-
return parseOpenAICompatibleOneShot(data);
|
|
6837
|
+
return parseOpenAICompatibleOneShot(data, { throwOnApiError: true });
|
|
6713
6838
|
}
|
|
6714
6839
|
};
|
|
6715
6840
|
|
|
@@ -6778,6 +6903,7 @@ If it's in another language, summarize in that language.
|
|
|
6778
6903
|
return [
|
|
6779
6904
|
MODEL_GLM_5_3,
|
|
6780
6905
|
MODEL_GLM_5_3_FLASH,
|
|
6906
|
+
MODEL_GLM_5_3_FLASHX,
|
|
6781
6907
|
MODEL_GLM_5_2,
|
|
6782
6908
|
MODEL_GLM_5_1,
|
|
6783
6909
|
MODEL_GLM_5,
|
|
@@ -7034,7 +7160,7 @@ If it's in another language, summarize in that language.
|
|
|
7034
7160
|
mcp: MCP_SUPPORTED_PROVIDERS.has(providerName),
|
|
7035
7161
|
jsonMode: JSON_MODE_SUPPORTED_PROVIDERS.has(providerName),
|
|
7036
7162
|
responseLength: true,
|
|
7037
|
-
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] ?? []
|
|
7163
|
+
reasoningEffort: providerName === "openai" && (model === MODEL_GPT_6_1_SOL || 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] ?? []
|
|
7038
7164
|
};
|
|
7039
7165
|
}
|
|
7040
7166
|
/**
|