kingkont 0.20.43 → 0.20.44

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kingkont",
3
- "version": "0.20.43",
3
+ "version": "0.20.44",
4
4
  "description": "KingKont \u00b7 Chatium \u2014 \u043d\u043e\u0434-\u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u0441\u0446\u0435\u043d \u0441 AI-\u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0435\u0439 (\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438/\u0432\u0438\u0434\u0435\u043e/\u0433\u043e\u043b\u043e\u0441/SFX/\u043c\u0443\u0437\u044b\u043a\u0430/\u0442\u0435\u043a\u0441\u0442)",
5
5
  "main": "main.js",
6
6
  "bin": {
@@ -2142,7 +2142,7 @@ async function startGenerationJob(node, kind, prompt, mediaRefs, boardHandle, bK
2142
2142
  }).catch(() => {});
2143
2143
  }, 5000);
2144
2144
  let r, rawText, data;
2145
- const provider = await plannedProvider(kind);
2145
+ const provider = await plannedProvider(kind, modelKey);
2146
2146
  logJob(node.id, `→ POST /api/generate → ${provider} (kind=${kind} model=${modelKey || '—'})`);
2147
2147
  try {
2148
2148
  r = await fetch('/api/generate', {
package/renderer/state.js CHANGED
@@ -711,7 +711,7 @@ function logJob(nodeId, msg) {
711
711
  // чтобы юзер ВИДЕЛ ДО запроса, на какой провайдер уйдут данные. Если
712
712
  // настройки не позволяют ни один путь — возвращает 'none' (запрос либо
713
713
  // упадёт 503, либо отработает дефолтом — UI всё равно покажет факт).
714
- async function plannedProvider(kind) {
714
+ async function plannedProvider(kind, modelKey) {
715
715
  let s;
716
716
  try { s = await window.appSettings.get(); } catch { s = {}; }
717
717
  const hasChatium = !!(s.useChatium && s.chatium?.token && s.chatium?.base);
@@ -731,23 +731,32 @@ async function plannedProvider(kind) {
731
731
  if (hasChatium) return 'kingkont';
732
732
  if (s.useElevenlabs === true) return 'elevenlabs';
733
733
  return 'none';
734
- case 'video':
735
- // OR имеет приоритет для seedance-2/seedance-2-fast (см. lib/providers.js
736
- // OPENROUTER_VIDEO_MODELS). UI-гесс без знания modelKey: если включён —
737
- // скорее всего видео уйдёт на OR, иначе fallback на Chatium/KIE.
738
- if (hasOpenrouter) return 'openrouter';
734
+ case 'video': {
735
+ // OR имеет приоритет ТОЛЬКО для моделей которые он реально поддерживает
736
+ // (seedance-2/seedance-2-fast, см. lib/providers.js OPENROUTER_VIDEO_MODELS).
737
+ // Юзер: «куда мы последний запрос отправляли? не в чатиум ведь?» —
738
+ // раньше говорили openrouter для ВСЕХ video если useOpenrouter=true,
739
+ // даже для kling-3.0 которая в OR не входит. Теперь честно.
740
+ const orVid = new Set(['seedance-2', 'seedance-2-fast']);
741
+ if (hasOpenrouter && modelKey && orVid.has(modelKey)) return 'openrouter';
739
742
  if (hasChatium) return 'kingkont';
740
743
  if (s.useKie === true) return 'kie';
741
744
  return 'none';
742
- case 'image':
743
- // OpenRouter перебивает KIE для nano-banana-* (см. providers.js
744
- // startGeneration). Тут upfront без знания modelKey считаем
745
- // что openrouter скорее всего возьмёт на себя image-gen если
746
- // включён. Если нет fallback на KIE/Chatium.
747
- if (hasOpenrouter) return 'openrouter';
745
+ }
746
+ case 'image': {
747
+ // ORтолько nano-banana-* (см. providers.js OPENROUTER_IMAGE_MODELS).
748
+ // gpt-image-* / grok / seedream / flux / sdxl — не в OR, идут в
749
+ // Chatium/KIE. Раньше для всех говорили openrouter, что для
750
+ // gpt-image-2 (Chatium-only) было неверно.
751
+ const orImg = new Set(['nano-banana-2', 'nano-banana-pro']);
752
+ if (hasOpenrouter && modelKey && orImg.has(modelKey)) return 'openrouter';
753
+ // gpt-image-* — приоритет Chatium даже если OR включён.
754
+ const isGptImage = modelKey === 'gpt-image-2' || modelKey === 'gpt-image-1.5';
755
+ if (isGptImage && hasChatium) return 'kingkont';
748
756
  if (hasChatium) return 'kingkont';
749
757
  if (s.useKie === true) return 'kie';
750
758
  return 'none';
759
+ }
751
760
  default:
752
761
  return '?';
753
762
  }