@aituber-onair/chat 0.38.0 → 0.40.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 (73) hide show
  1. package/README.ja.md +19 -9
  2. package/README.md +18 -9
  3. package/dist/cjs/constants/kimi.d.ts +7 -0
  4. package/dist/cjs/constants/kimi.d.ts.map +1 -1
  5. package/dist/cjs/constants/kimi.js +21 -2
  6. package/dist/cjs/constants/kimi.js.map +1 -1
  7. package/dist/cjs/constants/openai.d.ts +3 -2
  8. package/dist/cjs/constants/openai.d.ts.map +1 -1
  9. package/dist/cjs/constants/openai.js +5 -1
  10. package/dist/cjs/constants/openai.js.map +1 -1
  11. package/dist/cjs/constants/openrouter.d.ts +3 -0
  12. package/dist/cjs/constants/openrouter.d.ts.map +1 -1
  13. package/dist/cjs/constants/openrouter.js +5 -1
  14. package/dist/cjs/constants/openrouter.js.map +1 -1
  15. package/dist/cjs/constants/zai.d.ts +1 -0
  16. package/dist/cjs/constants/zai.d.ts.map +1 -1
  17. package/dist/cjs/constants/zai.js +2 -1
  18. package/dist/cjs/constants/zai.js.map +1 -1
  19. package/dist/cjs/services/providers/kimi/KimiChatService.d.ts +1 -0
  20. package/dist/cjs/services/providers/kimi/KimiChatService.d.ts.map +1 -1
  21. package/dist/cjs/services/providers/kimi/KimiChatService.js +13 -1
  22. package/dist/cjs/services/providers/kimi/KimiChatService.js.map +1 -1
  23. package/dist/cjs/services/providers/kimi/KimiChatServiceProvider.d.ts +2 -0
  24. package/dist/cjs/services/providers/kimi/KimiChatServiceProvider.d.ts.map +1 -1
  25. package/dist/cjs/services/providers/kimi/KimiChatServiceProvider.js +22 -5
  26. package/dist/cjs/services/providers/kimi/KimiChatServiceProvider.js.map +1 -1
  27. package/dist/cjs/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -1
  28. package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js +12 -4
  29. package/dist/cjs/services/providers/openrouter/OpenRouterChatService.js.map +1 -1
  30. package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -1
  31. package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js +3 -0
  32. package/dist/cjs/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
  33. package/dist/cjs/services/providers/zai/ZAIChatService.js +1 -1
  34. package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.d.ts.map +1 -1
  35. package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.js +2 -1
  36. package/dist/cjs/services/providers/zai/ZAIChatServiceProvider.js.map +1 -1
  37. package/dist/esm/constants/kimi.d.ts +7 -0
  38. package/dist/esm/constants/kimi.d.ts.map +1 -1
  39. package/dist/esm/constants/kimi.js +19 -1
  40. package/dist/esm/constants/kimi.js.map +1 -1
  41. package/dist/esm/constants/openai.d.ts +3 -2
  42. package/dist/esm/constants/openai.d.ts.map +1 -1
  43. package/dist/esm/constants/openai.js +5 -1
  44. package/dist/esm/constants/openai.js.map +1 -1
  45. package/dist/esm/constants/openrouter.d.ts +3 -0
  46. package/dist/esm/constants/openrouter.d.ts.map +1 -1
  47. package/dist/esm/constants/openrouter.js +4 -0
  48. package/dist/esm/constants/openrouter.js.map +1 -1
  49. package/dist/esm/constants/zai.d.ts +1 -0
  50. package/dist/esm/constants/zai.d.ts.map +1 -1
  51. package/dist/esm/constants/zai.js +1 -0
  52. package/dist/esm/constants/zai.js.map +1 -1
  53. package/dist/esm/services/providers/kimi/KimiChatService.d.ts +1 -0
  54. package/dist/esm/services/providers/kimi/KimiChatService.d.ts.map +1 -1
  55. package/dist/esm/services/providers/kimi/KimiChatService.js +14 -2
  56. package/dist/esm/services/providers/kimi/KimiChatService.js.map +1 -1
  57. package/dist/esm/services/providers/kimi/KimiChatServiceProvider.d.ts +2 -0
  58. package/dist/esm/services/providers/kimi/KimiChatServiceProvider.d.ts.map +1 -1
  59. package/dist/esm/services/providers/kimi/KimiChatServiceProvider.js +23 -6
  60. package/dist/esm/services/providers/kimi/KimiChatServiceProvider.js.map +1 -1
  61. package/dist/esm/services/providers/openrouter/OpenRouterChatService.d.ts.map +1 -1
  62. package/dist/esm/services/providers/openrouter/OpenRouterChatService.js +13 -5
  63. package/dist/esm/services/providers/openrouter/OpenRouterChatService.js.map +1 -1
  64. package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.d.ts.map +1 -1
  65. package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js +4 -1
  66. package/dist/esm/services/providers/openrouter/OpenRouterChatServiceProvider.js.map +1 -1
  67. package/dist/esm/services/providers/zai/ZAIChatService.js +2 -2
  68. package/dist/esm/services/providers/zai/ZAIChatServiceProvider.d.ts.map +1 -1
  69. package/dist/esm/services/providers/zai/ZAIChatServiceProvider.js +3 -2
  70. package/dist/esm/services/providers/zai/ZAIChatServiceProvider.js.map +1 -1
  71. package/dist/umd/aituber-onair-chat.js +83 -10
  72. package/dist/umd/aituber-onair-chat.min.js +7 -7
  73. package/package.json +1 -1
