@aituber-onair/chat 0.51.0 → 0.52.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/README.ja.md +43 -30
  2. package/README.md +42 -31
  3. package/dist/cjs/constants/claude.d.ts +2 -0
  4. package/dist/cjs/constants/claude.d.ts.map +1 -1
  5. package/dist/cjs/constants/claude.js +13 -4
  6. package/dist/cjs/constants/claude.js.map +1 -1
  7. package/dist/cjs/constants/gemini.d.ts +1 -0
  8. package/dist/cjs/constants/gemini.d.ts.map +1 -1
  9. package/dist/cjs/constants/gemini.js +11 -1
  10. package/dist/cjs/constants/gemini.js.map +1 -1
  11. package/dist/cjs/constants/mistral.d.ts +2 -0
  12. package/dist/cjs/constants/mistral.d.ts.map +1 -1
  13. package/dist/cjs/constants/mistral.js +3 -3
  14. package/dist/cjs/constants/mistral.js.map +1 -1
  15. package/dist/cjs/constants/openrouter.d.ts +5 -0
  16. package/dist/cjs/constants/openrouter.d.ts.map +1 -1
  17. package/dist/cjs/constants/openrouter.js +39 -9
  18. package/dist/cjs/constants/openrouter.js.map +1 -1
  19. package/dist/cjs/constants/plamo.d.ts +2 -0
  20. package/dist/cjs/constants/plamo.d.ts.map +1 -1
  21. package/dist/cjs/constants/plamo.js +4 -5
  22. package/dist/cjs/constants/plamo.js.map +1 -1
  23. package/dist/cjs/constants/sakana.d.ts +3 -0
  24. package/dist/cjs/constants/sakana.d.ts.map +1 -1
  25. package/dist/cjs/constants/sakana.js +7 -3
  26. package/dist/cjs/constants/sakana.js.map +1 -1
  27. package/dist/cjs/constants/xai.d.ts +1 -0
  28. package/dist/cjs/constants/xai.d.ts.map +1 -1
  29. package/dist/cjs/constants/xai.js +7 -3
  30. package/dist/cjs/constants/xai.js.map +1 -1
  31. package/dist/cjs/constants/zai.d.ts +8 -0
  32. package/dist/cjs/constants/zai.d.ts.map +1 -1
  33. package/dist/cjs/constants/zai.js +38 -0
  34. package/dist/cjs/constants/zai.js.map +1 -1
  35. package/dist/cjs/services/ChatServiceFactory.d.ts.map +1 -1
  36. package/dist/cjs/services/ChatServiceFactory.js +16 -9
  37. package/dist/cjs/services/ChatServiceFactory.js.map +1 -1
  38. package/dist/cjs/services/providers/ChatServiceProvider.d.ts +5 -1
  39. package/dist/cjs/services/providers/ChatServiceProvider.d.ts.map +1 -1
  40. package/dist/cjs/services/providers/claude/ClaudeChatService.d.ts +2 -3
  41. package/dist/cjs/services/providers/claude/ClaudeChatService.d.ts.map +1 -1
  42. package/dist/cjs/services/providers/claude/ClaudeChatService.js +23 -15
  43. package/dist/cjs/services/providers/claude/ClaudeChatService.js.map +1 -1
  44. package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
  45. package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js +1 -3
  46. package/dist/cjs/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
  47. package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js +4 -4
  48. package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
  49. package/dist/cjs/services/providers/xai/XAIChatService.d.ts.map +1 -1
  50. package/dist/cjs/services/providers/xai/XAIChatService.js +1 -1
  51. package/dist/cjs/services/providers/xai/XAIChatService.js.map +1 -1
  52. package/dist/cjs/services/providers/xai/XAIChatServiceProvider.d.ts.map +1 -1
  53. package/dist/cjs/services/providers/xai/XAIChatServiceProvider.js +2 -4
  54. package/dist/cjs/services/providers/xai/XAIChatServiceProvider.js.map +1 -1
  55. package/dist/cjs/services/providers/zai/ZAIChatService.d.ts +3 -1
  56. package/dist/cjs/services/providers/zai/ZAIChatService.d.ts.map +1 -1
  57. package/dist/cjs/services/providers/zai/ZAIChatService.js +5 -1
  58. package/dist/cjs/services/providers/zai/ZAIChatService.js.map +1 -1
  59. package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.d.ts.map +1 -1
  60. package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.js +27 -2
  61. package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.js.map +1 -1
  62. package/dist/cjs/types/toolChat.d.ts +6 -0
  63. package/dist/cjs/types/toolChat.d.ts.map +1 -1
  64. package/dist/esm/constants/claude.d.ts +2 -0
  65. package/dist/esm/constants/claude.d.ts.map +1 -1
  66. package/dist/esm/constants/claude.js +12 -3
  67. package/dist/esm/constants/claude.js.map +1 -1
  68. package/dist/esm/constants/gemini.d.ts +1 -0
  69. package/dist/esm/constants/gemini.d.ts.map +1 -1
  70. package/dist/esm/constants/gemini.js +10 -0
  71. package/dist/esm/constants/gemini.js.map +1 -1
  72. package/dist/esm/constants/mistral.d.ts +2 -0
  73. package/dist/esm/constants/mistral.d.ts.map +1 -1
  74. package/dist/esm/constants/mistral.js +2 -2
  75. package/dist/esm/constants/mistral.js.map +1 -1
  76. package/dist/esm/constants/openrouter.d.ts +5 -0
  77. package/dist/esm/constants/openrouter.d.ts.map +1 -1
  78. package/dist/esm/constants/openrouter.js +37 -7
  79. package/dist/esm/constants/openrouter.js.map +1 -1
  80. package/dist/esm/constants/plamo.d.ts +2 -0
  81. package/dist/esm/constants/plamo.d.ts.map +1 -1
  82. package/dist/esm/constants/plamo.js +3 -4
  83. package/dist/esm/constants/plamo.js.map +1 -1
  84. package/dist/esm/constants/sakana.d.ts +3 -0
  85. package/dist/esm/constants/sakana.d.ts.map +1 -1
  86. package/dist/esm/constants/sakana.js +6 -2
  87. package/dist/esm/constants/sakana.js.map +1 -1
  88. package/dist/esm/constants/xai.d.ts +1 -0
  89. package/dist/esm/constants/xai.d.ts.map +1 -1
  90. package/dist/esm/constants/xai.js +6 -2
  91. package/dist/esm/constants/xai.js.map +1 -1
  92. package/dist/esm/constants/zai.d.ts +8 -0
  93. package/dist/esm/constants/zai.d.ts.map +1 -1
  94. package/dist/esm/constants/zai.js +34 -0
  95. package/dist/esm/constants/zai.js.map +1 -1
  96. package/dist/esm/services/ChatServiceFactory.d.ts.map +1 -1
  97. package/dist/esm/services/ChatServiceFactory.js +16 -9
  98. package/dist/esm/services/ChatServiceFactory.js.map +1 -1
  99. package/dist/esm/services/providers/ChatServiceProvider.d.ts +5 -1
  100. package/dist/esm/services/providers/ChatServiceProvider.d.ts.map +1 -1
  101. package/dist/esm/services/providers/claude/ClaudeChatService.d.ts +2 -3
  102. package/dist/esm/services/providers/claude/ClaudeChatService.d.ts.map +1 -1
  103. package/dist/esm/services/providers/claude/ClaudeChatService.js +23 -15
  104. package/dist/esm/services/providers/claude/ClaudeChatService.js.map +1 -1
  105. package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.d.ts.map +1 -1
  106. package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js +2 -4
  107. package/dist/esm/services/providers/claude/ClaudeChatServiceProvider.js.map +1 -1
  108. package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js +5 -5
  109. package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
  110. package/dist/esm/services/providers/xai/XAIChatService.d.ts.map +1 -1
  111. package/dist/esm/services/providers/xai/XAIChatService.js +2 -2
  112. package/dist/esm/services/providers/xai/XAIChatService.js.map +1 -1
  113. package/dist/esm/services/providers/xai/XAIChatServiceProvider.d.ts.map +1 -1
  114. package/dist/esm/services/providers/xai/XAIChatServiceProvider.js +3 -5
  115. package/dist/esm/services/providers/xai/XAIChatServiceProvider.js.map +1 -1
  116. package/dist/esm/services/providers/zai/ZAIChatService.d.ts +3 -1
  117. package/dist/esm/services/providers/zai/ZAIChatService.d.ts.map +1 -1
  118. package/dist/esm/services/providers/zai/ZAIChatService.js +5 -1
  119. package/dist/esm/services/providers/zai/ZAIChatService.js.map +1 -1
  120. package/dist/esm/services/providers/zai/ZAIChatServiceProvider.d.ts.map +1 -1
  121. package/dist/esm/services/providers/zai/ZAIChatServiceProvider.js +28 -3
  122. package/dist/esm/services/providers/zai/ZAIChatServiceProvider.js.map +1 -1
  123. package/dist/esm/types/toolChat.d.ts +6 -0
  124. package/dist/esm/types/toolChat.d.ts.map +1 -1
  125. package/dist/umd/aituber-onair-chat.js +184 -52
  126. package/dist/umd/aituber-onair-chat.min.js +8 -8
  127. package/package.json +1 -1
