kingkont 0.7.74 → 0.7.76

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
@@ -141,6 +141,7 @@
141
141
  <button id="timelineNative" title="Нативный плеер (mpv)" style="display:none;">🖥</button>
142
142
  <button id="timelineExport" title="Экспорт mp4 (ffmpeg)">💾</button>
143
143
  <button id="timelineClear" title="Очистить" class="danger">⌫</button>
144
+ <button id="timelineClose" title="Закрыть таймлайн" style="margin-left:6px;">×</button>
144
145
  </div>
145
146
  <div class="timeline-body">
146
147
  <div class="timeline-tracks" id="timelineTracks"></div>
package/lib/cli.js CHANGED
@@ -220,10 +220,11 @@ async function cmdGen({ positional, flags }) {
220
220
  p && p.enabled !== false && (p.kinds || []).includes(kind) && p.text
221
221
  );
222
222
  if (applicable.length && !noDefault) {
223
- const prefix = applicable.map(p => String(p.text).trim()).join(', ');
223
+ const tail = applicable.map(p => String(p.text).trim()).join(', ');
224
224
  const u = (prompt || '').trim();
225
- effectivePrompt = u ? (prefix + ', ' + u) : prefix;
226
- console.error(`[gen] applied ${applicable.length} default prompt(s) for ${kind}: "${prefix.slice(0, 100)}${prefix.length > 100 ? '…' : ''}"`);
225
+ // Suffix, не prefix: user-prompt идёт первым, дефолты хвостом.
226
+ effectivePrompt = u ? (u + ', ' + tail) : tail;
227
+ console.error(`[gen] appended ${applicable.length} default prompt(s) for ${kind}: "${tail.slice(0, 100)}${tail.length > 100 ? '…' : ''}"`);
227
228
  }
228
229
 
229
230
  // 4) Запускаем генерацию через провайдер.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kingkont",
3
- "version": "0.7.74",
3
+ "version": "0.7.76",
4
4
  "description": "KingKont · Chatium — нод-редактор сцен с AI-генерацией (картинки/видео/голос/SFX/музыка/текст)",
5
5
  "main": "main.js",
6
6
  "bin": {
@@ -874,7 +874,9 @@ function syncDefaultPromptRow() {
874
874
  }
875
875
 
876
876
  // Применяет включённые дефолтные промпты сцены к user-prompt'у.
877
- // Префиксует с разделителем ", ". Промпты идут в порядке как в settings.
877
+ // Дописывает в КОНЕЦ через ", ". Промпты идут в порядке как в settings.
878
+ // (Раньше был prefix — поменяли на suffix по запросу юзера: его собственный
879
+ // текст идёт первым, дефолты — общим хвостом.)
878
880
  function applyDefaultPrompt(userPrompt, kind) {
879
881
  const all = state.currentBoard?.metadata?.settings?.defaultPrompts || [];
880
882
  const active = state.activeDefaultPrompts || new Set();
@@ -883,10 +885,10 @@ function applyDefaultPrompt(userPrompt, kind) {
883
885
  .map(p => p.text.trim())
884
886
  .filter(Boolean);
885
887
  if (!apply.length) return userPrompt;
886
- const prefix = apply.join(', ');
888
+ const tail = apply.join(', ');
887
889
  const u = (userPrompt || '').trim();
888
- if (!u) return prefix;
889
- return prefix + ', ' + u;
890
+ if (!u) return tail;
891
+ return u + ', ' + tail;
890
892
  }
891
893
 
892
894
  // === Source frame controls ===
@@ -1331,6 +1331,15 @@ $('timelineBtn').addEventListener('click', () => {
1331
1331
  }
1332
1332
  });
1333
1333
 
1334
+ // Кнопка × на самом таймлайне — закрывает панель (то же что повторный
1335
+ // клик на #timelineBtn). Дублирует чтобы не приходилось целиться в
1336
+ // маленькую кнопку в верхнем тулбаре.
1337
+ $('timelineClose')?.addEventListener('click', () => {
1338
+ if (!$('timelinePanel').classList.contains('hidden')) {
1339
+ $('timelineBtn').click();
1340
+ }
1341
+ });
1342
+
1334
1343
 
1335
1344
  $('timelineClear').addEventListener('click', () => {
1336
1345
  if (!state.currentBoard) return;