@@ -1,8 +1,9 @@
1
- import { ENDPOINT_OPENROUTER_API, MODEL_GPT_OSS_20B_FREE, isOpenRouterVisionModel, isOpenRouterFreeModel, OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE, } from '../../../constants/openrouter';
1
+ import { ENDPOINT_OPENROUTER_API, MODEL_GPT_OSS_20B_FREE, MODEL_ZAI_GLM_5_2, isOpenRouterVisionModel, isOpenRouterFreeModel, OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE, } from '../../../constants/openrouter';
2
2
  import { getMaxTokensForResponseLength, } from '../../../constants/chat';
3
3
  import { ChatServiceHttpClient } from '../../../utils/chatServiceHttpClient';
4
4
  import { buildOpenAICompatibleTools, parseOpenAICompatibleOneShot, parseOpenAICompatibleTextStream, parseOpenAICompatibleToolStream, processChatWithOptionalTools, } from '../../../utils';
5
- const isTokenLimitUnsupportedModel = (model) => model.trim() === MODEL_GPT_OSS_20B_FREE;
5
+ const isTokenLimitUnsupportedModel = (model) => [MODEL_GPT_OSS_20B_FREE, MODEL_ZAI_GLM_5_2].includes(model.trim());
6
+ const getDefaultReasoningEffort = (model) => model.trim() === MODEL_ZAI_GLM_5_2 ? 'none' : undefined;
6
7
  /**
7
8
  * OpenRouter implementation of ChatService
8
9
  * OpenRouter provides access to multiple AI models through a unified API
@@ -198,23 +199,30 @@ export class OpenRouterChatService {
198
199
  const tokenLimit = maxTokens !== undefined
199
200
  ? maxTokens
200
201
  : getMaxTokensForResponseLength(this.responseLength);
201
- // OpenRouter gpt-oss-20b has known issues with token limits causing empty responses.
202
+ // Some OpenRouter reasoning models can spend the whole budget on reasoning
203
+ // tokens before emitting visible content.
202
204
  if (tokenLimit && isTokenLimitUnsupportedModel(model)) {
203
- console.warn(`OpenRouter: Token limits are not supported for ${model} due to known issues. Using unlimited tokens instead.`);
205
+ console.warn(`OpenRouter: Token limits are disabled for ${model} because this model can return empty content when a token limit is set.`);
204
206
  }
205
207
  else if (tokenLimit) {
206
208
  body.max_tokens = tokenLimit;
207
209
  }
208
210
  // Add OpenRouter reasoning control
211
+ const defaultReasoningEffort = getDefaultReasoningEffort(model);
209
212
  if (this.reasoning_effort !== undefined ||
210
213
  this.includeReasoning !== undefined ||
211
- this.reasoningMaxTokens) {
214
+ this.reasoningMaxTokens ||
215
+ defaultReasoningEffort) {
212
216
  body.reasoning = {};
213
217
  if (this.reasoning_effort && this.reasoning_effort !== 'none') {
214
218
  // OpenRouter uses 'low' as the minimum effort level, map 'minimal' to 'low'
215
219
  const effort = this.reasoning_effort === 'minimal' ? 'low' : this.reasoning_effort;
216
220
  body.reasoning.effort = effort;
217
221
  }
222
+ else if (this.reasoning_effort === undefined &&
223
+ defaultReasoningEffort) {
224
+ body.reasoning.effort = defaultReasoningEffort;
225
+ }
218
226
  // Default to exclude reasoning to avoid empty responses unless explicitly requested
219
227
  if (this.reasoning_effort === 'none' || this.includeReasoning !== true) {
220
228
  body.reasoning.exclude = true;
@@ -1 +1 @@
1
- {"version":3,"file":"OpenRouterChatService.js","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenRouterChatService.js","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatService.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"OpenRouterChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAIhC;;;GAGG;AACH,qBAAa,6BACX,YAAW,mBAAmB,CAAC,4BAA4B,CAAC;IAE5D;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,4BAA4B,GAAG,WAAW;IAmCrE;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;OAIG;IACH,kBAAkB,IAAI,MAAM,EAAE;IA0C9B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,kBAAkB;IAQ3C;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9C,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAIhE;;;OAGG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGpC"}
1
+ {"version":3,"file":"OpenRouterChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"AAsCA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,4BAA4B,EAC5B,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAIhC;;;GAGG;AACH,qBAAa,6BACX,YAAW,mBAAmB,CAAC,4BAA4B,CAAC;IAE5D;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,4BAA4B,GAAG,WAAW;IAmCrE;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;;OAIG;IACH,kBAAkB,IAAI,MAAM,EAAE;IA6C9B;;;OAGG;IACH,eAAe,IAAI,MAAM;IAIzB;;;OAGG;IACH,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,kBAAkB;IAQ3C;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9C,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAIhE;;;OAGG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAGpC"}
@@ -1,4 +1,4 @@
1
- import { MODEL_GPT_OSS_20B_FREE, MODEL_MOONSHOTAI_KIMI_K2_5, MODEL_MOONSHOTAI_KIMI_LATEST, MODEL_OPENROUTER_AUTO, MODEL_OPENAI_GPT_LATEST, MODEL_OPENAI_GPT_MINI_LATEST, MODEL_OPENAI_GPT_5_5_PRO, MODEL_OPENAI_GPT_5_5, MODEL_OPENAI_GPT_5_1_CHAT, MODEL_OPENAI_GPT_5_1_CODEX, MODEL_OPENAI_GPT_5_MINI, MODEL_OPENAI_GPT_5_NANO, MODEL_OPENAI_GPT_4O, MODEL_OPENAI_GPT_4_1_MINI, MODEL_OPENAI_GPT_4_1_NANO, MODEL_ANTHROPIC_CLAUDE_SONNET_LATEST, MODEL_ANTHROPIC_CLAUDE_HAIKU_LATEST, MODEL_ANTHROPIC_CLAUDE_OPUS_4, MODEL_ANTHROPIC_CLAUDE_SONNET_4, MODEL_ANTHROPIC_CLAUDE_3_7_SONNET, MODEL_ANTHROPIC_CLAUDE_3_5_SONNET, MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU, MODEL_GOOGLE_GEMINI_PRO_LATEST, MODEL_GOOGLE_GEMINI_FLASH_LATEST, MODEL_GOOGLE_GEMINI_2_5_PRO, MODEL_GOOGLE_GEMINI_2_5_FLASH, MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025, MODEL_ZAI_GLM_4_7_FLASH, MODEL_ZAI_GLM_4_5_AIR, MODEL_ZAI_GLM_4_5_AIR_FREE, OPENROUTER_FREE_MODELS, isOpenRouterFreeModel, isOpenRouterVisionModel, } from '../../../constants/openrouter';
1
+ import { MODEL_GPT_OSS_20B_FREE, MODEL_MOONSHOTAI_KIMI_K2_5, MODEL_MOONSHOTAI_KIMI_LATEST, MODEL_OPENROUTER_AUTO, MODEL_OPENROUTER_FUSION, MODEL_OPENAI_GPT_LATEST, MODEL_MOONSHOTAI_KIMI_K2_7_CODE, MODEL_OPENAI_GPT_MINI_LATEST, MODEL_OPENAI_GPT_5_5_PRO, MODEL_OPENAI_GPT_5_5, MODEL_OPENAI_GPT_5_1_CHAT, MODEL_OPENAI_GPT_5_1_CODEX, MODEL_OPENAI_GPT_5_MINI, MODEL_OPENAI_GPT_5_NANO, MODEL_OPENAI_GPT_4O, MODEL_OPENAI_GPT_4_1_MINI, MODEL_OPENAI_GPT_4_1_NANO, MODEL_ANTHROPIC_CLAUDE_SONNET_LATEST, MODEL_ANTHROPIC_CLAUDE_HAIKU_LATEST, MODEL_ANTHROPIC_CLAUDE_OPUS_4, MODEL_ANTHROPIC_CLAUDE_SONNET_4, MODEL_ANTHROPIC_CLAUDE_3_7_SONNET, MODEL_ANTHROPIC_CLAUDE_3_5_SONNET, MODEL_ANTHROPIC_CLAUDE_4_5_HAIKU, MODEL_GOOGLE_GEMINI_PRO_LATEST, MODEL_GOOGLE_GEMINI_FLASH_LATEST, MODEL_GOOGLE_GEMINI_2_5_PRO, MODEL_GOOGLE_GEMINI_2_5_FLASH, MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025, MODEL_ZAI_GLM_5_2, MODEL_ZAI_GLM_4_7_FLASH, MODEL_ZAI_GLM_4_5_AIR, MODEL_ZAI_GLM_4_5_AIR_FREE, OPENROUTER_FREE_MODELS, isOpenRouterFreeModel, isOpenRouterVisionModel, } from '../../../constants/openrouter';
2
2
  import { OpenRouterChatService } from './OpenRouterChatService';
3
3
  import { resolveVisionModel } from '../../../utils';
4
4
  /**
@@ -45,6 +45,7 @@ export class OpenRouterChatServiceProvider {
45
45
  return [
46
46
  // OpenRouter routing
47
47
  MODEL_OPENROUTER_AUTO,
48
+ MODEL_OPENROUTER_FUSION,
48
49
  // Free models
49
50
  MODEL_GPT_OSS_20B_FREE,
50
51
  MODEL_ZAI_GLM_4_5_AIR_FREE,
@@ -75,10 +76,12 @@ export class OpenRouterChatServiceProvider {
75
76
  MODEL_GOOGLE_GEMINI_2_5_FLASH,
76
77
  MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025,
77
78
  // Z.ai models
79
+ MODEL_ZAI_GLM_5_2,
78
80
  MODEL_ZAI_GLM_4_7_FLASH,
79
81
  MODEL_ZAI_GLM_4_5_AIR,
80
82
  // Other models
81
83
  MODEL_MOONSHOTAI_KIMI_LATEST,
84
+ MODEL_MOONSHOTAI_KIMI_K2_7_CODE,
82
85
  MODEL_MOONSHOTAI_KIMI_K2_5,
83
86
  ];
84
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"OpenRouterChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OpenRouterChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/openrouter/OpenRouterChatServiceProvider.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ENDPOINT_ZAI_CHAT_COMPLETIONS_API, MODEL_GLM_4_7, MODEL_GLM_4_6V_FLASH, isZaiToolStreamModel, isZaiVisionModel, } from '../../../constants/zai';
1
+ import { ENDPOINT_ZAI_CHAT_COMPLETIONS_API, MODEL_GLM_5_2, MODEL_GLM_4_6V_FLASH, isZaiToolStreamModel, isZaiVisionModel, } from '../../../constants/zai';
2
2
  import { getMaxTokensForResponseLength, } from '../../../constants/chat';
3
3
  import { ChatServiceHttpClient } from '../../../utils/chatServiceHttpClient';
4
4
  import { buildOpenAICompatibleTools, parseOpenAICompatibleOneShot, parseOpenAICompatibleTextStream, parseOpenAICompatibleToolStream, processChatWithOptionalTools, } from '../../../utils';
@@ -12,7 +12,7 @@ export class ZAIChatService {
12
12
  * @param model Name of the model to use
13
13
  * @param visionModel Name of the vision model
14
14
  */