@@ -22,6 +22,7 @@ var AITuberOnAirChat = (() => {
22
22
  var index_exports = {};
23
23
  __export(index_exports, {
24
24
  CHAT_RESPONSE_LENGTH: () => CHAT_RESPONSE_LENGTH,
25
+ CLAUDE_DEPRECATED_MODELS: () => CLAUDE_DEPRECATED_MODELS,
25
26
  CLAUDE_VISION_SUPPORTED_MODELS: () => CLAUDE_VISION_SUPPORTED_MODELS,
26
27
  ChatServiceFactory: () => ChatServiceFactory,
27
28
  ChatServiceHttpClient: () => ChatServiceHttpClient,
@@ -67,12 +68,14 @@ var AITuberOnAirChat = (() => {
67
68
  KimiChatServiceProvider: () => KimiChatServiceProvider,
68
69
  MAX_TOKENS_BY_LENGTH: () => MAX_TOKENS_BY_LENGTH,
69
70
  MISTRAL_API_BASE_URL: () => MISTRAL_API_BASE_URL,
71
+ MISTRAL_DEPRECATED_MODELS: () => MISTRAL_DEPRECATED_MODELS,
70
72
  MISTRAL_REASONING_EFFORT_SUPPORTED_MODELS: () => MISTRAL_REASONING_EFFORT_SUPPORTED_MODELS,
71
73
  MISTRAL_SUPPORTED_MODELS: () => MISTRAL_SUPPORTED_MODELS,
72
74
  MISTRAL_VISION_SUPPORTED_MODELS: () => MISTRAL_VISION_SUPPORTED_MODELS,
73
75
  MODEL_ANTHROPIC_CLAUDE_3_5_SONNET: () => MODEL_ANTHROPIC_CLAUDE_3_5_SONNET,
74
76
  MODEL_ANTHROPIC_CLAUDE_3_7_SONNET: () => MODEL_ANTHROPIC_CLAUDE_3_7_SONNET,
75
77
  MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU: () => MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU,
78
+ MODEL_ANTHROPIC_CLAUDE_FABLE_5: () => MODEL_ANTHROPIC_CLAUDE_FABLE_5,
76
79
  MODEL_ANTHROPIC_CLAUDE_HAIKU_LATEST: () => MODEL_ANTHROPIC_CLAUDE_HAIKU_LATEST,
77
80
  MODEL_ANTHROPIC_CLAUDE_OPUS_4: () => MODEL_ANTHROPIC_CLAUDE_OPUS_4,
78
81
  MODEL_ANTHROPIC_CLAUDE_OPUS_5: () => MODEL_ANTHROPIC_CLAUDE_OPUS_5,
@@ -91,6 +94,7 @@ var AITuberOnAirChat = (() => {
91
94
  MODEL_CLAUDE_4_8_OPUS: () => MODEL_CLAUDE_4_8_OPUS,
92
95
  MODEL_CLAUDE_4_OPUS: () => MODEL_CLAUDE_4_OPUS,
93
96
  MODEL_CLAUDE_4_SONNET: () => MODEL_CLAUDE_4_SONNET,
97
+ MODEL_CLAUDE_5_FABLE: () => MODEL_CLAUDE_5_FABLE,
94
98
  MODEL_CLAUDE_5_OPUS: () => MODEL_CLAUDE_5_OPUS,
95
99
  MODEL_CLAUDE_5_SONNET: () => MODEL_CLAUDE_5_SONNET,
96
100
  MODEL_DEEPSEEK_CHAT: () => MODEL_DEEPSEEK_CHAT,
@@ -100,6 +104,7 @@ var AITuberOnAirChat = (() => {
100
104
  MODEL_FUGU: () => MODEL_FUGU,
101
105
  MODEL_FUGU_ULTRA: () => MODEL_FUGU_ULTRA,
102
106
  MODEL_FUGU_ULTRA_20260615: () => MODEL_FUGU_ULTRA_20260615,
107
+ MODEL_FUGU_ULTRA_V1_1: () => MODEL_FUGU_ULTRA_V1_1,
103
108
  MODEL_GEMINI_2_5_FLASH: () => MODEL_GEMINI_2_5_FLASH,
104
109
  MODEL_GEMINI_2_5_FLASH_LITE: () => MODEL_GEMINI_2_5_FLASH_LITE,
105
110
  MODEL_GEMINI_2_5_FLASH_LITE_PREVIEW_06_17: () => MODEL_GEMINI_2_5_FLASH_LITE_PREVIEW_06_17,
@@ -110,6 +115,7 @@ var AITuberOnAirChat = (() => {
110
115
  MODEL_GEMINI_3_5_FLASH: () => MODEL_GEMINI_3_5_FLASH,
111
116
  MODEL_GEMINI_3_5_FLASH_LITE: () => MODEL_GEMINI_3_5_FLASH_LITE,
112
117
  MODEL_GEMINI_3_6_FLASH: () => MODEL_GEMINI_3_6_FLASH,
118
+ MODEL_GEMINI_3_7_FLASH: () => MODEL_GEMINI_3_7_FLASH,
113
119
  MODEL_GEMINI_3_FLASH_PREVIEW: () => MODEL_GEMINI_3_FLASH_PREVIEW,
114
120
  MODEL_GEMINI_3_PRO_PREVIEW: () => MODEL_GEMINI_3_PRO_PREVIEW,
115
121
  MODEL_GEMINI_NANO: () => MODEL_GEMINI_NANO,
@@ -132,6 +138,7 @@ var AITuberOnAirChat = (() => {
132
138
  MODEL_GOOGLE_GEMINI_2_5_PRO: () => MODEL_GOOGLE_GEMINI_2_5_PRO,
133
139
  MODEL_GOOGLE_GEMINI_3_5_FLASH_LITE: () => MODEL_GOOGLE_GEMINI_3_5_FLASH_LITE,
134
140
  MODEL_GOOGLE_GEMINI_3_6_FLASH: () => MODEL_GOOGLE_GEMINI_3_6_FLASH,
141
+ MODEL_GOOGLE_GEMINI_3_7_FLASH: () => MODEL_GOOGLE_GEMINI_3_7_FLASH,
135
142
  MODEL_GOOGLE_GEMINI_FLASH_LATEST: () => MODEL_GOOGLE_GEMINI_FLASH_LATEST,
136
143
  MODEL_GOOGLE_GEMINI_PRO_LATEST: () => MODEL_GOOGLE_GEMINI_PRO_LATEST,
137
144
  MODEL_GPT_4O: () => MODEL_GPT_4O,
@@ -201,10 +208,12 @@ var AITuberOnAirChat = (() => {
201
208
  MODEL_OPENROUTER_AUTO_BETA: () => MODEL_OPENROUTER_AUTO_BETA,
202
209
  MODEL_OPENROUTER_DEEPSEEK_V4_FLASH: () => MODEL_OPENROUTER_DEEPSEEK_V4_FLASH,
203
210
  MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_0731: () => MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_0731,
211
+ MODEL_OPENROUTER_DEEPSEEK_V4_PRO_0813: () => MODEL_OPENROUTER_DEEPSEEK_V4_PRO_0813,
204
212
  MODEL_OPENROUTER_FUSION: () => MODEL_OPENROUTER_FUSION,
205
213
  MODEL_PLAMO_2_2_PRIME: () => MODEL_PLAMO_2_2_PRIME,
206
214
  MODEL_PLAMO_3_0_PRIME: () => MODEL_PLAMO_3_0_PRIME,
207
215
  MODEL_XAI_GROK_4_5: () => MODEL_XAI_GROK_4_5,
216
+ MODEL_XAI_GROK_4_6: () => MODEL_XAI_GROK_4_6,
208
217
  MODEL_XAI_GROK_LATEST: () => MODEL_XAI_GROK_LATEST,
209
218
  MODEL_ZAI_GLM_4_5_AIR: () => MODEL_ZAI_GLM_4_5_AIR,
210
219
  MODEL_ZAI_GLM_4_5_AIR_FREE: () => MODEL_ZAI_GLM_4_5_AIR_FREE,
@@ -213,6 +222,7 @@ var AITuberOnAirChat = (() => {
213
222
  MistralChatService: () => MistralChatService,
214
223
  MistralChatServiceProvider: () => MistralChatServiceProvider,
215
224
  OPENROUTER_CREDITS_THRESHOLD: () => OPENROUTER_CREDITS_THRESHOLD,
225
+ OPENROUTER_DEPRECATED_MODELS: () => OPENROUTER_DEPRECATED_MODELS,
216
226
  OPENROUTER_FREE_DAILY_LIMIT_HIGH_CREDITS: () => OPENROUTER_FREE_DAILY_LIMIT_HIGH_CREDITS,
217
227
  OPENROUTER_FREE_DAILY_LIMIT_LOW_CREDITS: () => OPENROUTER_FREE_DAILY_LIMIT_LOW_CREDITS,
218
228
  OPENROUTER_FREE_MODELS: () => OPENROUTER_FREE_MODELS,
@@ -224,10 +234,12 @@ var AITuberOnAirChat = (() => {
224
234
  OpenRouterChatService: () => OpenRouterChatService,
225
235
  OpenRouterChatServiceProvider: () => OpenRouterChatServiceProvider,
226
236
  PLAMO_API_BASE_URL: () => PLAMO_API_BASE_URL,
237
+ PLAMO_DEPRECATED_MODELS: () => PLAMO_DEPRECATED_MODELS,
227
238
  PLAMO_SUPPORTED_MODELS: () => PLAMO_SUPPORTED_MODELS,
228
239
  PlamoChatService: () => PlamoChatService,
229
240
  PlamoChatServiceProvider: () => PlamoChatServiceProvider,
230
241
  SAKANA_API_BASE_URL: () => SAKANA_API_BASE_URL,
242
+ SAKANA_COMPATIBILITY_MODELS: () => SAKANA_COMPATIBILITY_MODELS,
231
243
  SAKANA_SUPPORTED_MODELS: () => SAKANA_SUPPORTED_MODELS,
232
244
  SakanaChatService: () => SakanaChatService,
233
245
  SakanaChatServiceProvider: () => SakanaChatServiceProvider,
@@ -235,6 +247,7 @@ var AITuberOnAirChat = (() => {
235
247
  VISION_SUPPORTED_MODELS: () => VISION_SUPPORTED_MODELS,
236
248
  XAIChatService: () => XAIChatService,
237
249
  XAIChatServiceProvider: () => XAIChatServiceProvider,
250
+ XAI_DEPRECATED_MODELS: () => XAI_DEPRECATED_MODELS,
238
251
  XAI_VISION_SUPPORTED_MODELS: () => XAI_VISION_SUPPORTED_MODELS,
239
252
  ZAIChatService: () => ZAIChatService,
240
253
  ZAIChatServiceProvider: () => ZAIChatServiceProvider,
@@ -256,11 +269,13 @@ var AITuberOnAirChat = (() => {
256
269
  getDefaultOpenRouterReasoningEffort: () => getDefaultOpenRouterReasoningEffort,
257
270
  getDefaultReasoningEffortForGPT5Model: () => getDefaultReasoningEffortForGPT5Model,
258
271
  getDefaultXaiReasoningEffort: () => getDefaultXaiReasoningEffort,
272
+ getDefaultZaiReasoningEffort: () => getDefaultZaiReasoningEffort,
259
273
  getGeminiSupportedReasoningEfforts: () => getGeminiSupportedReasoningEfforts,
260
274
  getKimiSupportedReasoningEfforts: () => getKimiSupportedReasoningEfforts,
261
275
  getMaxTokensForResponseLength: () => getMaxTokensForResponseLength,
262
276
  getOpenRouterSupportedReasoningEfforts: () => getOpenRouterSupportedReasoningEfforts,
263
277
  getXaiSupportedReasoningEfforts: () => getXaiSupportedReasoningEfforts,
278
+ getZaiSupportedReasoningEfforts: () => getZaiSupportedReasoningEfforts,
264
279
  installGASFetch: () => installGASFetch,
265
280
  isClaudeReasoningEffortModel: () => isClaudeReasoningEffortModel,
266
281
  isDeepSeekReasoningEffortModel: () => isDeepSeekReasoningEffortModel,
@@ -278,6 +293,7 @@ var AITuberOnAirChat = (() => {
278
293
  isXaiReasoningEffortModel: () => isXaiReasoningEffortModel,
279
294
  isXaiReasoningEffortNoneModel: () => isXaiReasoningEffortNoneModel,
280
295
  isXaiVisionModel: () => isXaiVisionModel,
296
+ isZaiReasoningEffortModel: () => isZaiReasoningEffortModel,
281
297
  isZaiToolStreamModel: () => isZaiToolStreamModel,
282
298
  isZaiVisionModel: () => isZaiVisionModel,
283
299
  normalizeClaudeReasoningEffort: () => normalizeClaudeReasoningEffort,
@@ -285,6 +301,7 @@ var AITuberOnAirChat = (() => {
285
301
  normalizeGeminiReasoningEffort: () => normalizeGeminiReasoningEffort,
286
302
  normalizeOpenRouterReasoningEffort: () => normalizeOpenRouterReasoningEffort,
287
303
  normalizeXaiReasoningEffort: () => normalizeXaiReasoningEffort,
304
+ normalizeZaiReasoningEffort: () => normalizeZaiReasoningEffort,
288
305
  parseOpenAICompatibleOneShot: () => parseOpenAICompatibleOneShot,
289
306
  parseOpenAICompatibleTextStream: () => parseOpenAICompatibleTextStream,
290
307
  parseOpenAICompatibleToolStream: () => parseOpenAICompatibleToolStream,
@@ -395,6 +412,7 @@ var AITuberOnAirChat = (() => {
395
412
  var ENDPOINT_GEMINI_API = "https://generativelanguage.googleapis.com";
396
413
  var MODEL_GEMMA_4_31B_IT = "gemma-4-31b-it";
397
414
  var MODEL_GEMMA_4_26B_A4B_IT = "gemma-4-26b-a4b-it";
415
+ var MODEL_GEMINI_3_7_FLASH = "gemini-3.7-flash";
398
416
  var MODEL_GEMINI_3_6_FLASH = "gemini-3.6-flash";
399
417
  var MODEL_GEMINI_3_5_FLASH = "gemini-3.5-flash";
400
418
  var MODEL_GEMINI_3_5_FLASH_LITE = "gemini-3.5-flash-lite";
@@ -408,6 +426,7 @@ var AITuberOnAirChat = (() => {
408
426
  var MODEL_GEMINI_2_5_FLASH_LITE = "gemini-2.5-flash-lite";
409
427
  var MODEL_GEMINI_2_5_FLASH_LITE_PREVIEW_06_17 = "gemini-2.5-flash-lite-preview-06-17";
410
428
  var GEMINI_RECOMMENDED_MODELS = [
429
+ MODEL_GEMINI_3_7_FLASH,
411
430
  MODEL_GEMINI_3_6_FLASH,
412
431
  MODEL_GEMINI_3_5_FLASH,
413
432
  MODEL_GEMINI_3_5_FLASH_LITE,
@@ -440,6 +459,11 @@ var AITuberOnAirChat = (() => {
440
459
  "medium",
441
460
  "high"
442
461
  ];
462
+ var GEMINI_3_7_FLASH_REASONING_EFFORTS = [
463
+ "low",
464
+ "medium",
465
+ "high"
466
+ ];
443
467
  var GEMINI_FLASH_REASONING_EFFORT_MODELS = [
444
468
  MODEL_GEMINI_3_6_FLASH,
445
469
  MODEL_GEMINI_3_5_FLASH,
@@ -453,6 +477,9 @@ var AITuberOnAirChat = (() => {
453
477
  MODEL_GEMINI_3_PRO_PREVIEW
454
478
  ];
455
479
  function getGeminiSupportedReasoningEfforts(model) {
480
+ if (model === MODEL_GEMINI_3_7_FLASH) {
481
+ return GEMINI_3_7_FLASH_REASONING_EFFORTS;
482
+ }
456
483
  if (GEMINI_FLASH_REASONING_EFFORT_MODELS.includes(model)) {
457
484
  return GEMINI_FLASH_REASONING_EFFORTS;
458
485
  }
@@ -493,8 +520,17 @@ var AITuberOnAirChat = (() => {
493
520
  var MODEL_CLAUDE_4_6_OPUS = "claude-opus-4-6";
494
521
  var MODEL_CLAUDE_4_7_OPUS = "claude-opus-4-7";
495
522
  var MODEL_CLAUDE_4_8_OPUS = "claude-opus-4-8";
523
+ var MODEL_CLAUDE_5_FABLE = "claude-fable-5";
496
524
  var MODEL_CLAUDE_5_SONNET = "claude-sonnet-5";
497
525
  var MODEL_CLAUDE_5_OPUS = "claude-opus-5";
526
+ var CLAUDE_DEPRECATED_MODELS = [
527
+ MODEL_CLAUDE_3_HAIKU,
528
+ MODEL_CLAUDE_3_5_HAIKU,
529
+ MODEL_CLAUDE_3_5_SONNET,
530
+ MODEL_CLAUDE_3_7_SONNET,
531
+ MODEL_CLAUDE_4_SONNET,
532
+ MODEL_CLAUDE_4_OPUS
533
+ ];
498
534
  var CLAUDE_STANDARD_REASONING_EFFORTS = [
499
535
  "low",
500
536
  "medium",
@@ -515,13 +551,11 @@ var AITuberOnAirChat = (() => {
515
551
  [MODEL_CLAUDE_4_6_OPUS]: CLAUDE_MAX_REASONING_EFFORTS,
516
552
  [MODEL_CLAUDE_4_7_OPUS]: CLAUDE_XHIGH_REASONING_EFFORTS,
517
553
  [MODEL_CLAUDE_4_8_OPUS]: CLAUDE_XHIGH_REASONING_EFFORTS,
554
+ [MODEL_CLAUDE_5_FABLE]: CLAUDE_XHIGH_REASONING_EFFORTS,
518
555
  [MODEL_CLAUDE_5_SONNET]: CLAUDE_XHIGH_REASONING_EFFORTS,
519
556
  [MODEL_CLAUDE_5_OPUS]: CLAUDE_XHIGH_REASONING_EFFORTS
520
557
  };
521
558
  var CLAUDE_VISION_SUPPORTED_MODELS = [
522
- MODEL_CLAUDE_3_HAIKU,
523
- MODEL_CLAUDE_4_SONNET,
524
- MODEL_CLAUDE_4_OPUS,
525
559
  MODEL_CLAUDE_4_5_SONNET,
526
560
  MODEL_CLAUDE_4_5_HAIKU,
527
561
  MODEL_CLAUDE_4_5_OPUS,
@@ -529,6 +563,7 @@ var AITuberOnAirChat = (() => {
529
563
  MODEL_CLAUDE_4_6_OPUS,
530
564
  MODEL_CLAUDE_4_7_OPUS,
531
565
  MODEL_CLAUDE_4_8_OPUS,
566
+ MODEL_CLAUDE_5_FABLE,
532
567
  MODEL_CLAUDE_5_SONNET,
533
568
  MODEL_CLAUDE_5_OPUS
534
569
  ];
@@ -581,6 +616,7 @@ var AITuberOnAirChat = (() => {
581
616
  var MODEL_OPENAI_GPT_4_1_NANO = "openai/gpt-4.1-nano";
582
617
  var MODEL_ANTHROPIC_CLAUDE_SONNET_LATEST = "~anthropic/claude-sonnet-latest";
583
618
  var MODEL_ANTHROPIC_CLAUDE_HAIKU_LATEST = "~anthropic/claude-haiku-latest";
619
+ var MODEL_ANTHROPIC_CLAUDE_FABLE_5 = "anthropic/claude-fable-5";
584
620
  var MODEL_ANTHROPIC_CLAUDE_OPUS_5 = "anthropic/claude-opus-5";
585
621
  var MODEL_ANTHROPIC_CLAUDE_OPUS_4 = "anthropic/claude-opus-4";
586
622
  var MODEL_ANTHROPIC_CLAUDE_SONNET_4 = "anthropic/claude-sonnet-4";
@@ -589,6 +625,7 @@ var AITuberOnAirChat = (() => {
589
625
  var MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU = "anthropic/claude-haiku-4.5";
590
626
  var MODEL_GOOGLE_GEMINI_PRO_LATEST = "~google/gemini-pro-latest";
591
627
  var MODEL_GOOGLE_GEMINI_FLASH_LATEST = "~google/gemini-flash-latest";
628
+ var MODEL_GOOGLE_GEMINI_3_7_FLASH = "google/gemini-3.7-flash";
592
629
  var MODEL_GOOGLE_GEMINI_3_6_FLASH = "google/gemini-3.6-flash";
593
630
  var MODEL_GOOGLE_GEMINI_3_5_FLASH_LITE = "google/gemini-3.5-flash-lite";
594
631
  var MODEL_GOOGLE_GEMINI_2_5_PRO = "google/gemini-2.5-pro";
@@ -601,9 +638,17 @@ var AITuberOnAirChat = (() => {
601
638
  var MODEL_KWAIPILOT_KAT_CODER_AIR_V2_5 = "kwaipilot/kat-coder-air-v2.5";
602
639
  var MODEL_KWAIPILOT_KAT_CODER_PRO_V2_5 = "kwaipilot/kat-coder-pro-v2.5";
603
640
  var MODEL_XAI_GROK_LATEST = "~x-ai/grok-latest";
641
+ var MODEL_XAI_GROK_4_6 = "x-ai/grok-4.6";
604
642
  var MODEL_XAI_GROK_4_5 = "x-ai/grok-4.5";
605
643
  var MODEL_OPENROUTER_DEEPSEEK_V4_FLASH = "deepseek/deepseek-v4-flash";
606
644
  var MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_0731 = "deepseek/deepseek-v4-flash-0731";
645
+ var MODEL_OPENROUTER_DEEPSEEK_V4_PRO_0813 = "deepseek/deepseek-v4-pro-0813";
646
+ var OPENROUTER_DEPRECATED_MODELS = [
647
+ MODEL_OPENAI_GPT_5_1_CHAT,
648
+ MODEL_ANTHROPIC_CLAUDE_3_7_SONNET,
649
+ MODEL_ANTHROPIC_CLAUDE_3_5_SONNET,
650
+ MODEL_ZAI_GLM_4_5_AIR_FREE
651
+ ];
607
652
  var DEFAULT_OPENROUTER_REASONING_EFFORTS = [
608
653
  "none",
609
654
  "minimal",
@@ -622,10 +667,12 @@ var AITuberOnAirChat = (() => {
622
667
  "high",
623
668
  "max"
624
669
  ];
625
- var OPENROUTER_FREE_MODELS = [
626
- MODEL_GPT_OSS_20B_FREE,
627
- MODEL_ZAI_GLM_4_5_AIR_FREE
670
+ var OPENROUTER_DEEPSEEK_V4_PRO_REASONING_EFFORTS = [
671
+ "none",
672
+ "high",
673
+ "xhigh"
628
674
  ];
675
+ var OPENROUTER_FREE_MODELS = [MODEL_GPT_OSS_20B_FREE];
629
676
  var OPENROUTER_VISION_SUPPORTED_MODELS = [
630
677
  MODEL_OPENROUTER_AUTO_BETA,
631
678
  MODEL_MOONSHOTAI_KIMI_K3,
@@ -637,7 +684,6 @@ var AITuberOnAirChat = (() => {
637
684
  MODEL_OPENAI_GPT_5_6_LUNA,
638
685
  MODEL_OPENAI_GPT_5_5_PRO,
639
686
  MODEL_OPENAI_GPT_5_5,
640
- MODEL_OPENAI_GPT_5_1_CHAT,
641
687
  MODEL_OPENAI_GPT_5_1_CODEX,
642
688
  MODEL_OPENAI_GPT_5_MINI,
643
689
  MODEL_OPENAI_GPT_5_NANO,
@@ -646,13 +692,14 @@ var AITuberOnAirChat = (() => {
646
692
  MODEL_OPENAI_GPT_4_1_NANO,
647
693
  MODEL_ANTHROPIC_CLAUDE_SONNET_LATEST,
648
694
  MODEL_ANTHROPIC_CLAUDE_HAIKU_LATEST,
695
+ MODEL_ANTHROPIC_CLAUDE_FABLE_5,
649
696
  MODEL_ANTHROPIC_CLAUDE_OPUS_5,
650
697
  MODEL_ANTHROPIC_CLAUDE_OPUS_4,
651
698
  MODEL_ANTHROPIC_CLAUDE_SONNET_4,
652
- MODEL_ANTHROPIC_CLAUDE_3_7_SONNET,
653
699
  MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU,
654
700
  MODEL_GOOGLE_GEMINI_PRO_LATEST,
655
701
  MODEL_GOOGLE_GEMINI_FLASH_LATEST,
702
+ MODEL_GOOGLE_GEMINI_3_7_FLASH,
656
703
  MODEL_GOOGLE_GEMINI_3_6_FLASH,
657
704
  MODEL_GOOGLE_GEMINI_3_5_FLASH_LITE,
658
705
  MODEL_GOOGLE_GEMINI_2_5_PRO,
@@ -661,6 +708,7 @@ var AITuberOnAirChat = (() => {
661
708
  MODEL_MOONSHOTAI_KIMI_K2_7_CODE,
662
709
  MODEL_MOONSHOTAI_KIMI_K2_5,
663
710
  MODEL_XAI_GROK_LATEST,
711
+ MODEL_XAI_GROK_4_6,
664
712
  MODEL_XAI_GROK_4_5
665
713
  ];
666
714
  var OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE = 20;
@@ -683,11 +731,14 @@ var AITuberOnAirChat = (() => {
683
731
  if (normalizedModel === MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_0731) {
684
732
  return OPENROUTER_DEEPSEEK_V4_FLASH_0731_REASONING_EFFORTS;
685
733
  }
734
+ if (normalizedModel === MODEL_OPENROUTER_DEEPSEEK_V4_PRO_0813) {
735
+ return OPENROUTER_DEEPSEEK_V4_PRO_REASONING_EFFORTS;
736
+ }
686
737
  return DEFAULT_OPENROUTER_REASONING_EFFORTS;
687
738
  }
688
739
  function getDefaultOpenRouterReasoningEffort(model) {
689
740
  const normalizedModel = model.trim();
690
- return normalizedModel === MODEL_ZAI_GLM_5_2 || normalizedModel === MODEL_OPENROUTER_DEEPSEEK_V4_FLASH || normalizedModel === MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_0731 ? "none" : void 0;
741
+ return normalizedModel === MODEL_ZAI_GLM_5_2 || normalizedModel === MODEL_OPENROUTER_DEEPSEEK_V4_FLASH || normalizedModel === MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_0731 || normalizedModel === MODEL_OPENROUTER_DEEPSEEK_V4_PRO_0813 ? "none" : void 0;
691
742
  }
692
743
  function normalizeOpenRouterReasoningEffort(model, effort) {
693
744
  const normalizedModel = model.trim();
@@ -710,6 +761,17 @@ var AITuberOnAirChat = (() => {
710
761
  return "high";
711
762
  }
712
763
  }
764
+ if (normalizedModel === MODEL_OPENROUTER_DEEPSEEK_V4_PRO_0813) {
765
+ if (requested === "minimal" || requested === "low") {
766
+ return "none";
767
+ }
768
+ if (requested === "medium") {
769
+ return "high";
770
+ }
771
+ if (requested === "max") {
772
+ return "xhigh";
773
+ }
774
+ }
713
775
  return requested;
714
776
  }
715
777
 
@@ -727,6 +789,37 @@ var AITuberOnAirChat = (() => {
727
789
  var MODEL_GLM_4_6V = "glm-4.6V";
728
790
  var MODEL_GLM_4_6V_FLASHX = "glm-4.6V-FlashX";
729
791
  var MODEL_GLM_4_6V_FLASH = "glm-4.6V-Flash";
792
+ var ZAI_GLM_5_2_REASONING_EFFORTS = [
793
+ "none",
794
+ "minimal",
795
+ "low",
796
+ "medium",
797
+ "high",
798
+ "xhigh",
799
+ "max"
800
+ ];
801
+ function getZaiSupportedReasoningEfforts(model) {
802
+ return model === MODEL_GLM_5_2 ? ZAI_GLM_5_2_REASONING_EFFORTS : [];
803
+ }
804
+ function isZaiReasoningEffortModel(model) {
805
+ return getZaiSupportedReasoningEfforts(model).length > 0;
806
+ }
807
+ function getDefaultZaiReasoningEffort(model) {
808
+ return isZaiReasoningEffortModel(model) ? "none" : void 0;
809
+ }
810
+ function normalizeZaiReasoningEffort(model, effort) {
811
+ if (!isZaiReasoningEffortModel(model)) {
812
+ return void 0;
813
+ }
814
+ const requested = effort ?? getDefaultZaiReasoningEffort(model);
815
+ if (requested === "none" || requested === "minimal") {
816
+ return "none";
817
+ }
818
+ if (requested === "low" || requested === "medium" || requested === "high") {
819
+ return "high";
820
+ }
821
+ return "max";
822
+ }
730
823
  var ZAI_VISION_SUPPORTED_MODELS = [
731
824
  MODEL_GLM_5V_TURBO,
732
825
  MODEL_GLM_4_6V,
@@ -749,14 +842,16 @@ var AITuberOnAirChat = (() => {
749
842
  var MODEL_GROK_4_20_NON_REASONING = "grok-4.20-0309-non-reasoning";
750
843
  var MODEL_GROK_4_1_FAST_REASONING = "grok-4-1-fast-reasoning";
751
844
  var MODEL_GROK_4_1_FAST_NON_REASONING = "grok-4-1-fast-non-reasoning";
845
+ var XAI_DEPRECATED_MODELS = [
846
+ MODEL_GROK_4_1_FAST_REASONING,
847
+ MODEL_GROK_4_1_FAST_NON_REASONING
848
+ ];
752
849
  var XAI_VISION_SUPPORTED_MODELS = [
753
850
  MODEL_GROK_4_6,
754
851
  MODEL_GROK_4_5,
755
852
  MODEL_GROK_4_3,
756
853
  MODEL_GROK_4_20_REASONING,
757
- MODEL_GROK_4_20_NON_REASONING,
758
- MODEL_GROK_4_1_FAST_REASONING,
759
- MODEL_GROK_4_1_FAST_NON_REASONING
854
+ MODEL_GROK_4_20_NON_REASONING
760
855
  ];
761
856
  function isXaiVisionModel(model) {
762
857
  return XAI_VISION_SUPPORTED_MODELS.includes(model);
@@ -912,9 +1007,9 @@ var AITuberOnAirChat = (() => {
912
1007
  MODEL_MISTRAL_MEDIUM_3_5,
913
1008
  MODEL_MISTRAL_LARGE_LATEST,
914
1009
  MODEL_MISTRAL_LARGE_2512,
915
- MODEL_MISTRAL_SMALL_2603,
916
- MODEL_MISTRAL_MEDIUM_2508
1010
+ MODEL_MISTRAL_SMALL_2603
917
1011
  ];
1012
+ var MISTRAL_DEPRECATED_MODELS = [MODEL_MISTRAL_MEDIUM_2508];
918
1013
  var MISTRAL_REASONING_EFFORT_SUPPORTED_MODELS = [
919
1014
  MODEL_MISTRAL_SMALL_LATEST,
920
1015
  MODEL_MISTRAL_MEDIUM_3_5
@@ -926,7 +1021,6 @@ var AITuberOnAirChat = (() => {
926
1021
  MODEL_MINISTRAL_14B_2512,
927
1022
  MODEL_MISTRAL_SMALL_2603,
928
1023
  MODEL_MISTRAL_MEDIUM_3_5,
929
- MODEL_MISTRAL_MEDIUM_2508,
930
1024
  MODEL_MISTRAL_LARGE_LATEST,
931
1025
  MODEL_MISTRAL_LARGE_2512
932
1026
  ];
@@ -945,9 +1039,10 @@ var AITuberOnAirChat = (() => {
945
1039
  var ENDPOINT_SAKANA_CHAT_COMPLETIONS_API = `${SAKANA_API_BASE_URL}/chat/completions`;
946
1040
  var MODEL_FUGU = "fugu";
947
1041
  var MODEL_FUGU_ULTRA = "fugu-ultra";
1042
+ var MODEL_FUGU_ULTRA_V1_1 = "fugu-ultra-v1.1";
948
1043
  var MODEL_FUGU_ULTRA_20260615 = "fugu-ultra-20260615";
949
- var SAKANA_SUPPORTED_MODELS = [
950
- MODEL_FUGU,
1044
+ var SAKANA_SUPPORTED_MODELS = [MODEL_FUGU, MODEL_FUGU_ULTRA_V1_1];
1045
+ var SAKANA_COMPATIBILITY_MODELS = [
951
1046
  MODEL_FUGU_ULTRA,
952
1047
  MODEL_FUGU_ULTRA_20260615
953
1048
  ];
@@ -957,10 +1052,8 @@ var AITuberOnAirChat = (() => {
957
1052
  var ENDPOINT_PLAMO_CHAT_COMPLETIONS_API = `${PLAMO_API_BASE_URL}/chat/completions`;
958
1053
  var MODEL_PLAMO_3_0_PRIME = "plamo-3.0-prime";
959
1054
  var MODEL_PLAMO_2_2_PRIME = "plamo-2.2-prime";
960
- var PLAMO_SUPPORTED_MODELS = [
961
- MODEL_PLAMO_3_0_PRIME,
962
- MODEL_PLAMO_2_2_PRIME
963
- ];
1055
+ var PLAMO_SUPPORTED_MODELS = [MODEL_PLAMO_3_0_PRIME];
1056
+ var PLAMO_DEPRECATED_MODELS = [MODEL_PLAMO_2_2_PRIME];
964
1057
 
965
1058
  // src/constants/chat.ts
966
1059
  var CHAT_RESPONSE_LENGTH = {
@@ -1923,7 +2016,9 @@ If it's in another language, summarize in that language.
1923
2016
  hasTools: this.tools.length > 0 || this.mcpServers.length > 0,
1924
2017
  runWithoutTools: async () => {
1925
2018
  const res = await this.callClaude(messages, this.model, true);
1926
- return this.parsePureStream(res, onPartialResponse);
2019
+ return this.convertToStandardCompletion(
2020
+ await this.parseStream(res, onPartialResponse)
2021
+ );
1927
2022
  },
1928
2023
  runWithTools: () => this.chatOnce(messages, true, onPartialResponse),
1929
2024
  onCompleteResponse,
@@ -1941,7 +2036,9 @@ If it's in another language, summarize in that language.
1941
2036
  hasTools: this.tools.length > 0 || this.mcpServers.length > 0,
1942
2037
  runWithoutTools: async () => {
1943
2038
  const res = await this.callClaude(messages, this.visionModel, true);
1944
- return this.parsePureStream(res, onPartialResponse);
2039
+ return this.convertToStandardCompletion(
2040
+ await this.parseStream(res, onPartialResponse)
2041
+ );
1945
2042
  },
1946
2043
  runWithTools: () => this.visionChatOnce(messages),
1947
2044
  onCompleteResponse,
@@ -2013,6 +2110,8 @@ If it's in another language, summarize in that language.
2013
2110
  const textBlocks = [];
2014
2111
  const providerBlocks = /* @__PURE__ */ new Map();
2015
2112
  const toolCalls = /* @__PURE__ */ new Map();
2113
+ let finishReason;
2114
+ let stopDetails;
2016
2115
  let buf = "";
2017
2116
  while (true) {
2018
2117
  const { done, value } = await reader.read();
@@ -2026,6 +2125,14 @@ If it's in another language, summarize in that language.
2026
2125
  const payload = line.slice(5).trim();
2027
2126
  if (payload === "[DONE]") break;
2028
2127
  const ev = JSON.parse(payload);
2128
+ if (ev.type === "message_delta") {
2129
+ if (typeof ev.delta?.stop_reason === "string") {
2130
+ finishReason = ev.delta.stop_reason;
2131
+ }
2132
+ if (ev.delta?.stop_details !== void 0 || ev.stop_details !== void 0) {
2133
+ stopDetails = ev.delta?.stop_details ?? ev.stop_details;
2134
+ }
2135
+ }
2029
2136
  if (ev.type === "content_block_start" && ev.content_block && typeof ev.index === "number") {
2030
2137
  providerBlocks.set(ev.index, { ...ev.content_block });
2031
2138
  }
@@ -2108,18 +2215,17 @@ If it's in another language, summarize in that language.
2108
2215
  }
2109
2216
  }
2110
2217
  }
2218
+ const hasToolUse = textBlocks.some(
2219
+ (b) => b.type === "tool_use" || b.type === "mcp_tool_use"
2220
+ );
2111
2221
  return {
2112
2222
  blocks: textBlocks,
2113
2223
  providerContent: [...providerBlocks.entries()].sort(([a], [b]) => a - b).map(([, block]) => block),
2114
- stop_reason: textBlocks.some(
2115
- (b) => b.type === "tool_use" || b.type === "mcp_tool_use"
2116
- ) ? "tool_use" : "end"
2224
+ stop_reason: hasToolUse ? "tool_use" : "end",
2225
+ finish_reason: finishReason,
2226
+ stop_details: stopDetails
2117
2227
  };
2118
2228
  }
2119
- async parsePureStream(res, onPartial) {
2120
- const { blocks } = await this.parseStream(res, onPartial);
2121
- return blocks.filter((b) => b.type === "text").map((b) => b.text).join("");
2122
- }
2123
2229
  parseOneShot(data) {
2124
2230
  const blocks = [];
2125
2231
  (data.content ?? []).forEach((c) => {
@@ -2155,12 +2261,15 @@ If it's in another language, summarize in that language.
2155
2261
  });
2156
2262
  }
2157
2263
  });
2264
+ const hasToolUse = blocks.some(
2265
+ (b) => b.type === "tool_use" || b.type === "mcp_tool_use"
2266
+ );
2158
2267
  return {
2159
2268
  blocks,
2160
2269
  providerContent: (data.content ?? []).map((block) => ({ ...block })),
2161
- stop_reason: blocks.some(
2162
- (b) => b.type === "tool_use" || b.type === "mcp_tool_use"
2163
- ) ? "tool_use" : "end"
2270
+ stop_reason: hasToolUse ? "tool_use" : "end",
2271
+ finish_reason: data.stop_reason,
2272
+ stop_details: data.stop_details
2164
2273
  };
2165
2274
  }
2166
2275
  /**
@@ -2210,6 +2319,8 @@ If it's in another language, summarize in that language.
2210
2319
  return {
2211
2320
  blocks: standardBlocks,
2212
2321
  stop_reason: completion.stop_reason,
2322
+ finish_reason: completion.finish_reason,
2323
+ stop_details: completion.stop_details,
2213
2324
  assistant_message: {
2214
2325
  role: "assistant",
2215
2326
  content: standardBlocks.filter((block) => block.type === "text").map((block) => block.text).join(""),
@@ -2266,8 +2377,6 @@ If it's in another language, summarize in that language.
2266
2377
  */
2267
2378
  getSupportedModels() {
2268
2379
  return [
2269
- MODEL_CLAUDE_4_SONNET,
2270
- MODEL_CLAUDE_4_OPUS,
2271
2380
  MODEL_CLAUDE_4_5_SONNET,
2272
2381
  MODEL_CLAUDE_4_5_HAIKU,
2273
2382
  MODEL_CLAUDE_4_5_OPUS,
@@ -2275,9 +2384,9 @@ If it's in another language, summarize in that language.
2275
2384
  MODEL_CLAUDE_4_6_OPUS,
2276
2385
  MODEL_CLAUDE_4_7_OPUS,
2277
2386
  MODEL_CLAUDE_4_8_OPUS,
2387
+ MODEL_CLAUDE_5_FABLE,
2278
2388
  MODEL_CLAUDE_5_SONNET,
2279
- MODEL_CLAUDE_5_OPUS,
2280
- MODEL_CLAUDE_3_HAIKU
2389
+ MODEL_CLAUDE_5_OPUS
2281
2390
  ];
2282
2391
  }
2283
2392
  /**
@@ -5173,7 +5282,6 @@ If it's in another language, summarize in that language.
5173
5282
  MODEL_OPENROUTER_FUSION,
5174
5283
  // Free models
5175
5284
  MODEL_GPT_OSS_20B_FREE,
5176
- MODEL_ZAI_GLM_4_5_AIR_FREE,
5177
5285
  // OpenAI models
5178
5286
  MODEL_OPENAI_GPT_LATEST,
5179
5287
  MODEL_OPENAI_GPT_MINI_LATEST,
@@ -5182,7 +5290,6 @@ If it's in another language, summarize in that language.
5182
5290
  MODEL_OPENAI_GPT_5_6_LUNA,
5183
5291
  MODEL_OPENAI_GPT_5_5_PRO,
5184
5292
  MODEL_OPENAI_GPT_5_5,
5185
- MODEL_OPENAI_GPT_5_1_CHAT,
5186
5293
  MODEL_OPENAI_GPT_5_1_CODEX,
5187
5294
  MODEL_OPENAI_GPT_5_MINI,
5188
5295
  MODEL_OPENAI_GPT_5_NANO,
@@ -5192,15 +5299,15 @@ If it's in another language, summarize in that language.
5192
5299
  // Anthropic models
5193
5300
  MODEL_ANTHROPIC_CLAUDE_SONNET_LATEST,
5194
5301
  MODEL_ANTHROPIC_CLAUDE_HAIKU_LATEST,
5302
+ MODEL_ANTHROPIC_CLAUDE_FABLE_5,
5195
5303
  MODEL_ANTHROPIC_CLAUDE_OPUS_5,
5196
5304
  MODEL_ANTHROPIC_CLAUDE_OPUS_4,
5197
5305
  MODEL_ANTHROPIC_CLAUDE_SONNET_4,
5198
- MODEL_ANTHROPIC_CLAUDE_3_7_SONNET,
5199
- MODEL_ANTHROPIC_CLAUDE_3_5_SONNET,
5200
5306
  MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU,
5201
5307
  // Gemini models
5202
5308
  MODEL_GOOGLE_GEMINI_PRO_LATEST,
5203
5309
  MODEL_GOOGLE_GEMINI_FLASH_LATEST,
5310
+ MODEL_GOOGLE_GEMINI_3_7_FLASH,
5204
5311
  MODEL_GOOGLE_GEMINI_3_6_FLASH,
5205
5312
  MODEL_GOOGLE_GEMINI_3_5_FLASH_LITE,
5206
5313
  MODEL_GOOGLE_GEMINI_2_5_PRO,
@@ -5212,10 +5319,12 @@ If it's in another language, summarize in that language.
5212
5319
  MODEL_ZAI_GLM_4_5_AIR,
5213
5320
  // xAI models
5214
5321
  MODEL_XAI_GROK_LATEST,
5322
+ MODEL_XAI_GROK_4_6,
5215
5323
  MODEL_XAI_GROK_4_5,
5216
5324
  // DeepSeek models
5217
5325
  MODEL_OPENROUTER_DEEPSEEK_V4_FLASH_0731,
5218
5326
  MODEL_OPENROUTER_DEEPSEEK_V4_FLASH,
5327
+ MODEL_OPENROUTER_DEEPSEEK_V4_PRO_0813,
5219
5328
  // Other models
5220
5329
  MODEL_MOONSHOTAI_KIMI_LATEST,
5221
5330
  MODEL_MOONSHOTAI_KIMI_K3,
@@ -5439,7 +5548,7 @@ If it's in another language, summarize in that language.
5439
5548
  * @param model Name of the model to use
5440
5549
  * @param visionModel Name of the vision model
5441
5550
  */
5442
- constructor(apiKey, model = MODEL_GROK_4_1_FAST_NON_REASONING, visionModel = MODEL_GROK_4_1_FAST_NON_REASONING, tools, endpoint = ENDPOINT_XAI_CHAT_COMPLETIONS_API, responseLength, reasoningEffort) {
5551
+ constructor(apiKey, model = MODEL_GROK_4_3, visionModel = MODEL_GROK_4_3, tools, endpoint = ENDPOINT_XAI_CHAT_COMPLETIONS_API, responseLength, reasoningEffort = "none") {
5443
5552
  /** Provider name */
5444
5553
  this.provider = "xai";
5445
5554
  this.apiKey = apiKey;
@@ -5627,22 +5736,20 @@ If it's in another language, summarize in that language.
5627
5736
  MODEL_GROK_4_5,
5628
5737
  MODEL_GROK_4_3,
5629
5738
  MODEL_GROK_4_20_REASONING,
5630
- MODEL_GROK_4_20_NON_REASONING,
5631
- MODEL_GROK_4_1_FAST_REASONING,
5632
- MODEL_GROK_4_1_FAST_NON_REASONING
5739
+ MODEL_GROK_4_20_NON_REASONING
5633
5740
  ];
5634
5741
  }
5635
5742
  /**
5636
5743
  * Get the default model
5637
5744
  */
5638
5745
  getDefaultModel() {
5639
- return MODEL_GROK_4_1_FAST_NON_REASONING;
5746
+ return MODEL_GROK_4_3;
5640
5747
  }
5641
5748
  /**
5642
5749
  * Get the default vision model
5643
5750
  */
5644
5751
  getDefaultVisionModel() {
5645
- return MODEL_GROK_4_1_FAST_NON_REASONING;
5752
+ return MODEL_GROK_4_3;
5646
5753
  }
5647
5754
  /**
5648
5755
  * Check if this provider supports vision
@@ -5672,7 +5779,7 @@ If it's in another language, summarize in that language.
5672
5779
  * @param model Name of the model to use
5673
5780
  * @param visionModel Name of the vision model
5674
5781
  */
5675
- constructor(apiKey, model = MODEL_GLM_5_2, visionModel = MODEL_GLM_4_6V_FLASH, tools, endpoint = ENDPOINT_ZAI_CHAT_COMPLETIONS_API, responseLength, responseFormat, thinking) {
5782
+ constructor(apiKey, model = MODEL_GLM_5_2, visionModel = MODEL_GLM_4_6V_FLASH, tools, endpoint = ENDPOINT_ZAI_CHAT_COMPLETIONS_API, responseLength, responseFormat, thinking, reasoningEffort) {
5676
5783
  /** Provider name */
5677
5784
  this.provider = "zai";
5678
5785
  this.apiKey = apiKey;
@@ -5682,6 +5789,7 @@ If it's in another language, summarize in that language.
5682
5789
  this.responseLength = responseLength;
5683
5790
  this.responseFormat = responseFormat;
5684
5791
  this.thinking = thinking ?? { type: "disabled" };
5792
+ this.reasoningEffort = reasoningEffort;
5685
5793
  this.visionModel = visionModel;
5686
5794
  }
5687
5795
  /**
@@ -5786,6 +5894,9 @@ If it's in another language, summarize in that language.
5786
5894
  if (this.thinking) {
5787
5895
  body.thinking = this.thinking;
5788
5896
  }
5897
+ if (model === MODEL_GLM_5_2 && this.reasoningEffort) {
5898
+ body.reasoning_effort = this.reasoningEffort;
5899
+ }
5789
5900
  const tools = this.buildToolsDefinition();
5790
5901
  if (tools.length > 0) {
5791
5902
  body.tools = tools;
@@ -5836,7 +5947,26 @@ If it's in another language, summarize in that language.
5836
5947
  validate: "explicit"
5837
5948
  });
5838
5949
  const tools = options.tools;
5839
- const thinking = options.thinking ?? { type: "disabled" };
5950
+ const supportedReasoningEfforts = getZaiSupportedReasoningEfforts(model);
5951
+ if (options.reasoning_effort !== void 0 && !supportedReasoningEfforts.includes(options.reasoning_effort)) {
5952
+ const supportedMessage = supportedReasoningEfforts.length > 0 ? `Supported values: ${supportedReasoningEfforts.join(", ")}.` : "This model does not expose configurable effort.";
5953
+ throw new Error(
5954
+ `Model ${model} does not support Z.ai reasoning_effort: ${options.reasoning_effort}. ${supportedMessage}`
5955
+ );
5956
+ }
5957
+ const normalizedReasoningEffort = normalizeZaiReasoningEffort(
5958
+ model,
5959
+ options.reasoning_effort
5960
+ );
5961
+ const usesExplicitThinking = options.thinking !== void 0;
5962
+ const thinking = usesExplicitThinking && options.reasoning_effort === void 0 ? options.thinking : normalizedReasoningEffort === "high" || normalizedReasoningEffort === "max" ? {
5963
+ type: "enabled",
5964
+ clear_thinking: options.thinking?.clear_thinking
5965
+ } : {
5966
+ type: "disabled",
5967
+ clear_thinking: options.thinking?.clear_thinking
5968
+ };
5969
+ const reasoningEffort = thinking?.type === "enabled" && options.reasoning_effort !== void 0 ? normalizedReasoningEffort : void 0;
5840
5970
  return new ZAIChatService(
5841
5971
  options.apiKey,
5842
5972
  model,
@@ -5845,7 +5975,8 @@ If it's in another language, summarize in that language.
5845
5975
  options.endpoint || ENDPOINT_ZAI_CHAT_COMPLETIONS_API,
5846
5976
  options.responseLength,
5847
5977
  options.responseFormat,
5848
- thinking
5978
+ thinking,
5979
+ reasoningEffort
5849
5980
  );
5850
5981
  }
5851
5982
  /**
@@ -6052,7 +6183,8 @@ If it's in another language, summarize in that language.
6052
6183
  mistral: ["low", "medium", "high"],
6053
6184
  plamo: ["none", "medium"],
6054
6185
  xai: ["none", "low", "medium", "high", "xhigh"],
6055
- deepseek: ["none", "low", "high", "max"]
6186
+ deepseek: ["none", "low", "high", "max"],
6187
+ zai: ["none", "minimal", "low", "medium", "high", "xhigh", "max"]
6056
6188
  };
6057
6189
  var ChatServiceFactory = class {
6058
6190
  /**
@@ -6113,7 +6245,7 @@ If it's in another language, summarize in that language.
6113
6245
  mcp: MCP_SUPPORTED_PROVIDERS.has(providerName),
6114
6246
  jsonMode: JSON_MODE_SUPPORTED_PROVIDERS.has(providerName),
6115
6247
  responseLength: true,
6116
- reasoningEffort: providerName === "claude" && model ? [...getClaudeSupportedReasoningEfforts(model)] : providerName === "kimi" && model ? [...getKimiSupportedReasoningEfforts(model)] : providerName === "deepseek" && model ? [...getDeepSeekSupportedReasoningEfforts(model)] : providerName === "openrouter" && model ? [...getOpenRouterSupportedReasoningEfforts(model)] : providerName === "xai" && model ? [...getXaiSupportedReasoningEfforts(model)] : REASONING_EFFORT_BY_PROVIDER[providerName] ?? []
6248
+ 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] ?? []
6117
6249
  };
6118
6250
  }
6119
6251
  /**