kingkont 0.10.2 → 0.10.4

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/index.html CHANGED
@@ -74,8 +74,8 @@
74
74
  чтобы не ехало с центрированной шапкой. Заполняется renderWelcomeStatus
75
75
  (board.js) при каждом показе welcome И при auth-changed/balance-tick. -->
76
76
  <div class="welcome-status" id="welcomeStatus" style="-webkit-app-region: no-drag;">
77
- <div class="welcome-status-balances" id="welcomeStatusBalances"></div>
78
77
  <div class="welcome-status-identity" id="welcomeStatusIdentity"></div>
78
+ <div class="welcome-status-balances" id="welcomeStatusBalances"></div>
79
79
  </div>
80
80
  <div class="welcome-inner">
81
81
  <div class="welcome-header">
package/lib/providers.js CHANGED
@@ -485,7 +485,18 @@ async function generateText({ prompt, messages: msgsIn, model = 'anthropic/claud
485
485
  messages.push({ role: 'user', content: prompt });
486
486
  }
487
487
  }
488
- logCall('POST', 'OpenRouter', 'https://openrouter.ai/api/v1/chat/completions', `model=${model} prompt=${prompt.length}ch`);
488
+ // promptLen для лога: либо длина prompt, либо суммарная длина всех текстов
489
+ // в messages — иначе `prompt.length` падает на messages-режиме (chat).
490
+ // content может быть string ИЛИ array of content-blocks {type:'text', text}.
491
+ function _msgLen(content) {
492
+ if (typeof content === 'string') return content.length;
493
+ if (Array.isArray(content)) return content.reduce((s, b) => s + (typeof b?.text === 'string' ? b.text.length : 0), 0);
494
+ return 0;
495
+ }
496
+ const promptLen = prompt
497
+ ? prompt.length
498
+ : (msgsIn || []).reduce((s, m) => s + _msgLen(m?.content), 0);
499
+ logCall('POST', 'OpenRouter', 'https://openrouter.ai/api/v1/chat/completions', `model=${model} prompt=${promptLen}ch`);
489
500
  const r = await fetch('https://openrouter.ai/api/v1/chat/completions', {
490
501
  method: 'POST',
491
502
  headers: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kingkont",
3
- "version": "0.10.2",
3
+ "version": "0.10.4",
4
4
  "description": "KingKont · Chatium — нод-редактор сцен с AI-генерацией (картинки/видео/голос/SFX/музыка/текст)",
5
5
  "main": "main.js",
6
6
  "bin": {
package/renderer/board.js CHANGED
@@ -213,10 +213,9 @@ async function renderWelcomeIdentity() {
213
213
  let status = null;
214
214
  try { status = await window.appChatium?.status?.(); } catch {}
215
215
  if (status?.connected) {
216
- // Имя: предпочитаем email (наиболее узнаваемый), затем login/name,
217
- // в крайнем случае userId. Subtitle = userId-обрезок если он
218
- // отличается от показываемого имени.
219
- const name = status.email || status.login || status.fullName || status.name || status.userId || 'KingKont';
216
+ // Приоритет имени: displayName (то что показывает Chatium в UI)
217
+ // email login fullName name userId.
218
+ const name = status.displayName || status.email || status.login || status.fullName || status.name || status.userId || 'KingKont';
220
219
  const sub = status.userId && status.userId !== name ? `· ${status.userId.slice(0, 8)}` : '';
221
220
  wrap.innerHTML = `
222
221
  <span style="color:#5c5; font-size:13px; line-height:1;">●</span>
@@ -952,8 +951,10 @@ async function closeProject() {
952
951
  // Cmd+R после close = welcome, а не реоткрытие.
953
952
  try { localStorage.setItem('welcomeOnNextStart', '1'); } catch {}
954
953
  // Чат привязан к одному проекту — чистим историю при выходе чтобы
955
- // не путал контекст следующего открытого проекта.
954
+ // не путал контекст следующего открытого проекта. И прячем панель —
955
+ // на welcome-экране чат не имеет смысла (нет state.currentBoard).
956
956
  if (window.kingChat?.clear) window.kingChat.clear();
957
+ if (window.kingChat?.close) window.kingChat.close();
957
958
  stopExternalWatcher();
958
959
  // Сбрасываем UI таймлайна/превью — иначе при возврате через welcome
959
960
  // в новый проект остаётся фрейм/дорожки прошлого.