15
- constructor(apiKey, model = MODEL_GLM_4_7, visionModel = MODEL_GLM_4_6V_FLASH, tools, endpoint = ENDPOINT_ZAI_CHAT_COMPLETIONS_API, responseLength, responseFormat, thinking) {
15
+ constructor(apiKey, model = MODEL_GLM_5_2, visionModel = MODEL_GLM_4_6V_FLASH, tools, endpoint = ENDPOINT_ZAI_CHAT_COMPLETIONS_API, responseLength, responseFormat, thinking) {
16
16
  /** Provider name */
17
17
  this.provider = 'zai';
18
18
  this.apiKey = apiKey;
@@ -1 +1 @@
1
- {"version":3,"file":"ZAIChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/zai/ZAIChatServiceProvider.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAIhC;;GAEG;AACH,qBAAa,sBACX,YAAW,mBAAmB,CAAC,qBAAqB,CAAC;IAErD;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,WAAW;IA2B9D;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAc9B;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,kBAAkB;IAI3C;;OAEG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9C,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;CAGjE"}
1
+ {"version":3,"file":"ZAIChatServiceProvider.d.ts","sourceRoot":"","sources":["../../../../../src/services/providers/zai/ZAIChatServiceProvider.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAIhC;;GAEG;AACH,qBAAa,sBACX,YAAW,mBAAmB,CAAC,qBAAqB,CAAC;IAErD;;OAEG;IACH,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,WAAW;IA2B9D;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAe9B;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;OAEG;IACH,cAAc,IAAI,OAAO;IAIzB,qBAAqB,IAAI,kBAAkB;IAI3C;;OAEG;IACH,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI9C,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;CAGjE"}
@@ -1,4 +1,4 @@
1
- import { ENDPOINT_ZAI_CHAT_COMPLETIONS_API, MODEL_GLM_5, MODEL_GLM_5_TURBO, MODEL_GLM_4_7, MODEL_GLM_4_7_FLASHX, MODEL_GLM_4_7_FLASH, MODEL_GLM_4_6, MODEL_GLM_4_6V, MODEL_GLM_4_6V_FLASHX, MODEL_GLM_4_6V_FLASH, isZaiVisionModel, } from '../../../constants/zai';
1
+ import { ENDPOINT_ZAI_CHAT_COMPLETIONS_API, MODEL_GLM_5_2, MODEL_GLM_5, MODEL_GLM_5_TURBO, MODEL_GLM_4_7, MODEL_GLM_4_7_FLASHX, MODEL_GLM_4_7_FLASH, MODEL_GLM_4_6, MODEL_GLM_4_6V, MODEL_GLM_4_6V_FLASHX, MODEL_GLM_4_6V_FLASH, isZaiVisionModel, } from '../../../constants/zai';
2
2
  import { ZAIChatService } from './ZAIChatService';
3
3
  import { resolveVisionModel } from '../../../utils';
4
4
  /**
@@ -33,6 +33,7 @@ export class ZAIChatServiceProvider {
33
33
  */
34
34
  getSupportedModels() {
35
35
  return [
36
+ MODEL_GLM_5_2,
36
37
  MODEL_GLM_5,
37
38
  MODEL_GLM_5_TURBO,
38
39
  MODEL_GLM_4_7,
@@ -48,7 +49,7 @@ export class ZAIChatServiceProvider {
48
49
  * Get the default model
49
50
  */
50
51
  getDefaultModel() {
51
- return MODEL_GLM_4_7;
52
+ return MODEL_GLM_5_2;
52
53
  }
53
54
  /**
54
55
  * Get the default vision model
@@ -1 +1 @@
1
- {"version":3,"file":"ZAIChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/zai/ZAIChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;GAEG;AACH,MAAM,OAAO,sBAAsB;IAGjC;;OAEG;IACH,iBAAiB,CAAC,OAA8B;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACtD,MAAM,WAAW,GAAG,kBAAkB,CAAC;YACrC,KAAK;YACL,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,EAAE;YAChD,sBAAsB,EAAE,CAAC,WAAW,EAAE,EAAE,CACtC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC;YAC1C,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAiC,OAAO,CAAC,KAAK,CAAC;QAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,IAAI,EAAE,UAAmB,EAAE,CAAC;QAEnE,OAAO,IAAI,cAAc,CACvB,OAAO,CAAC,MAAM,EACd,KAAK,EACL,WAAW,EACX,KAAK,EACL,OAAO,CAAC,QAAQ,IAAI,iCAAiC,EACrD,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,cAAc,EACtB,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO;YACL,WAAW;YACX,iBAAiB;YACjB,aAAa;YACb,oBAAoB;YACpB,mBAAmB;YACnB,aAAa;YACb,cAAc;YACd,qBAAqB;YACrB,oBAAoB;SACrB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,qBAAqB,EAAE,KAAK,aAAa,CAAC;IACxD,CAAC;IAED,qBAAqB;QACnB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,KAAa;QAClC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,6BAA6B,CAAC,KAAa;QACzC,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;IAC1E,CAAC;CACF"}
1
+ {"version":3,"file":"ZAIChatServiceProvider.js","sourceRoot":"","sources":["../../../../../src/services/providers/zai/ZAIChatServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD;;GAEG;AACH,MAAM,OAAO,sBAAsB;IAGjC;;OAEG;IACH,iBAAiB,CAAC,OAA8B;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;QACtD,MAAM,WAAW,GAAG,kBAAkB,CAAC;YACrC,KAAK;YACL,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,YAAY,EAAE,IAAI,CAAC,eAAe,EAAE;YACpC,kBAAkB,EAAE,IAAI,CAAC,qBAAqB,EAAE;YAChD,sBAAsB,EAAE,CAAC,WAAW,EAAE,EAAE,CACtC,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC;YAC1C,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAiC,OAAO,CAAC,KAAK,CAAC;QAC1D,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,IAAI,EAAE,UAAmB,EAAE,CAAC;QAEnE,OAAO,IAAI,cAAc,CACvB,OAAO,CAAC,MAAM,EACd,KAAK,EACL,WAAW,EACX,KAAK,EACL,OAAO,CAAC,QAAQ,IAAI,iCAAiC,EACrD,OAAO,CAAC,cAAc,EACtB,OAAO,CAAC,cAAc,EACtB,QAAQ,CACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO;YACL,aAAa;YACb,WAAW;YACX,iBAAiB;YACjB,aAAa;YACb,oBAAoB;YACpB,mBAAmB;YACnB,aAAa;YACb,cAAc;YACd,qBAAqB;YACrB,oBAAoB;SACrB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,qBAAqB,EAAE,KAAK,aAAa,CAAC;IACxD,CAAC;IAED,qBAAqB;QACnB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,KAAa;QAClC,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,6BAA6B,CAAC,KAAa;QACzC,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;IAC1E,CAAC;CACF"}
@@ -59,6 +59,7 @@ var AITuberOnAirChat = (() => {
59
59
  GeminiNanoChatService: () => GeminiNanoChatService,
60
60
  GeminiNanoChatServiceProvider: () => GeminiNanoChatServiceProvider,
61
61
  HttpError: () => HttpError,
62
+ KIMI_THINKING_REQUIRED_MODELS: () => KIMI_THINKING_REQUIRED_MODELS,
62
63
  KIMI_VISION_SUPPORTED_MODELS: () => KIMI_VISION_SUPPORTED_MODELS,
63
64
  KimiChatService: () => KimiChatService,
64
65
  KimiChatServiceProvider: () => KimiChatServiceProvider,
@@ -112,6 +113,7 @@ var AITuberOnAirChat = (() => {
112
113
  MODEL_GLM_4_7_FLASH: () => MODEL_GLM_4_7_FLASH,
113
114
  MODEL_GLM_4_7_FLASHX: () => MODEL_GLM_4_7_FLASHX,
114
115
  MODEL_GLM_5: () => MODEL_GLM_5,
116
+ MODEL_GLM_5_2: () => MODEL_GLM_5_2,
115
117
  MODEL_GLM_5_TURBO: () => MODEL_GLM_5_TURBO,
116
118
  MODEL_GOOGLE_GEMINI_2_5_FLASH: () => MODEL_GOOGLE_GEMINI_2_5_FLASH,
117
119
  MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025: () => MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025,
@@ -140,6 +142,8 @@ var AITuberOnAirChat = (() => {
140
142
  MODEL_GROK_4_3: () => MODEL_GROK_4_3,
141
143
  MODEL_KIMI_K2_5: () => MODEL_KIMI_K2_5,
142
144
  MODEL_KIMI_K2_6: () => MODEL_KIMI_K2_6,
145
+ MODEL_KIMI_K2_7_CODE: () => MODEL_KIMI_K2_7_CODE,
146
+ MODEL_KIMI_K2_7_CODE_HIGHSPEED: () => MODEL_KIMI_K2_7_CODE_HIGHSPEED,
143
147
  MODEL_MISTRAL_LARGE_2512: () => MODEL_MISTRAL_LARGE_2512,
144
148
  MODEL_MISTRAL_LARGE_LATEST: () => MODEL_MISTRAL_LARGE_LATEST,
145
149
  MODEL_MISTRAL_MEDIUM_2508: () => MODEL_MISTRAL_MEDIUM_2508,
@@ -147,6 +151,7 @@ var AITuberOnAirChat = (() => {
147
151
  MODEL_MISTRAL_SMALL_2603: () => MODEL_MISTRAL_SMALL_2603,
148
152
  MODEL_MISTRAL_SMALL_LATEST: () => MODEL_MISTRAL_SMALL_LATEST,
149
153
  MODEL_MOONSHOTAI_KIMI_K2_5: () => MODEL_MOONSHOTAI_KIMI_K2_5,
154
+ MODEL_MOONSHOTAI_KIMI_K2_7_CODE: () => MODEL_MOONSHOTAI_KIMI_K2_7_CODE,
150
155
  MODEL_MOONSHOTAI_KIMI_LATEST: () => MODEL_MOONSHOTAI_KIMI_LATEST,
151
156
  MODEL_O1: () => MODEL_O1,
152
157
  MODEL_O1_MINI: () => MODEL_O1_MINI,
@@ -163,9 +168,11 @@ var AITuberOnAirChat = (() => {
163
168
  MODEL_OPENAI_GPT_LATEST: () => MODEL_OPENAI_GPT_LATEST,
164
169
  MODEL_OPENAI_GPT_MINI_LATEST: () => MODEL_OPENAI_GPT_MINI_LATEST,
165
170
  MODEL_OPENROUTER_AUTO: () => MODEL_OPENROUTER_AUTO,
171
+ MODEL_OPENROUTER_FUSION: () => MODEL_OPENROUTER_FUSION,
166
172
  MODEL_ZAI_GLM_4_5_AIR: () => MODEL_ZAI_GLM_4_5_AIR,
167
173
  MODEL_ZAI_GLM_4_5_AIR_FREE: () => MODEL_ZAI_GLM_4_5_AIR_FREE,
168
174
  MODEL_ZAI_GLM_4_7_FLASH: () => MODEL_ZAI_GLM_4_7_FLASH,
175
+ MODEL_ZAI_GLM_5_2: () => MODEL_ZAI_GLM_5_2,
169
176
  MistralChatService: () => MistralChatService,
170
177
  MistralChatServiceProvider: () => MistralChatServiceProvider,
171
178
  OPENROUTER_CREDITS_THRESHOLD: () => OPENROUTER_CREDITS_THRESHOLD,
@@ -196,6 +203,7 @@ var AITuberOnAirChat = (() => {
196
203
  getMaxTokensForResponseLength: () => getMaxTokensForResponseLength,
197
204
  installGASFetch: () => installGASFetch,
198
205
  isGPT5Model: () => isGPT5Model,
206
+ isKimiThinkingRequiredModel: () => isKimiThinkingRequiredModel,
199
207
  isKimiVisionModel: () => isKimiVisionModel,
200
208
  isMistralReasoningEffort: () => isMistralReasoningEffort,
201
209
  isMistralReasoningEffortModel: () => isMistralReasoningEffortModel,
@@ -291,6 +299,9 @@ var AITuberOnAirChat = (() => {
291
299
  if (allowsReasoningNone(model)) {
292
300
  return "none";
293
301
  }
302
+ if (allowsReasoningMinimal(model)) {
303
+ return "minimal";
304
+ }
294
305
  return "medium";
295
306
  }
296
307
 
@@ -360,7 +371,9 @@ var AITuberOnAirChat = (() => {
360
371
  // src/constants/openrouter.ts
361
372
  var ENDPOINT_OPENROUTER_API = "https://openrouter.ai/api/v1/chat/completions";
362
373
  var MODEL_OPENROUTER_AUTO = "openrouter/auto";
374
+ var MODEL_OPENROUTER_FUSION = "openrouter/fusion";
363
375
  var MODEL_GPT_OSS_20B_FREE = "openai/gpt-oss-20b:free";
376
+ var MODEL_MOONSHOTAI_KIMI_K2_7_CODE = "moonshotai/kimi-k2.7-code";
364
377
  var MODEL_MOONSHOTAI_KIMI_K2_5 = "moonshotai/kimi-k2.5";
365
378
  var MODEL_MOONSHOTAI_KIMI_LATEST = "~moonshotai/kimi-latest";
366
379
  var MODEL_OPENAI_GPT_LATEST = "~openai/gpt-latest";
@@ -386,6 +399,7 @@ var AITuberOnAirChat = (() => {
386
399
  var MODEL_GOOGLE_GEMINI_2_5_PRO = "google/gemini-2.5-pro";
387
400
  var MODEL_GOOGLE_GEMINI_2_5_FLASH = "google/gemini-2.5-flash";
388
401
  var MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025 = "google/gemini-2.5-flash-lite-preview-09-2025";
402
+ var MODEL_ZAI_GLM_5_2 = "z-ai/glm-5.2";
389
403
  var MODEL_ZAI_GLM_4_7_FLASH = "z-ai/glm-4.7-flash";
390
404
  var MODEL_ZAI_GLM_4_5_AIR = "z-ai/glm-4.5-air";
391
405
  var MODEL_ZAI_GLM_4_5_AIR_FREE = "z-ai/glm-4.5-air:free";
@@ -417,6 +431,7 @@ var AITuberOnAirChat = (() => {
417
431
  MODEL_GOOGLE_GEMINI_2_5_PRO,
418
432
  MODEL_GOOGLE_GEMINI_2_5_FLASH,
419
433
  MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025,
434
+ MODEL_MOONSHOTAI_KIMI_K2_7_CODE,
420
435
  MODEL_MOONSHOTAI_KIMI_K2_5
421
436
  ];
422
437
  var OPENROUTER_FREE_RATE_LIMIT_PER_MINUTE = 20;
@@ -434,6 +449,7 @@ var AITuberOnAirChat = (() => {
434
449
 
435
450
  // src/constants/zai.ts
436
451
  var ENDPOINT_ZAI_CHAT_COMPLETIONS_API = "https://api.z.ai/api/paas/v4/chat/completions";
452
+ var MODEL_GLM_5_2 = "glm-5.2";
437
453
  var MODEL_GLM_5 = "glm-5";
438
454
  var MODEL_GLM_5_TURBO = "glm-5-turbo";
439
455
  var MODEL_GLM_4_7 = "glm-4.7";
@@ -475,12 +491,26 @@ var AITuberOnAirChat = (() => {
475
491
 
476
492
  // src/constants/kimi.ts
477
493
  var ENDPOINT_KIMI_CHAT_COMPLETIONS_API = "https://api.moonshot.ai/v1/chat/completions";
494
+ var MODEL_KIMI_K2_7_CODE = "kimi-k2.7-code";
495
+ var MODEL_KIMI_K2_7_CODE_HIGHSPEED = "kimi-k2.7-code-highspeed";
478
496
  var MODEL_KIMI_K2_6 = "kimi-k2.6";
479
497
  var MODEL_KIMI_K2_5 = "kimi-k2.5";
480
- var KIMI_VISION_SUPPORTED_MODELS = [MODEL_KIMI_K2_6, MODEL_KIMI_K2_5];
498
+ var KIMI_VISION_SUPPORTED_MODELS = [
499
+ MODEL_KIMI_K2_7_CODE,
500
+ MODEL_KIMI_K2_7_CODE_HIGHSPEED,
501
+ MODEL_KIMI_K2_6,
502
+ MODEL_KIMI_K2_5
503
+ ];
504
+ var KIMI_THINKING_REQUIRED_MODELS = [
505
+ MODEL_KIMI_K2_7_CODE,
506
+ MODEL_KIMI_K2_7_CODE_HIGHSPEED
507
+ ];
481
508
  function isKimiVisionModel(model) {
482
509
  return KIMI_VISION_SUPPORTED_MODELS.includes(model);
483
510
  }
511
+ function isKimiThinkingRequiredModel(model) {
512
+ return KIMI_THINKING_REQUIRED_MODELS.includes(model);
513
+ }
484
514
 
485
515
  // src/constants/deepseek.ts
486
516
  var DEEPSEEK_API_BASE_URL = "https://api.deepseek.com";
@@ -3518,7 +3548,7 @@ If it's in another language, summarize in that language.
3518
3548
  if (this.responseFormat) {
3519
3549
  body.response_format = this.responseFormat;
3520
3550
  }
3521
- const effectiveThinking = this.tools.length > 0 ? { type: "disabled" } : this.thinking;
3551
+ const effectiveThinking = this.resolveEffectiveThinking(model);
3522
3552
  if (effectiveThinking) {
3523
3553
  if (this.isSelfHostedEndpoint()) {
3524
3554
  if (effectiveThinking.type === "disabled") {
@@ -3541,6 +3571,20 @@ If it's in another language, summarize in that language.
3541
3571
  normalizeEndpoint(value) {
3542
3572
  return value.replace(/\/+$/, "");
3543
3573
  }
3574
+ resolveEffectiveThinking(model) {
3575
+ if (isKimiThinkingRequiredModel(model)) {
3576
+ if (this.thinking?.type === "disabled") {
3577
+ throw new Error(
3578
+ `Model ${model} requires thinking mode and does not support thinking: disabled.`
3579
+ );
3580
+ }
3581
+ return this.thinking ?? { type: "enabled" };
3582
+ }
3583
+ if (this.tools.length > 0) {
3584
+ return { type: "disabled" };
3585
+ }
3586
+ return this.thinking;
3587
+ }
3544
3588
  buildToolsDefinition() {
3545
3589
  return buildOpenAICompatibleTools(this.tools, "chat-completions");
3546
3590
  }
@@ -3567,6 +3611,9 @@ If it's in another language, summarize in that language.
3567
3611
 
3568
3612
  // src/services/providers/kimi/KimiChatServiceProvider.ts
3569
3613
  var KimiChatServiceProvider = class {
3614
+ constructor() {
3615
+ this.defaultThinking = { type: "enabled" };
3616
+ }
3570
3617
  /**
3571
3618
  * Create a chat service instance
3572
3619
  */
@@ -3582,8 +3629,7 @@ If it's in another language, summarize in that language.
3582
3629
  validate: "explicit"
3583
3630
  });
3584
3631
  const tools = options.tools;
3585
- const defaultThinking = options.thinking ?? { type: "enabled" };
3586
- const thinking = tools && tools.length > 0 ? { type: "disabled" } : defaultThinking;
3632
+ const thinking = this.resolveThinking(model, tools, options.thinking);
3587
3633
  return new KimiChatService(
3588
3634
  options.apiKey,
3589
3635
  model,
@@ -3605,7 +3651,12 @@ If it's in another language, summarize in that language.
3605
3651
  * Get the list of supported models
3606
3652
  */
3607
3653
  getSupportedModels() {
3608
- return [MODEL_KIMI_K2_6, MODEL_KIMI_K2_5];
3654
+ return [
3655
+ MODEL_KIMI_K2_7_CODE,
3656
+ MODEL_KIMI_K2_7_CODE_HIGHSPEED,
3657
+ MODEL_KIMI_K2_6,
3658
+ MODEL_KIMI_K2_5
3659
+ ];
3609
3660
  }
3610
3661
  /**
3611
3662
  * Get the default model
@@ -3653,6 +3704,20 @@ If it's in another language, summarize in that language.
3653
3704
  normalizeEndpoint(value) {
3654
3705
  return value.replace(/\/+$/, "");
3655
3706
  }
3707
+ resolveThinking(model, tools, thinking) {
3708
+ if (isKimiThinkingRequiredModel(model)) {
3709
+ if (thinking?.type === "disabled") {
3710
+ throw new Error(
3711
+ `Model ${model} requires thinking mode and does not support thinking: disabled.`
3712
+ );
3713
+ }
3714
+ return thinking ?? this.defaultThinking;
3715
+ }
3716
+ if (tools && tools.length > 0) {
3717
+ return { type: "disabled" };
3718
+ }
3719
+ return thinking ?? this.defaultThinking;
3720
+ }
3656
3721
  };
3657
3722
 
3658
3723
  // src/services/providers/mistral/MistralChatService.ts
@@ -3984,7 +4049,8 @@ If it's in another language, summarize in that language.
3984
4049
  };
3985
4050
 
3986
4051
  // src/services/providers/openrouter/OpenRouterChatService.ts
3987
- var isTokenLimitUnsupportedModel = (model) => model.trim() === MODEL_GPT_OSS_20B_FREE;
4052
+ var isTokenLimitUnsupportedModel = (model) => [MODEL_GPT_OSS_20B_FREE, MODEL_ZAI_GLM_5_2].includes(model.trim());
4053
+ var getDefaultReasoningEffort = (model) => model.trim() === MODEL_ZAI_GLM_5_2 ? "none" : void 0;
3988
4054
  var OpenRouterChatService = class {
3989
4055
  /**
3990
4056
  * Constructor
@@ -4180,16 +4246,19 @@ If it's in another language, summarize in that language.
4180
4246
  const tokenLimit = maxTokens !== void 0 ? maxTokens : getMaxTokensForResponseLength(this.responseLength);
4181
4247
  if (tokenLimit && isTokenLimitUnsupportedModel(model)) {
4182
4248
  console.warn(
4183
- `OpenRouter: Token limits are not supported for ${model} due to known issues. Using unlimited tokens instead.`
4249
+ `OpenRouter: Token limits are disabled for ${model} because this model can return empty content when a token limit is set.`
4184
4250
  );
4185
4251
  } else if (tokenLimit) {
4186
4252
  body.max_tokens = tokenLimit;
4187
4253
  }
4188
- if (this.reasoning_effort !== void 0 || this.includeReasoning !== void 0 || this.reasoningMaxTokens) {
4254
+ const defaultReasoningEffort = getDefaultReasoningEffort(model);
4255
+ if (this.reasoning_effort !== void 0 || this.includeReasoning !== void 0 || this.reasoningMaxTokens || defaultReasoningEffort) {
4189
4256
  body.reasoning = {};
4190
4257
  if (this.reasoning_effort && this.reasoning_effort !== "none") {
4191
4258
  const effort = this.reasoning_effort === "minimal" ? "low" : this.reasoning_effort;
4192
4259
  body.reasoning.effort = effort;
4260
+ } else if (this.reasoning_effort === void 0 && defaultReasoningEffort) {
4261
+ body.reasoning.effort = defaultReasoningEffort;
4193
4262
  }
4194
4263
  if (this.reasoning_effort === "none" || this.includeReasoning !== true) {
4195
4264
  body.reasoning.exclude = true;
@@ -4280,6 +4349,7 @@ If it's in another language, summarize in that language.
4280
4349
  return [
4281
4350
  // OpenRouter routing
4282
4351
  MODEL_OPENROUTER_AUTO,
4352
+ MODEL_OPENROUTER_FUSION,
4283
4353
  // Free models
4284
4354
  MODEL_GPT_OSS_20B_FREE,
4285
4355
  MODEL_ZAI_GLM_4_5_AIR_FREE,
@@ -4310,10 +4380,12 @@ If it's in another language, summarize in that language.
4310
4380
  MODEL_GOOGLE_GEMINI_2_5_FLASH,
4311
4381
  MODEL_GOOGLE_GEMINI_2_5_FLASH_LITE_PREVIEW_09_2025,
4312
4382
  // Z.ai models
4383
+ MODEL_ZAI_GLM_5_2,
4313
4384
  MODEL_ZAI_GLM_4_7_FLASH,
4314
4385
  MODEL_ZAI_GLM_4_5_AIR,
4315
4386
  // Other models
4316
4387
  MODEL_MOONSHOTAI_KIMI_LATEST,
4388
+ MODEL_MOONSHOTAI_KIMI_K2_7_CODE,
4317
4389
  MODEL_MOONSHOTAI_KIMI_K2_5
4318
4390
  ];
4319
4391
  }
@@ -4592,7 +4664,7 @@ If it's in another language, summarize in that language.
4592
4664
  * @param model Name of the model to use
4593
4665
  * @param visionModel Name of the vision model
4594
4666
  */
4595
- constructor(apiKey, model = MODEL_GLM_4_7, visionModel = MODEL_GLM_4_6V_FLASH, tools, endpoint = ENDPOINT_ZAI_CHAT_COMPLETIONS_API, responseLength, responseFormat, thinking) {
4667
+ constructor(apiKey, model = MODEL_GLM_5_2, visionModel = MODEL_GLM_4_6V_FLASH, tools, endpoint = ENDPOINT_ZAI_CHAT_COMPLETIONS_API, responseLength, responseFormat, thinking) {
4596
4668
  /** Provider name */
4597
4669
  this.provider = "zai";
4598
4670
  this.apiKey = apiKey;
@@ -4779,6 +4851,7 @@ If it's in another language, summarize in that language.
4779
4851
  */
4780
4852
  getSupportedModels() {
4781
4853
  return [
4854
+ MODEL_GLM_5_2,
4782
4855
  MODEL_GLM_5,
4783
4856
  MODEL_GLM_5_TURBO,
4784
4857
  MODEL_GLM_4_7,
@@ -4794,7 +4867,7 @@ If it's in another language, summarize in that language.
4794
4867
  * Get the default model
4795
4868
  */
4796
4869
  getDefaultModel() {
4797
- return MODEL_GLM_4_7;
4870
+ return MODEL_GLM_5_2;
4798
4871
  }
4799
4872
  /**
4800
4873
  * Get the default vision model